@trycourier/courier 7.7.1 → 7.9.0

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.
Files changed (135) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/client.d.mts +19 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +19 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js +15 -5
  7. package/client.js.map +1 -1
  8. package/client.mjs +15 -5
  9. package/client.mjs.map +1 -1
  10. package/package.json +12 -1
  11. package/resources/index.d.mts +4 -1
  12. package/resources/index.d.mts.map +1 -1
  13. package/resources/index.d.ts +4 -1
  14. package/resources/index.d.ts.map +1 -1
  15. package/resources/index.js +7 -1
  16. package/resources/index.js.map +1 -1
  17. package/resources/index.mjs +3 -0
  18. package/resources/index.mjs.map +1 -1
  19. package/resources/journeys.d.mts +143 -0
  20. package/resources/journeys.d.mts.map +1 -0
  21. package/resources/journeys.d.ts +143 -0
  22. package/resources/journeys.d.ts.map +1 -0
  23. package/resources/journeys.js +38 -0
  24. package/resources/journeys.js.map +1 -0
  25. package/resources/journeys.mjs +34 -0
  26. package/resources/journeys.mjs.map +1 -0
  27. package/resources/messages.d.mts +20 -20
  28. package/resources/messages.d.mts.map +1 -1
  29. package/resources/messages.d.ts +20 -20
  30. package/resources/messages.d.ts.map +1 -1
  31. package/resources/notifications/checks.d.mts +35 -0
  32. package/resources/notifications/checks.d.mts.map +1 -1
  33. package/resources/notifications/checks.d.ts +35 -0
  34. package/resources/notifications/checks.d.ts.map +1 -1
  35. package/resources/notifications/checks.js +35 -0
  36. package/resources/notifications/checks.js.map +1 -1
  37. package/resources/notifications/checks.mjs +35 -0
  38. package/resources/notifications/checks.mjs.map +1 -1
  39. package/resources/notifications/draft.d.mts +7 -0
  40. package/resources/notifications/draft.d.mts.map +1 -1
  41. package/resources/notifications/draft.d.ts +7 -0
  42. package/resources/notifications/draft.d.ts.map +1 -1
  43. package/resources/notifications/draft.js +7 -0
  44. package/resources/notifications/draft.js.map +1 -1
  45. package/resources/notifications/draft.mjs +7 -0
  46. package/resources/notifications/draft.mjs.map +1 -1
  47. package/resources/notifications/index.d.mts +1 -1
  48. package/resources/notifications/index.d.mts.map +1 -1
  49. package/resources/notifications/index.d.ts +1 -1
  50. package/resources/notifications/index.d.ts.map +1 -1
  51. package/resources/notifications/index.js.map +1 -1
  52. package/resources/notifications/index.mjs.map +1 -1
  53. package/resources/notifications/notifications.d.mts +369 -6
  54. package/resources/notifications/notifications.d.mts.map +1 -1
  55. package/resources/notifications/notifications.d.ts +369 -6
  56. package/resources/notifications/notifications.d.ts.map +1 -1
  57. package/resources/notifications/notifications.js +122 -0
  58. package/resources/notifications/notifications.js.map +1 -1
  59. package/resources/notifications/notifications.mjs +122 -0
  60. package/resources/notifications/notifications.mjs.map +1 -1
  61. package/resources/providers/catalog.d.mts +40 -0
  62. package/resources/providers/catalog.d.mts.map +1 -0
  63. package/resources/providers/catalog.d.ts +40 -0
  64. package/resources/providers/catalog.d.ts.map +1 -0
  65. package/resources/providers/catalog.js +18 -0
  66. package/resources/providers/catalog.js.map +1 -0
  67. package/resources/providers/catalog.mjs +14 -0
  68. package/resources/providers/catalog.mjs.map +1 -0
  69. package/resources/providers/index.d.mts +3 -0
  70. package/resources/providers/index.d.mts.map +1 -0
  71. package/resources/providers/index.d.ts +3 -0
  72. package/resources/providers/index.d.ts.map +1 -0
  73. package/resources/providers/index.js +9 -0
  74. package/resources/providers/index.js.map +1 -0
  75. package/resources/providers/index.mjs +4 -0
  76. package/resources/providers/index.mjs.map +1 -0
  77. package/resources/providers/providers.d.mts +182 -0
  78. package/resources/providers/providers.d.mts.map +1 -0
  79. package/resources/providers/providers.d.ts +182 -0
  80. package/resources/providers/providers.d.ts.map +1 -0
  81. package/resources/providers/providers.js +57 -0
  82. package/resources/providers/providers.js.map +1 -0
  83. package/resources/providers/providers.mjs +52 -0
  84. package/resources/providers/providers.mjs.map +1 -0
  85. package/resources/providers.d.mts +2 -0
  86. package/resources/providers.d.mts.map +1 -0
  87. package/resources/providers.d.ts +2 -0
  88. package/resources/providers.d.ts.map +1 -0
  89. package/resources/providers.js +6 -0
  90. package/resources/providers.js.map +1 -0
  91. package/resources/providers.mjs +3 -0
  92. package/resources/providers.mjs.map +1 -0
  93. package/resources/routing-strategies.d.mts +304 -0
  94. package/resources/routing-strategies.d.mts.map +1 -0
  95. package/resources/routing-strategies.d.ts +304 -0
  96. package/resources/routing-strategies.d.ts.map +1 -0
  97. package/resources/routing-strategies.js +94 -0
  98. package/resources/routing-strategies.js.map +1 -0
  99. package/resources/routing-strategies.mjs +90 -0
  100. package/resources/routing-strategies.mjs.map +1 -0
  101. package/resources/send.d.mts +2 -60
  102. package/resources/send.d.mts.map +1 -1
  103. package/resources/send.d.ts +2 -60
  104. package/resources/send.d.ts.map +1 -1
  105. package/resources/shared.d.mts +60 -1
  106. package/resources/shared.d.mts.map +1 -1
  107. package/resources/shared.d.ts +60 -1
  108. package/resources/shared.d.ts.map +1 -1
  109. package/resources/tenants/tenants.d.mts +2 -62
  110. package/resources/tenants/tenants.d.mts.map +1 -1
  111. package/resources/tenants/tenants.d.ts +2 -62
  112. package/resources/tenants/tenants.d.ts.map +1 -1
  113. package/resources/tenants/tenants.js.map +1 -1
  114. package/resources/tenants/tenants.mjs.map +1 -1
  115. package/src/client.ts +111 -5
  116. package/src/resources/index.ts +44 -0
  117. package/src/resources/journeys.ts +174 -0
  118. package/src/resources/messages.ts +24 -24
  119. package/src/resources/notifications/checks.ts +35 -0
  120. package/src/resources/notifications/draft.ts +7 -0
  121. package/src/resources/notifications/index.ts +14 -0
  122. package/src/resources/notifications/notifications.ts +474 -5
  123. package/src/resources/providers/catalog.ts +53 -0
  124. package/src/resources/providers/index.ts +12 -0
  125. package/src/resources/providers/providers.ts +240 -0
  126. package/src/resources/providers.ts +3 -0
  127. package/src/resources/routing-strategies.ts +394 -0
  128. package/src/resources/send.ts +2 -67
  129. package/src/resources/shared.ts +71 -1
  130. package/src/resources/tenants/tenants.ts +2 -69
  131. package/src/version.ts +1 -1
  132. package/version.d.mts +1 -1
  133. package/version.d.ts +1 -1
  134. package/version.js +1 -1
  135. package/version.mjs +1 -1
@@ -0,0 +1,182 @@
1
+ import { APIResource } from "../../core/resource.js";
2
+ import * as Shared from "../shared.js";
3
+ import * as CatalogAPI from "./catalog.js";
4
+ import { Catalog, CatalogListParams, CatalogListResponse } from "./catalog.js";
5
+ import { APIPromise } from "../../core/api-promise.js";
6
+ import { RequestOptions } from "../../internal/request-options.js";
7
+ export declare class Providers extends APIResource {
8
+ catalog: CatalogAPI.Catalog;
9
+ /**
10
+ * Create a new provider configuration. The `provider` field must be a known
11
+ * Courier provider key (see catalog).
12
+ */
13
+ create(body: ProviderCreateParams, options?: RequestOptions): APIPromise<Provider>;
14
+ /**
15
+ * Fetch a single provider configuration by ID.
16
+ */
17
+ retrieve(id: string, options?: RequestOptions): APIPromise<Provider>;
18
+ /**
19
+ * Update an existing provider configuration. The `provider` key is required. All
20
+ * other fields are optional — omitted fields are cleared from the stored
21
+ * configuration (this is a full replacement, not a partial merge).
22
+ */
23
+ update(id: string, body: ProviderUpdateParams, options?: RequestOptions): APIPromise<Provider>;
24
+ /**
25
+ * List configured provider integrations for the current workspace. Supports
26
+ * cursor-based pagination.
27
+ */
28
+ list(query?: ProviderListParams | null | undefined, options?: RequestOptions): APIPromise<ProviderListResponse>;
29
+ /**
30
+ * Delete a provider configuration. Returns 409 if the provider is still referenced
31
+ * by routing or notifications.
32
+ */
33
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
34
+ }
35
+ /**
36
+ * A configured provider in the workspace.
37
+ */
38
+ export interface Provider {
39
+ /**
40
+ * A unique identifier for the provider configuration.
41
+ */
42
+ id: string;
43
+ /**
44
+ * Unix timestamp (ms) of when the provider was created.
45
+ */
46
+ created: number;
47
+ /**
48
+ * The provider key (e.g. "sendgrid", "twilio", "slack").
49
+ */
50
+ provider: string;
51
+ /**
52
+ * Provider-specific settings (snake_case keys on the wire).
53
+ */
54
+ settings: {
55
+ [key: string]: unknown;
56
+ };
57
+ /**
58
+ * Display title. Defaults to "Default Configuration" when not explicitly set.
59
+ */
60
+ title: string;
61
+ /**
62
+ * Optional alias for this configuration.
63
+ */
64
+ alias?: string;
65
+ /**
66
+ * Unix timestamp (ms) of when the provider was last updated.
67
+ */
68
+ updated?: number | null;
69
+ }
70
+ /**
71
+ * A provider type from the catalog. Contains the key, display name, description,
72
+ * and a `settings` object describing configuration schema fields.
73
+ */
74
+ export interface ProvidersCatalogEntry {
75
+ /**
76
+ * Courier taxonomy channel (e.g. email, push, sms, direct_message, inbox,
77
+ * webhook).
78
+ */
79
+ channel: string;
80
+ /**
81
+ * Short description of the provider.
82
+ */
83
+ description: string;
84
+ /**
85
+ * Human-readable display name.
86
+ */
87
+ name: string;
88
+ /**
89
+ * The provider key (e.g. "sendgrid", "twilio").
90
+ */
91
+ provider: string;
92
+ /**
93
+ * Map of setting field names (snake_case) to their schema descriptors. Each
94
+ * descriptor has `type` and `required`. Empty when the provider has no
95
+ * configurable schema.
96
+ */
97
+ settings: {
98
+ [key: string]: ProvidersCatalogEntry.Settings;
99
+ };
100
+ }
101
+ export declare namespace ProvidersCatalogEntry {
102
+ /**
103
+ * Describes a single configuration field in the provider catalog.
104
+ */
105
+ interface Settings {
106
+ /**
107
+ * Whether this field is required when configuring the provider.
108
+ */
109
+ required: boolean;
110
+ /**
111
+ * The field's data type (e.g. "string", "boolean", "enum").
112
+ */
113
+ type: string;
114
+ /**
115
+ * Allowed values when `type` is "enum".
116
+ */
117
+ values?: Array<string>;
118
+ }
119
+ }
120
+ /**
121
+ * Paginated list of provider configurations.
122
+ */
123
+ export interface ProviderListResponse {
124
+ paging: Shared.Paging;
125
+ results: Array<Provider>;
126
+ }
127
+ export interface ProviderCreateParams {
128
+ /**
129
+ * The provider key identifying the type (e.g. "sendgrid", "twilio"). Must be a
130
+ * known Courier provider — see the catalog endpoint for valid keys.
131
+ */
132
+ provider: string;
133
+ /**
134
+ * Optional alias for this configuration.
135
+ */
136
+ alias?: string;
137
+ /**
138
+ * Provider-specific settings (snake_case keys). Defaults to an empty object when
139
+ * omitted. Use the catalog endpoint to discover required fields for a given
140
+ * provider — omitting a required field returns a 400 validation error.
141
+ */
142
+ settings?: {
143
+ [key: string]: unknown;
144
+ };
145
+ /**
146
+ * Optional display title. Omit to use "Default Configuration".
147
+ */
148
+ title?: string;
149
+ }
150
+ export interface ProviderUpdateParams {
151
+ /**
152
+ * The provider key identifying the type.
153
+ */
154
+ provider: string;
155
+ /**
156
+ * Updated alias. Omit to clear.
157
+ */
158
+ alias?: string;
159
+ /**
160
+ * Provider-specific settings (snake_case keys). Replaces the full settings object
161
+ * — omitted settings fields are removed. Use the catalog endpoint to check
162
+ * required fields.
163
+ */
164
+ settings?: {
165
+ [key: string]: unknown;
166
+ };
167
+ /**
168
+ * Updated display title.
169
+ */
170
+ title?: string;
171
+ }
172
+ export interface ProviderListParams {
173
+ /**
174
+ * Opaque cursor for fetching the next page.
175
+ */
176
+ cursor?: string;
177
+ }
178
+ export declare namespace Providers {
179
+ export { type Provider as Provider, type ProvidersCatalogEntry as ProvidersCatalogEntry, type ProviderListResponse as ProviderListResponse, type ProviderCreateParams as ProviderCreateParams, type ProviderUpdateParams as ProviderUpdateParams, type ProviderListParams as ProviderListParams, };
180
+ export { Catalog as Catalog, type CatalogListResponse as CatalogListResponse, type CatalogListParams as CatalogListParams, };
181
+ }
182
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/resources/providers/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Providers = void 0;
5
+ const tslib_1 = require("../../internal/tslib.js");
6
+ const resource_1 = require("../../core/resource.js");
7
+ const CatalogAPI = tslib_1.__importStar(require("./catalog.js"));
8
+ const catalog_1 = require("./catalog.js");
9
+ const headers_1 = require("../../internal/headers.js");
10
+ const path_1 = require("../../internal/utils/path.js");
11
+ class Providers extends resource_1.APIResource {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.catalog = new CatalogAPI.Catalog(this._client);
15
+ }
16
+ /**
17
+ * Create a new provider configuration. The `provider` field must be a known
18
+ * Courier provider key (see catalog).
19
+ */
20
+ create(body, options) {
21
+ return this._client.post('/providers', { body, ...options });
22
+ }
23
+ /**
24
+ * Fetch a single provider configuration by ID.
25
+ */
26
+ retrieve(id, options) {
27
+ return this._client.get((0, path_1.path) `/providers/${id}`, options);
28
+ }
29
+ /**
30
+ * Update an existing provider configuration. The `provider` key is required. All
31
+ * other fields are optional — omitted fields are cleared from the stored
32
+ * configuration (this is a full replacement, not a partial merge).
33
+ */
34
+ update(id, body, options) {
35
+ return this._client.post((0, path_1.path) `/providers/${id}`, { body, ...options });
36
+ }
37
+ /**
38
+ * List configured provider integrations for the current workspace. Supports
39
+ * cursor-based pagination.
40
+ */
41
+ list(query = {}, options) {
42
+ return this._client.get('/providers', { query, ...options });
43
+ }
44
+ /**
45
+ * Delete a provider configuration. Returns 409 if the provider is still referenced
46
+ * by routing or notifications.
47
+ */
48
+ delete(id, options) {
49
+ return this._client.delete((0, path_1.path) `/providers/${id}`, {
50
+ ...options,
51
+ headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
52
+ });
53
+ }
54
+ }
55
+ exports.Providers = Providers;
56
+ Providers.Catalog = catalog_1.Catalog;
57
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/resources/providers/providers.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAElD,iEAAwC;AACxC,0CAA4E;AAE5E,uDAAsD;AAEtD,uDAAiD;AAEjD,MAAa,SAAU,SAAQ,sBAAW;IAA1C;;QACE,YAAO,GAAuB,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA+CrE,CAAC;IA7CC;;;OAGG;IACH,MAAM,CAAC,IAA0B,EAAE,OAAwB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAA0B,EAAE,OAAwB;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,IAAI,CACF,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,cAAc,EAAE,EAAE,EAAE;YACjD,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF;AAhDD,8BAgDC;AAmKD,SAAS,CAAC,OAAO,GAAG,iBAAO,CAAC"}
@@ -0,0 +1,52 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../../core/resource.mjs";
3
+ import * as CatalogAPI from "./catalog.mjs";
4
+ import { Catalog } from "./catalog.mjs";
5
+ import { buildHeaders } from "../../internal/headers.mjs";
6
+ import { path } from "../../internal/utils/path.mjs";
7
+ export class Providers extends APIResource {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.catalog = new CatalogAPI.Catalog(this._client);
11
+ }
12
+ /**
13
+ * Create a new provider configuration. The `provider` field must be a known
14
+ * Courier provider key (see catalog).
15
+ */
16
+ create(body, options) {
17
+ return this._client.post('/providers', { body, ...options });
18
+ }
19
+ /**
20
+ * Fetch a single provider configuration by ID.
21
+ */
22
+ retrieve(id, options) {
23
+ return this._client.get(path `/providers/${id}`, options);
24
+ }
25
+ /**
26
+ * Update an existing provider configuration. The `provider` key is required. All
27
+ * other fields are optional — omitted fields are cleared from the stored
28
+ * configuration (this is a full replacement, not a partial merge).
29
+ */
30
+ update(id, body, options) {
31
+ return this._client.post(path `/providers/${id}`, { body, ...options });
32
+ }
33
+ /**
34
+ * List configured provider integrations for the current workspace. Supports
35
+ * cursor-based pagination.
36
+ */
37
+ list(query = {}, options) {
38
+ return this._client.get('/providers', { query, ...options });
39
+ }
40
+ /**
41
+ * Delete a provider configuration. Returns 409 if the provider is still referenced
42
+ * by routing or notifications.
43
+ */
44
+ delete(id, options) {
45
+ return this._client.delete(path `/providers/${id}`, {
46
+ ...options,
47
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
48
+ });
49
+ }
50
+ }
51
+ Providers.Catalog = Catalog;
52
+ //# sourceMappingURL=providers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.mjs","sourceRoot":"","sources":["../../src/resources/providers/providers.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,KAAK,UAAU;OACf,EAAE,OAAO,EAA0C;OAEnD,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,SAAU,SAAQ,WAAW;IAA1C;;QACE,YAAO,GAAuB,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA+CrE,CAAC;IA7CC;;;OAGG;IACH,MAAM,CAAC,IAA0B,EAAE,OAAwB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU,EAAE,IAA0B,EAAE,OAAwB;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,IAAI,CACF,QAA+C,EAAE,EACjD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,cAAc,EAAE,EAAE,EAAE;YACjD,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF;AAmKD,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./providers/index.mjs";
2
+ //# sourceMappingURL=providers.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.mts","sourceRoot":"","sources":["../src/resources/providers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./providers/index.js";
2
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/resources/providers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("../internal/tslib.js");
5
+ tslib_1.__exportStar(require("./providers/index.js"), exports);
6
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/resources/providers.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,+DAAkC"}
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ export * from "./providers/index.mjs";
3
+ //# sourceMappingURL=providers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.mjs","sourceRoot":"","sources":["../src/resources/providers.ts"],"names":[],"mappings":"AAAA,sFAAsF"}
@@ -0,0 +1,304 @@
1
+ import { APIResource } from "../core/resource.mjs";
2
+ import * as Shared from "./shared.mjs";
3
+ import { APIPromise } from "../core/api-promise.mjs";
4
+ import { RequestOptions } from "../internal/request-options.mjs";
5
+ export declare class RoutingStrategies extends APIResource {
6
+ /**
7
+ * Create a routing strategy. Requires a name and routing configuration at minimum.
8
+ * Channels and providers default to empty if omitted.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const routingStrategyMutationResponse =
13
+ * await client.routingStrategies.create({
14
+ * name: 'Email via SendGrid',
15
+ * routing: { method: 'single', channels: ['email'] },
16
+ * channels: { email: { providers: ['sendgrid', 'ses'] } },
17
+ * description:
18
+ * 'Routes email through sendgrid with SES failover',
19
+ * providers: { sendgrid: { override: {} } },
20
+ * tags: ['production', 'email'],
21
+ * });
22
+ * ```
23
+ */
24
+ create(body: RoutingStrategyCreateParams, options?: RequestOptions): APIPromise<RoutingStrategyMutationResponse>;
25
+ /**
26
+ * Retrieve a routing strategy by ID. Returns the full entity including routing
27
+ * content and metadata.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const routingStrategyGetResponse =
32
+ * await client.routingStrategies.retrieve('id');
33
+ * ```
34
+ */
35
+ retrieve(id: string, options?: RequestOptions): APIPromise<RoutingStrategyGetResponse>;
36
+ /**
37
+ * List routing strategies in your workspace. Returns metadata only (no
38
+ * routing/channels/providers content). Use GET /routing-strategies/{id} for full
39
+ * details.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const routingStrategyListResponse =
44
+ * await client.routingStrategies.list();
45
+ * ```
46
+ */
47
+ list(query?: RoutingStrategyListParams | null | undefined, options?: RequestOptions): APIPromise<RoutingStrategyListResponse>;
48
+ /**
49
+ * Archive a routing strategy. The strategy must not have associated notification
50
+ * templates. Unlink all templates before archiving.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * await client.routingStrategies.archive('id');
55
+ * ```
56
+ */
57
+ archive(id: string, options?: RequestOptions): APIPromise<void>;
58
+ /**
59
+ * Replace a routing strategy. Full document replacement; the caller must send the
60
+ * complete desired state. Missing optional fields are cleared.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * const routingStrategyMutationResponse =
65
+ * await client.routingStrategies.replace('id', {
66
+ * name: 'Email via SendGrid v2',
67
+ * routing: { method: 'single', channels: ['email'] },
68
+ * channels: { email: { providers: ['ses', 'sendgrid'] } },
69
+ * description: 'Updated routing with SES primary',
70
+ * providers: { ses: { override: {} } },
71
+ * tags: ['production', 'email', 'v2'],
72
+ * });
73
+ * ```
74
+ */
75
+ replace(id: string, body: RoutingStrategyReplaceParams, options?: RequestOptions): APIPromise<RoutingStrategyMutationResponse>;
76
+ }
77
+ /**
78
+ * Request body for creating a routing strategy.
79
+ */
80
+ export interface RoutingStrategyCreateRequest {
81
+ /**
82
+ * Human-readable name for the routing strategy.
83
+ */
84
+ name: string;
85
+ /**
86
+ * Routing tree defining channel selection method and order.
87
+ */
88
+ routing: Shared.MessageRouting;
89
+ /**
90
+ * Per-channel delivery configuration. Defaults to empty if omitted.
91
+ */
92
+ channels?: Shared.MessageChannels | null;
93
+ /**
94
+ * Optional description of the routing strategy.
95
+ */
96
+ description?: string | null;
97
+ /**
98
+ * Per-provider delivery configuration. Defaults to empty if omitted.
99
+ */
100
+ providers?: Shared.MessageProviders | null;
101
+ /**
102
+ * Optional tags for categorization.
103
+ */
104
+ tags?: Array<string> | null;
105
+ }
106
+ /**
107
+ * Full routing strategy entity returned by GET.
108
+ */
109
+ export interface RoutingStrategyGetResponse {
110
+ /**
111
+ * The routing strategy ID (rs\_ prefix).
112
+ */
113
+ id: string;
114
+ /**
115
+ * Per-channel delivery configuration. May be empty.
116
+ */
117
+ channels: Shared.MessageChannels;
118
+ /**
119
+ * Epoch milliseconds when the strategy was created.
120
+ */
121
+ created: number;
122
+ /**
123
+ * User ID of the creator.
124
+ */
125
+ creator: string;
126
+ /**
127
+ * Human-readable name.
128
+ */
129
+ name: string;
130
+ /**
131
+ * Per-provider delivery configuration. May be empty.
132
+ */
133
+ providers: Shared.MessageProviders;
134
+ /**
135
+ * Routing tree defining channel selection method and order.
136
+ */
137
+ routing: Shared.MessageRouting;
138
+ /**
139
+ * Description of the routing strategy.
140
+ */
141
+ description?: string | null;
142
+ /**
143
+ * Tags for categorization.
144
+ */
145
+ tags?: Array<string> | null;
146
+ /**
147
+ * Epoch milliseconds of last update.
148
+ */
149
+ updated?: number | null;
150
+ /**
151
+ * User ID of the last updater.
152
+ */
153
+ updater?: string | null;
154
+ }
155
+ /**
156
+ * Paginated list of routing strategy summaries.
157
+ */
158
+ export interface RoutingStrategyListResponse {
159
+ paging: Shared.Paging;
160
+ results: Array<RoutingStrategySummary>;
161
+ }
162
+ /**
163
+ * Response returned by create and replace operations.
164
+ */
165
+ export interface RoutingStrategyMutationResponse {
166
+ /**
167
+ * The routing strategy ID (rs\_ prefix).
168
+ */
169
+ id: string;
170
+ }
171
+ /**
172
+ * Request body for replacing a routing strategy. Full document replacement;
173
+ * missing optional fields are cleared.
174
+ */
175
+ export interface RoutingStrategyReplaceRequest {
176
+ /**
177
+ * Human-readable name for the routing strategy.
178
+ */
179
+ name: string;
180
+ /**
181
+ * Routing tree defining channel selection method and order.
182
+ */
183
+ routing: Shared.MessageRouting;
184
+ /**
185
+ * Per-channel delivery configuration. Omit to clear.
186
+ */
187
+ channels?: Shared.MessageChannels | null;
188
+ /**
189
+ * Optional description. Omit or null to clear.
190
+ */
191
+ description?: string | null;
192
+ /**
193
+ * Per-provider delivery configuration. Omit to clear.
194
+ */
195
+ providers?: Shared.MessageProviders | null;
196
+ /**
197
+ * Optional tags. Omit or null to clear.
198
+ */
199
+ tags?: Array<string> | null;
200
+ }
201
+ /**
202
+ * Routing strategy metadata returned in list responses. Does not include
203
+ * routing/channels/providers content.
204
+ */
205
+ export interface RoutingStrategySummary {
206
+ /**
207
+ * The routing strategy ID (rs\_ prefix).
208
+ */
209
+ id: string;
210
+ /**
211
+ * Epoch milliseconds when the strategy was created.
212
+ */
213
+ created: number;
214
+ /**
215
+ * User ID of the creator.
216
+ */
217
+ creator: string;
218
+ /**
219
+ * Human-readable name.
220
+ */
221
+ name: string;
222
+ /**
223
+ * Description of the routing strategy.
224
+ */
225
+ description?: string | null;
226
+ /**
227
+ * Tags for categorization.
228
+ */
229
+ tags?: Array<string> | null;
230
+ /**
231
+ * Epoch milliseconds of last update.
232
+ */
233
+ updated?: number | null;
234
+ /**
235
+ * User ID of the last updater.
236
+ */
237
+ updater?: string | null;
238
+ }
239
+ export interface RoutingStrategyCreateParams {
240
+ /**
241
+ * Human-readable name for the routing strategy.
242
+ */
243
+ name: string;
244
+ /**
245
+ * Routing tree defining channel selection method and order.
246
+ */
247
+ routing: Shared.MessageRouting;
248
+ /**
249
+ * Per-channel delivery configuration. Defaults to empty if omitted.
250
+ */
251
+ channels?: Shared.MessageChannels | null;
252
+ /**
253
+ * Optional description of the routing strategy.
254
+ */
255
+ description?: string | null;
256
+ /**
257
+ * Per-provider delivery configuration. Defaults to empty if omitted.
258
+ */
259
+ providers?: Shared.MessageProviders | null;
260
+ /**
261
+ * Optional tags for categorization.
262
+ */
263
+ tags?: Array<string> | null;
264
+ }
265
+ export interface RoutingStrategyListParams {
266
+ /**
267
+ * Opaque pagination cursor from a previous response. Omit for the first page.
268
+ */
269
+ cursor?: string | null;
270
+ /**
271
+ * Maximum number of results per page. Default 20, max 100.
272
+ */
273
+ limit?: number;
274
+ }
275
+ export interface RoutingStrategyReplaceParams {
276
+ /**
277
+ * Human-readable name for the routing strategy.
278
+ */
279
+ name: string;
280
+ /**
281
+ * Routing tree defining channel selection method and order.
282
+ */
283
+ routing: Shared.MessageRouting;
284
+ /**
285
+ * Per-channel delivery configuration. Omit to clear.
286
+ */
287
+ channels?: Shared.MessageChannels | null;
288
+ /**
289
+ * Optional description. Omit or null to clear.
290
+ */
291
+ description?: string | null;
292
+ /**
293
+ * Per-provider delivery configuration. Omit to clear.
294
+ */
295
+ providers?: Shared.MessageProviders | null;
296
+ /**
297
+ * Optional tags. Omit or null to clear.
298
+ */
299
+ tags?: Array<string> | null;
300
+ }
301
+ export declare namespace RoutingStrategies {
302
+ export { type RoutingStrategyCreateRequest as RoutingStrategyCreateRequest, type RoutingStrategyGetResponse as RoutingStrategyGetResponse, type RoutingStrategyListResponse as RoutingStrategyListResponse, type RoutingStrategyMutationResponse as RoutingStrategyMutationResponse, type RoutingStrategyReplaceRequest as RoutingStrategyReplaceRequest, type RoutingStrategySummary as RoutingStrategySummary, type RoutingStrategyCreateParams as RoutingStrategyCreateParams, type RoutingStrategyListParams as RoutingStrategyListParams, type RoutingStrategyReplaceParams as RoutingStrategyReplaceParams, };
303
+ }
304
+ //# sourceMappingURL=routing-strategies.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-strategies.d.mts","sourceRoot":"","sources":["../src/resources/routing-strategies.ts"],"names":[],"mappings":"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"}