@notiflows/node 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +422 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +207 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +207 -0
- package/client.d.ts.map +1 -0
- package/client.js +502 -0
- package/client.js.map +1 -0
- package/client.mjs +498 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +59 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +59 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +101 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +95 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +7 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/index.mjs +8 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +40 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +37 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +87 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +81 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +147 -0
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/deliveries.d.mts +143 -0
- package/resources/deliveries.d.mts.map +1 -0
- package/resources/deliveries.d.ts +143 -0
- package/resources/deliveries.d.ts.map +1 -0
- package/resources/deliveries.js +44 -0
- package/resources/deliveries.js.map +1 -0
- package/resources/deliveries.mjs +40 -0
- package/resources/deliveries.mjs.map +1 -0
- package/resources/index.d.mts +6 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +6 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +15 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +7 -0
- package/resources/index.mjs.map +1 -0
- package/resources/notifications.d.mts +170 -0
- package/resources/notifications.d.mts.map +1 -0
- package/resources/notifications.d.ts +170 -0
- package/resources/notifications.d.ts.map +1 -0
- package/resources/notifications.js +58 -0
- package/resources/notifications.js.map +1 -0
- package/resources/notifications.mjs +54 -0
- package/resources/notifications.mjs.map +1 -0
- package/resources/notiflows.d.mts +122 -0
- package/resources/notiflows.d.mts.map +1 -0
- package/resources/notiflows.d.ts +122 -0
- package/resources/notiflows.d.ts.map +1 -0
- package/resources/notiflows.js +36 -0
- package/resources/notiflows.js.map +1 -0
- package/resources/notiflows.mjs +32 -0
- package/resources/notiflows.mjs.map +1 -0
- package/resources/topics/index.d.mts +3 -0
- package/resources/topics/index.d.mts.map +1 -0
- package/resources/topics/index.d.ts +3 -0
- package/resources/topics/index.d.ts.map +1 -0
- package/resources/topics/index.js +9 -0
- package/resources/topics/index.js.map +1 -0
- package/resources/topics/index.mjs +4 -0
- package/resources/topics/index.mjs.map +1 -0
- package/resources/topics/subscriptions.d.mts +137 -0
- package/resources/topics/subscriptions.d.mts.map +1 -0
- package/resources/topics/subscriptions.d.ts +137 -0
- package/resources/topics/subscriptions.d.ts.map +1 -0
- package/resources/topics/subscriptions.js +78 -0
- package/resources/topics/subscriptions.js.map +1 -0
- package/resources/topics/subscriptions.mjs +74 -0
- package/resources/topics/subscriptions.mjs.map +1 -0
- package/resources/topics/topics.d.mts +70 -0
- package/resources/topics/topics.d.mts.map +1 -0
- package/resources/topics/topics.d.ts +70 -0
- package/resources/topics/topics.d.ts.map +1 -0
- package/resources/topics/topics.js +65 -0
- package/resources/topics/topics.js.map +1 -0
- package/resources/topics/topics.mjs +60 -0
- package/resources/topics/topics.mjs.map +1 -0
- package/resources/topics.d.mts +2 -0
- package/resources/topics.d.mts.map +1 -0
- package/resources/topics.d.ts +2 -0
- package/resources/topics.d.ts.map +1 -0
- package/resources/topics.js +6 -0
- package/resources/topics.js.map +1 -0
- package/resources/topics.mjs +3 -0
- package/resources/topics.mjs.map +1 -0
- package/resources/users/channel-settings.d.mts +158 -0
- package/resources/users/channel-settings.d.mts.map +1 -0
- package/resources/users/channel-settings.d.ts +158 -0
- package/resources/users/channel-settings.d.ts.map +1 -0
- package/resources/users/channel-settings.js +98 -0
- package/resources/users/channel-settings.js.map +1 -0
- package/resources/users/channel-settings.mjs +94 -0
- package/resources/users/channel-settings.mjs.map +1 -0
- package/resources/users/deliveries.d.mts +71 -0
- package/resources/users/deliveries.d.mts.map +1 -0
- package/resources/users/deliveries.d.ts +71 -0
- package/resources/users/deliveries.d.ts.map +1 -0
- package/resources/users/deliveries.js +45 -0
- package/resources/users/deliveries.js.map +1 -0
- package/resources/users/deliveries.mjs +41 -0
- package/resources/users/deliveries.mjs.map +1 -0
- package/resources/users/index.d.mts +7 -0
- package/resources/users/index.d.mts.map +1 -0
- package/resources/users/index.d.ts +7 -0
- package/resources/users/index.d.ts.map +1 -0
- package/resources/users/index.js +17 -0
- package/resources/users/index.js.map +1 -0
- package/resources/users/index.mjs +8 -0
- package/resources/users/index.mjs.map +1 -0
- package/resources/users/notifications.d.mts +68 -0
- package/resources/users/notifications.d.mts.map +1 -0
- package/resources/users/notifications.d.ts +68 -0
- package/resources/users/notifications.d.ts.map +1 -0
- package/resources/users/notifications.js +43 -0
- package/resources/users/notifications.js.map +1 -0
- package/resources/users/notifications.mjs +39 -0
- package/resources/users/notifications.mjs.map +1 -0
- package/resources/users/preferences.d.mts +166 -0
- package/resources/users/preferences.d.mts.map +1 -0
- package/resources/users/preferences.d.ts +166 -0
- package/resources/users/preferences.d.ts.map +1 -0
- package/resources/users/preferences.js +60 -0
- package/resources/users/preferences.js.map +1 -0
- package/resources/users/preferences.mjs +56 -0
- package/resources/users/preferences.mjs.map +1 -0
- package/resources/users/subscriptions.d.mts +121 -0
- package/resources/users/subscriptions.d.mts.map +1 -0
- package/resources/users/subscriptions.d.ts +121 -0
- package/resources/users/subscriptions.d.ts.map +1 -0
- package/resources/users/subscriptions.js +84 -0
- package/resources/users/subscriptions.js.map +1 -0
- package/resources/users/subscriptions.mjs +80 -0
- package/resources/users/subscriptions.mjs.map +1 -0
- package/resources/users/users.d.mts +216 -0
- package/resources/users/users.d.mts.map +1 -0
- package/resources/users/users.d.ts +216 -0
- package/resources/users/users.d.ts.map +1 -0
- package/resources/users/users.js +102 -0
- package/resources/users/users.js.map +1 -0
- package/resources/users/users.mjs +97 -0
- package/resources/users/users.mjs.map +1 -0
- package/resources/users.d.mts +2 -0
- package/resources/users.d.mts.map +1 -0
- package/resources/users.d.ts +2 -0
- package/resources/users.d.ts.map +1 -0
- package/resources/users.js +6 -0
- package/resources/users.js.map +1 -0
- package/resources/users.mjs +3 -0
- package/resources/users.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +838 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/pagination.ts +163 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +23 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +56 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +128 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/pagination.ts +2 -0
- package/src/resource.ts +2 -0
- package/src/resources/deliveries.ts +183 -0
- package/src/resources/index.ts +19 -0
- package/src/resources/notifications.ts +225 -0
- package/src/resources/notiflows.ts +155 -0
- package/src/resources/topics/index.ts +11 -0
- package/src/resources/topics/subscriptions.ts +182 -0
- package/src/resources/topics/topics.ts +115 -0
- package/src/resources/topics.ts +3 -0
- package/src/resources/users/channel-settings.ts +205 -0
- package/src/resources/users/deliveries.ts +103 -0
- package/src/resources/users/index.ts +23 -0
- package/src/resources/users/notifications.ts +100 -0
- package/src/resources/users/preferences.ts +182 -0
- package/src/resources/users/subscriptions.ts +179 -0
- package/src/resources/users/users.ts +324 -0
- package/src/resources/users.ts +3 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import { APIPromise } from '../core/api-promise';
|
|
5
|
+
import { RequestOptions } from '../internal/request-options';
|
|
6
|
+
import { path } from '../internal/utils/path';
|
|
7
|
+
|
|
8
|
+
export class NotiflowsResource extends APIResource {
|
|
9
|
+
/**
|
|
10
|
+
* Execute a notiflow to send notifications to one or more recipients.
|
|
11
|
+
*
|
|
12
|
+
* You must provide either `recipients` (direct targeting) or `topic` (pub/sub
|
|
13
|
+
* targeting), but not both.
|
|
14
|
+
*
|
|
15
|
+
* **Direct targeting (`recipients`):** Specify exactly which users should receive
|
|
16
|
+
* the notification. Users are identified by their `external_id`. If a user doesn't
|
|
17
|
+
* exist, they will be created automatically with the provided attributes.
|
|
18
|
+
*
|
|
19
|
+
* **Topic targeting (`topic`):** Send to all users subscribed to the specified
|
|
20
|
+
* topic. Useful for broadcast scenarios.
|
|
21
|
+
*
|
|
22
|
+
* **Template variables:** The `data` object is passed to notification templates.
|
|
23
|
+
* Access variables using Liquid syntax: `{{ data.variable_name }}`
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const response = await client.notiflows.run(
|
|
28
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
29
|
+
* );
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
run(
|
|
33
|
+
notiflowID: string,
|
|
34
|
+
body: NotiflowRunParams,
|
|
35
|
+
options?: RequestOptions,
|
|
36
|
+
): APIPromise<NotiflowRunResponse> {
|
|
37
|
+
return this._client.post(path`/notiflows/${notiflowID}/run`, { body, ...options });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Response after successfully running a notiflow
|
|
43
|
+
*/
|
|
44
|
+
export interface NotiflowRunResponse {
|
|
45
|
+
/**
|
|
46
|
+
* ID of the notiflow run. Use this to query notifications created by this run.
|
|
47
|
+
*/
|
|
48
|
+
notiflow_run_id: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface NotiflowRunParams {
|
|
52
|
+
/**
|
|
53
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
54
|
+
*/
|
|
55
|
+
actor?: NotiflowRunParams.Actor;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Template variables. Accessible in notification templates as `data.*`.
|
|
59
|
+
*/
|
|
60
|
+
data?: unknown;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* List of recipients. Each recipient must have an `external_id`. Users are
|
|
64
|
+
* auto-created if they don't exist.
|
|
65
|
+
*/
|
|
66
|
+
recipients?: Array<NotiflowRunParams.Recipient>;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Topic name for pub/sub targeting. Cannot be used with `recipients`.
|
|
70
|
+
*/
|
|
71
|
+
topic?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export namespace NotiflowRunParams {
|
|
75
|
+
/**
|
|
76
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
77
|
+
*/
|
|
78
|
+
export interface Actor {
|
|
79
|
+
/**
|
|
80
|
+
* Your system's identifier for the actor (required)
|
|
81
|
+
*/
|
|
82
|
+
external_id: string;
|
|
83
|
+
|
|
84
|
+
avatar?: string;
|
|
85
|
+
|
|
86
|
+
custom_fields?: unknown;
|
|
87
|
+
|
|
88
|
+
email?: string;
|
|
89
|
+
|
|
90
|
+
first_name?: string;
|
|
91
|
+
|
|
92
|
+
last_name?: string;
|
|
93
|
+
|
|
94
|
+
locale?: string;
|
|
95
|
+
|
|
96
|
+
phone?: string;
|
|
97
|
+
|
|
98
|
+
timezone?: string;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Recipient specification for running a notiflow. Users are auto-created if they
|
|
103
|
+
* don't exist.
|
|
104
|
+
*/
|
|
105
|
+
export interface Recipient {
|
|
106
|
+
/**
|
|
107
|
+
* Your system's unique identifier for this user (required)
|
|
108
|
+
*/
|
|
109
|
+
external_id: string;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Avatar URL
|
|
113
|
+
*/
|
|
114
|
+
avatar?: string;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Custom attributes
|
|
118
|
+
*/
|
|
119
|
+
custom_fields?: unknown;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Email address (used if user is auto-created)
|
|
123
|
+
*/
|
|
124
|
+
email?: string;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* First name
|
|
128
|
+
*/
|
|
129
|
+
first_name?: string;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Last name
|
|
133
|
+
*/
|
|
134
|
+
last_name?: string;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* BCP 47 locale
|
|
138
|
+
*/
|
|
139
|
+
locale?: string;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Phone number in E.164 format
|
|
143
|
+
*/
|
|
144
|
+
phone?: string;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* IANA timezone
|
|
148
|
+
*/
|
|
149
|
+
timezone?: string;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export declare namespace NotiflowsResource {
|
|
154
|
+
export { type NotiflowRunResponse as NotiflowRunResponse, type NotiflowRunParams as NotiflowRunParams };
|
|
155
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
Subscriptions,
|
|
5
|
+
type BulkOperationResponse,
|
|
6
|
+
type BulkSubscribeRequest,
|
|
7
|
+
type SubscriptionListParams,
|
|
8
|
+
type SubscriptionSubscribeBulkParams,
|
|
9
|
+
type SubscriptionUnsubscribeBulkParams,
|
|
10
|
+
} from './subscriptions';
|
|
11
|
+
export { Topics, type Topic, type TopicListParams, type TopicsCursorPage } from './topics';
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
4
|
+
import * as UsersSubscriptionsAPI from '../users/subscriptions';
|
|
5
|
+
import { SubscriptionsCursorPage } from '../users/subscriptions';
|
|
6
|
+
import { APIPromise } from '../../core/api-promise';
|
|
7
|
+
import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
|
|
8
|
+
import { RequestOptions } from '../../internal/request-options';
|
|
9
|
+
import { path } from '../../internal/utils/path';
|
|
10
|
+
|
|
11
|
+
export class Subscriptions extends APIResource {
|
|
12
|
+
/**
|
|
13
|
+
* Retrieve all users subscribed to a specific topic.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Automatically fetches more pages as needed.
|
|
18
|
+
* for await (const subscription of client.topics.subscriptions.list(
|
|
19
|
+
* 'order-updates',
|
|
20
|
+
* )) {
|
|
21
|
+
* // ...
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
list(
|
|
26
|
+
topicID: string,
|
|
27
|
+
query: SubscriptionListParams | null | undefined = {},
|
|
28
|
+
options?: RequestOptions,
|
|
29
|
+
): PagePromise<SubscriptionsCursorPage, UsersSubscriptionsAPI.Subscription> {
|
|
30
|
+
return this._client.getAPIList(
|
|
31
|
+
path`/topics/${topicID}/subscriptions`,
|
|
32
|
+
CursorPage<UsersSubscriptionsAPI.Subscription>,
|
|
33
|
+
{ query, ...options },
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe multiple users to a topic in a single request.
|
|
39
|
+
*
|
|
40
|
+
* - Topics are created automatically if they don't exist.
|
|
41
|
+
* - If a user is already subscribed, they are included in the `successful`
|
|
42
|
+
* response.
|
|
43
|
+
* - Returns `207 Multi-Status` if some subscriptions failed.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const bulkOperationResponse =
|
|
48
|
+
* await client.topics.subscriptions.subscribeBulk(
|
|
49
|
+
* 'order-updates',
|
|
50
|
+
* {
|
|
51
|
+
* user_external_ids: [
|
|
52
|
+
* 'user_12345',
|
|
53
|
+
* 'user_67890',
|
|
54
|
+
* 'user_11111',
|
|
55
|
+
* ],
|
|
56
|
+
* },
|
|
57
|
+
* );
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
subscribeBulk(
|
|
61
|
+
topicID: string,
|
|
62
|
+
body: SubscriptionSubscribeBulkParams,
|
|
63
|
+
options?: RequestOptions,
|
|
64
|
+
): APIPromise<BulkOperationResponse> {
|
|
65
|
+
return this._client.post(path`/topics/${topicID}/subscriptions`, { body, ...options });
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Unsubscribe multiple users from a topic in a single request.
|
|
70
|
+
*
|
|
71
|
+
* - Returns `207 Multi-Status` if some unsubscriptions failed (e.g., user not
|
|
72
|
+
* found).
|
|
73
|
+
* - Users not subscribed to the topic are included in the `failed` response.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* const bulkOperationResponse =
|
|
78
|
+
* await client.topics.subscriptions.unsubscribeBulk(
|
|
79
|
+
* 'order-updates',
|
|
80
|
+
* {
|
|
81
|
+
* user_external_ids: [
|
|
82
|
+
* 'user_12345',
|
|
83
|
+
* 'user_67890',
|
|
84
|
+
* 'user_11111',
|
|
85
|
+
* ],
|
|
86
|
+
* },
|
|
87
|
+
* );
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
unsubscribeBulk(
|
|
91
|
+
topicID: string,
|
|
92
|
+
body: SubscriptionUnsubscribeBulkParams,
|
|
93
|
+
options?: RequestOptions,
|
|
94
|
+
): APIPromise<BulkOperationResponse> {
|
|
95
|
+
return this._client.delete(path`/topics/${topicID}/subscriptions`, { body, ...options });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Response for bulk operations showing successful and failed items
|
|
101
|
+
*/
|
|
102
|
+
export interface BulkOperationResponse {
|
|
103
|
+
/**
|
|
104
|
+
* Failed operations with error details
|
|
105
|
+
*/
|
|
106
|
+
failed: Array<BulkOperationResponse.Failed>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Successfully processed subscriptions
|
|
110
|
+
*/
|
|
111
|
+
successful: Array<UsersSubscriptionsAPI.Subscription>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export namespace BulkOperationResponse {
|
|
115
|
+
/**
|
|
116
|
+
* Details of a failed bulk operation item
|
|
117
|
+
*/
|
|
118
|
+
export interface Failed {
|
|
119
|
+
/**
|
|
120
|
+
* The external ID that failed
|
|
121
|
+
*/
|
|
122
|
+
external_id: string;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Human-readable error reason
|
|
126
|
+
*/
|
|
127
|
+
reason: string;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Request body for bulk subscribe/unsubscribe operations
|
|
133
|
+
*/
|
|
134
|
+
export interface BulkSubscribeRequest {
|
|
135
|
+
/**
|
|
136
|
+
* List of user external IDs to subscribe/unsubscribe
|
|
137
|
+
*/
|
|
138
|
+
user_external_ids: Array<string>;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface SubscriptionListParams extends CursorPageParams {
|
|
142
|
+
/**
|
|
143
|
+
* Cursor for fetching the previous page
|
|
144
|
+
*/
|
|
145
|
+
before?: string;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Filter by created after (ISO 8601 datetime)
|
|
149
|
+
*/
|
|
150
|
+
created_after?: string;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Filter by created before (ISO 8601 datetime)
|
|
154
|
+
*/
|
|
155
|
+
created_before?: string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface SubscriptionSubscribeBulkParams {
|
|
159
|
+
/**
|
|
160
|
+
* List of user external IDs to subscribe/unsubscribe
|
|
161
|
+
*/
|
|
162
|
+
user_external_ids: Array<string>;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface SubscriptionUnsubscribeBulkParams {
|
|
166
|
+
/**
|
|
167
|
+
* List of user external IDs to subscribe/unsubscribe
|
|
168
|
+
*/
|
|
169
|
+
user_external_ids: Array<string>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export declare namespace Subscriptions {
|
|
173
|
+
export {
|
|
174
|
+
type BulkOperationResponse as BulkOperationResponse,
|
|
175
|
+
type BulkSubscribeRequest as BulkSubscribeRequest,
|
|
176
|
+
type SubscriptionListParams as SubscriptionListParams,
|
|
177
|
+
type SubscriptionSubscribeBulkParams as SubscriptionSubscribeBulkParams,
|
|
178
|
+
type SubscriptionUnsubscribeBulkParams as SubscriptionUnsubscribeBulkParams,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export { type SubscriptionsCursorPage };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
4
|
+
import * as SubscriptionsAPI from './subscriptions';
|
|
5
|
+
import {
|
|
6
|
+
BulkOperationResponse,
|
|
7
|
+
BulkSubscribeRequest,
|
|
8
|
+
SubscriptionListParams,
|
|
9
|
+
SubscriptionSubscribeBulkParams,
|
|
10
|
+
SubscriptionUnsubscribeBulkParams,
|
|
11
|
+
Subscriptions,
|
|
12
|
+
} from './subscriptions';
|
|
13
|
+
import { APIPromise } from '../../core/api-promise';
|
|
14
|
+
import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
|
|
15
|
+
import { buildHeaders } from '../../internal/headers';
|
|
16
|
+
import { RequestOptions } from '../../internal/request-options';
|
|
17
|
+
import { path } from '../../internal/utils/path';
|
|
18
|
+
|
|
19
|
+
export class Topics extends APIResource {
|
|
20
|
+
subscriptions: SubscriptionsAPI.Subscriptions = new SubscriptionsAPI.Subscriptions(this._client);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Retrieve a topic by name.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const topic = await client.topics.retrieve('order-updates');
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
retrieve(id: string, options?: RequestOptions): APIPromise<Topic> {
|
|
31
|
+
return this._client.get(path`/topics/${id}`, options);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Retrieve a paginated list of all topics in your project.
|
|
36
|
+
*
|
|
37
|
+
* Topics are used for pub/sub notification patterns. Users subscribe to topics,
|
|
38
|
+
* and you can run notiflows for all subscribers of a topic.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* // Automatically fetches more pages as needed.
|
|
43
|
+
* for await (const topic of client.topics.list()) {
|
|
44
|
+
* // ...
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
list(
|
|
49
|
+
query: TopicListParams | null | undefined = {},
|
|
50
|
+
options?: RequestOptions,
|
|
51
|
+
): PagePromise<TopicsCursorPage, Topic> {
|
|
52
|
+
return this._client.getAPIList('/topics', CursorPage<Topic>, { query, ...options });
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Delete a topic and all its subscriptions.
|
|
57
|
+
*
|
|
58
|
+
* **Warning:** This removes all user subscriptions to this topic. Users will need
|
|
59
|
+
* to re-subscribe if the topic is recreated.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* await client.topics.delete('order-updates');
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
delete(id: string, options?: RequestOptions): APIPromise<void> {
|
|
67
|
+
return this._client.delete(path`/topics/${id}`, {
|
|
68
|
+
...options,
|
|
69
|
+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type TopicsCursorPage = CursorPage<Topic>;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* A topic for pub/sub notification patterns
|
|
78
|
+
*/
|
|
79
|
+
export interface Topic {
|
|
80
|
+
/**
|
|
81
|
+
* When the topic was created
|
|
82
|
+
*/
|
|
83
|
+
created_at: string;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Unique topic name within your project
|
|
87
|
+
*/
|
|
88
|
+
name: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface TopicListParams extends CursorPageParams {
|
|
92
|
+
/**
|
|
93
|
+
* Cursor for fetching the previous page
|
|
94
|
+
*/
|
|
95
|
+
before?: string;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
Topics.Subscriptions = Subscriptions;
|
|
99
|
+
|
|
100
|
+
export declare namespace Topics {
|
|
101
|
+
export {
|
|
102
|
+
type Topic as Topic,
|
|
103
|
+
type TopicsCursorPage as TopicsCursorPage,
|
|
104
|
+
type TopicListParams as TopicListParams,
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export {
|
|
108
|
+
Subscriptions as Subscriptions,
|
|
109
|
+
type BulkOperationResponse as BulkOperationResponse,
|
|
110
|
+
type BulkSubscribeRequest as BulkSubscribeRequest,
|
|
111
|
+
type SubscriptionListParams as SubscriptionListParams,
|
|
112
|
+
type SubscriptionSubscribeBulkParams as SubscriptionSubscribeBulkParams,
|
|
113
|
+
type SubscriptionUnsubscribeBulkParams as SubscriptionUnsubscribeBulkParams,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
4
|
+
import { APIPromise } from '../../core/api-promise';
|
|
5
|
+
import { buildHeaders } from '../../internal/headers';
|
|
6
|
+
import { RequestOptions } from '../../internal/request-options';
|
|
7
|
+
import { path } from '../../internal/utils/path';
|
|
8
|
+
|
|
9
|
+
export class ChannelSettings extends APIResource {
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve a user's settings for a specific channel.
|
|
12
|
+
*
|
|
13
|
+
* Channel settings store provider-specific data like device tokens (for push) or
|
|
14
|
+
* Slack user IDs (for chat).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const channelSettings =
|
|
19
|
+
* await client.users.channelSettings.retrieve(
|
|
20
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
21
|
+
* { user_id: 'user_12345' },
|
|
22
|
+
* );
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
retrieve(
|
|
26
|
+
channelID: string,
|
|
27
|
+
params: ChannelSettingRetrieveParams,
|
|
28
|
+
options?: RequestOptions,
|
|
29
|
+
): APIPromise<ChannelSettings> {
|
|
30
|
+
const { user_id } = params;
|
|
31
|
+
return this._client.get(path`/users/${user_id}/channel-settings/${channelID}`, options);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Update a user's settings for a specific channel. Creates the settings if they
|
|
36
|
+
* don't exist.
|
|
37
|
+
*
|
|
38
|
+
* **Provider-specific settings:**
|
|
39
|
+
*
|
|
40
|
+
* **Mobile Push (APNS/FCM):**
|
|
41
|
+
*
|
|
42
|
+
* ```json
|
|
43
|
+
* {
|
|
44
|
+
* "settings": {
|
|
45
|
+
* "device_tokens": ["token1", "token2"]
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* **Slack:**
|
|
51
|
+
*
|
|
52
|
+
* ```json
|
|
53
|
+
* {
|
|
54
|
+
* "settings": {
|
|
55
|
+
* "slack_channel_id": "C0123456789",
|
|
56
|
+
* "slack_user_id": "U0123456789"
|
|
57
|
+
* }
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* At least one of `slack_channel_id` or `slack_user_id` must be provided.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* const channelSettings =
|
|
66
|
+
* await client.users.channelSettings.update(
|
|
67
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
68
|
+
* {
|
|
69
|
+
* user_id: 'user_12345',
|
|
70
|
+
* settings: {
|
|
71
|
+
* device_tokens: ['ExampleTokenABCDEF123456789...'],
|
|
72
|
+
* },
|
|
73
|
+
* },
|
|
74
|
+
* );
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
update(
|
|
78
|
+
channelID: string,
|
|
79
|
+
params: ChannelSettingUpdateParams,
|
|
80
|
+
options?: RequestOptions,
|
|
81
|
+
): APIPromise<ChannelSettings> {
|
|
82
|
+
const { user_id, ...body } = params;
|
|
83
|
+
return this._client.put(path`/users/${user_id}/channel-settings/${channelID}`, { body, ...options });
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Remove a user's settings for a specific channel.
|
|
88
|
+
*
|
|
89
|
+
* After deletion, the user will no longer receive notifications through this
|
|
90
|
+
* channel until new settings are configured.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* await client.users.channelSettings.delete(
|
|
95
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
96
|
+
* { user_id: 'user_12345' },
|
|
97
|
+
* );
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
delete(channelID: string, params: ChannelSettingDeleteParams, options?: RequestOptions): APIPromise<void> {
|
|
101
|
+
const { user_id } = params;
|
|
102
|
+
return this._client.delete(path`/users/${user_id}/channel-settings/${channelID}`, {
|
|
103
|
+
...options,
|
|
104
|
+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* User's settings for a specific channel (e.g., device tokens, Slack credentials)
|
|
111
|
+
*/
|
|
112
|
+
export interface ChannelSettings {
|
|
113
|
+
/**
|
|
114
|
+
* Channel ID
|
|
115
|
+
*/
|
|
116
|
+
channel_id: string;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* When the settings were created
|
|
120
|
+
*/
|
|
121
|
+
created_at: string;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The provider type for this channel
|
|
125
|
+
*/
|
|
126
|
+
provider: 'apns' | 'fcm' | 'slack';
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Provider-specific settings. See MobilePushSettings or SlackSettings schemas.
|
|
130
|
+
*/
|
|
131
|
+
settings: MobilePushSettings | SlackSettings;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* When the settings were last updated
|
|
135
|
+
*/
|
|
136
|
+
updated_at: string;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Internal user ID
|
|
140
|
+
*/
|
|
141
|
+
user_id: string;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Settings for mobile push notifications (APNS/FCM)
|
|
146
|
+
*/
|
|
147
|
+
export interface MobilePushSettings {
|
|
148
|
+
/**
|
|
149
|
+
* List of device tokens for push notifications. At least one token is required.
|
|
150
|
+
*/
|
|
151
|
+
device_tokens: Array<string>;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Settings for Slack notifications. At least one of `slack_channel_id` or
|
|
156
|
+
* `slack_user_id` must be provided.
|
|
157
|
+
*/
|
|
158
|
+
export interface SlackSettings {
|
|
159
|
+
/**
|
|
160
|
+
* Slack channel ID (starts with C)
|
|
161
|
+
*/
|
|
162
|
+
slack_channel_id?: string;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Slack user ID for direct messages (starts with U)
|
|
166
|
+
*/
|
|
167
|
+
slack_user_id?: string;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export interface ChannelSettingRetrieveParams {
|
|
171
|
+
/**
|
|
172
|
+
* User external ID
|
|
173
|
+
*/
|
|
174
|
+
user_id: string;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export interface ChannelSettingUpdateParams {
|
|
178
|
+
/**
|
|
179
|
+
* Path param: User external ID
|
|
180
|
+
*/
|
|
181
|
+
user_id: string;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Body param: Provider-specific settings. Structure depends on channel provider.
|
|
185
|
+
*/
|
|
186
|
+
settings: MobilePushSettings | SlackSettings;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export interface ChannelSettingDeleteParams {
|
|
190
|
+
/**
|
|
191
|
+
* User external ID
|
|
192
|
+
*/
|
|
193
|
+
user_id: string;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export declare namespace ChannelSettings {
|
|
197
|
+
export {
|
|
198
|
+
type ChannelSettings as ChannelSettings,
|
|
199
|
+
type MobilePushSettings as MobilePushSettings,
|
|
200
|
+
type SlackSettings as SlackSettings,
|
|
201
|
+
type ChannelSettingRetrieveParams as ChannelSettingRetrieveParams,
|
|
202
|
+
type ChannelSettingUpdateParams as ChannelSettingUpdateParams,
|
|
203
|
+
type ChannelSettingDeleteParams as ChannelSettingDeleteParams,
|
|
204
|
+
};
|
|
205
|
+
}
|