@epilot/sdk 2.18.4 → 2.18.6

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 (145) hide show
  1. package/definitions/dashboard-runtime.json +1 -1
  2. package/definitions/dashboard.json +919 -48
  3. package/definitions/email-settings-runtime.json +1 -1
  4. package/definitions/email-settings.json +50 -10
  5. package/dist/apis/access-token.cjs +6 -6
  6. package/dist/apis/access-token.js +1 -1
  7. package/dist/apis/address-suggestions.cjs +6 -6
  8. package/dist/apis/address-suggestions.js +1 -1
  9. package/dist/apis/address.cjs +6 -6
  10. package/dist/apis/address.js +1 -1
  11. package/dist/apis/ai-agents.cjs +6 -6
  12. package/dist/apis/ai-agents.js +1 -1
  13. package/dist/apis/app.cjs +6 -6
  14. package/dist/apis/app.js +1 -1
  15. package/dist/apis/audit-logs.cjs +6 -6
  16. package/dist/apis/audit-logs.js +1 -1
  17. package/dist/apis/automation.cjs +6 -6
  18. package/dist/apis/automation.js +1 -1
  19. package/dist/apis/billing.cjs +6 -6
  20. package/dist/apis/billing.js +1 -1
  21. package/dist/apis/blueprint-manifest.cjs +6 -6
  22. package/dist/apis/blueprint-manifest.js +1 -1
  23. package/dist/apis/calendar.cjs +6 -6
  24. package/dist/apis/calendar.js +1 -1
  25. package/dist/apis/configuration-hub.cjs +6 -6
  26. package/dist/apis/configuration-hub.js +1 -1
  27. package/dist/apis/consent.cjs +6 -6
  28. package/dist/apis/consent.js +1 -1
  29. package/dist/apis/customer-portal.cjs +6 -6
  30. package/dist/apis/customer-portal.js +1 -1
  31. package/dist/apis/dashboard.cjs +8 -8
  32. package/dist/apis/dashboard.d.cts +2 -2
  33. package/dist/apis/dashboard.d.ts +2 -2
  34. package/dist/apis/dashboard.js +2 -2
  35. package/dist/apis/data-governance.cjs +6 -6
  36. package/dist/apis/data-governance.js +1 -1
  37. package/dist/apis/deduplication.cjs +6 -6
  38. package/dist/apis/deduplication.js +1 -1
  39. package/dist/apis/design.cjs +6 -6
  40. package/dist/apis/design.js +1 -1
  41. package/dist/apis/document.cjs +6 -6
  42. package/dist/apis/document.js +1 -1
  43. package/dist/apis/email-settings.cjs +8 -8
  44. package/dist/apis/email-settings.d.cts +2 -2
  45. package/dist/apis/email-settings.d.ts +2 -2
  46. package/dist/apis/email-settings.js +2 -2
  47. package/dist/apis/email-template.cjs +6 -6
  48. package/dist/apis/email-template.js +1 -1
  49. package/dist/apis/entity-mapping.cjs +6 -6
  50. package/dist/apis/entity-mapping.js +1 -1
  51. package/dist/apis/entity.cjs +6 -6
  52. package/dist/apis/entity.js +1 -1
  53. package/dist/apis/environments.cjs +6 -6
  54. package/dist/apis/environments.js +1 -1
  55. package/dist/apis/event-catalog.cjs +6 -6
  56. package/dist/apis/event-catalog.js +1 -1
  57. package/dist/apis/file.cjs +6 -6
  58. package/dist/apis/file.js +1 -1
  59. package/dist/apis/iban.cjs +6 -6
  60. package/dist/apis/iban.js +1 -1
  61. package/dist/apis/integration-toolkit.cjs +6 -6
  62. package/dist/apis/integration-toolkit.js +1 -1
  63. package/dist/apis/journey.cjs +6 -6
  64. package/dist/apis/journey.js +1 -1
  65. package/dist/apis/kanban.cjs +6 -6
  66. package/dist/apis/kanban.js +1 -1
  67. package/dist/apis/message.cjs +6 -6
  68. package/dist/apis/message.js +1 -1
  69. package/dist/apis/metering.cjs +6 -6
  70. package/dist/apis/metering.js +1 -1
  71. package/dist/apis/notes.cjs +6 -6
  72. package/dist/apis/notes.js +1 -1
  73. package/dist/apis/notification.cjs +6 -6
  74. package/dist/apis/notification.js +1 -1
  75. package/dist/apis/organization.cjs +6 -6
  76. package/dist/apis/organization.js +1 -1
  77. package/dist/apis/partner-directory.cjs +6 -6
  78. package/dist/apis/partner-directory.js +1 -1
  79. package/dist/apis/permissions.cjs +6 -6
  80. package/dist/apis/permissions.js +1 -1
  81. package/dist/apis/pricing-tier.cjs +6 -6
  82. package/dist/apis/pricing-tier.js +1 -1
  83. package/dist/apis/pricing.cjs +6 -6
  84. package/dist/apis/pricing.js +1 -1
  85. package/dist/apis/purpose.cjs +6 -6
  86. package/dist/apis/purpose.js +1 -1
  87. package/dist/apis/query.cjs +6 -6
  88. package/dist/apis/query.js +1 -1
  89. package/dist/apis/sandbox.cjs +6 -6
  90. package/dist/apis/sandbox.js +1 -1
  91. package/dist/apis/sharing.cjs +6 -6
  92. package/dist/apis/sharing.js +1 -1
  93. package/dist/apis/snapshot.cjs +6 -6
  94. package/dist/apis/snapshot.js +1 -1
  95. package/dist/apis/submission.cjs +6 -6
  96. package/dist/apis/submission.js +1 -1
  97. package/dist/apis/target.cjs +6 -6
  98. package/dist/apis/target.js +1 -1
  99. package/dist/apis/targeting.cjs +6 -6
  100. package/dist/apis/targeting.js +1 -1
  101. package/dist/apis/template-variables.cjs +6 -6
  102. package/dist/apis/template-variables.js +1 -1
  103. package/dist/apis/user.cjs +6 -6
  104. package/dist/apis/user.js +1 -1
  105. package/dist/apis/validation-rules.cjs +6 -6
  106. package/dist/apis/validation-rules.js +1 -1
  107. package/dist/apis/webhooks.cjs +6 -6
  108. package/dist/apis/webhooks.js +1 -1
  109. package/dist/apis/workflow-definition.cjs +6 -6
  110. package/dist/apis/workflow-definition.js +1 -1
  111. package/dist/apis/workflow.cjs +6 -6
  112. package/dist/apis/workflow.js +1 -1
  113. package/dist/{chunk-KHKNOPEX.js → chunk-7HQ3GMYQ.js} +1 -1
  114. package/dist/{chunk-YNJPE3SS.cjs → chunk-AWJHA3GG.cjs} +1 -1
  115. package/dist/{chunk-HUDTRI32.cjs → chunk-MIKSJIFK.cjs} +4 -4
  116. package/dist/{chunk-3FHDY3R5.js → chunk-TAQOJW6T.js} +4 -4
  117. package/dist/chunk-TIRWWTDP.js +14 -0
  118. package/dist/chunk-VMCF5R6R.cjs +14 -0
  119. package/dist/dashboard-7QJ46I7N.cjs +7 -0
  120. package/dist/dashboard-ILXUFFF2.js +7 -0
  121. package/dist/{dashboard-runtime-EXP2AM44.cjs → dashboard-runtime-2LOASQPB.cjs} +2 -2
  122. package/dist/{dashboard-runtime-PSKSGLCF.js → dashboard-runtime-YMFNQP3M.js} +1 -1
  123. package/dist/dashboard.d-BSevFHjf.d.cts +1405 -0
  124. package/dist/dashboard.d-BSevFHjf.d.ts +1405 -0
  125. package/dist/email-settings-U753HXGA.js +7 -0
  126. package/dist/email-settings-Z5EBAELW.cjs +7 -0
  127. package/dist/{email-settings-runtime-J7JLYDMU.cjs → email-settings-runtime-IW2AT2RB.cjs} +2 -2
  128. package/dist/{email-settings-runtime-4BT72ADN.js → email-settings-runtime-YJYEC5AH.js} +1 -1
  129. package/dist/{email-settings.d-CR4lORuR.d.cts → email-settings.d-DViLYaOl.d.cts} +56 -14
  130. package/dist/{email-settings.d-CR4lORuR.d.ts → email-settings.d-DViLYaOl.d.ts} +56 -14
  131. package/dist/index.cjs +12 -12
  132. package/dist/index.d.cts +2 -2
  133. package/dist/index.d.ts +2 -2
  134. package/dist/index.js +3 -3
  135. package/docs/dashboard.md +1044 -180
  136. package/docs/email-settings.md +17 -13
  137. package/package.json +1 -1
  138. package/dist/chunk-M2UDF7PY.cjs +0 -14
  139. package/dist/chunk-SZMCMLOQ.js +0 -14
  140. package/dist/dashboard-UHYR5RTY.cjs +0 -7
  141. package/dist/dashboard-UTPGXFW5.js +0 -7
  142. package/dist/dashboard.d-CsGcA74I.d.cts +0 -440
  143. package/dist/dashboard.d-CsGcA74I.d.ts +0 -440
  144. package/dist/email-settings-ECSU7KWC.js +0 -7
  145. package/dist/email-settings-RHMYC2KT.cjs +0 -7
@@ -1,440 +0,0 @@
1
- import { OpenAPIClient, Parameters, UnknownParamsObject, AxiosRequestConfig, OperationResponse } from 'openapi-client-axios';
2
-
3
- /* Auto-copied from dashboard-client */
4
-
5
-
6
- declare namespace Components {
7
- namespace Schemas {
8
- /**
9
- * Adashboard configuration with tiles
10
- */
11
- export interface Dashboard {
12
- id?: /**
13
- * Unique identifier for dashboard
14
- * example:
15
- * 3fa85f64-5717-4562-b3fc-2c963f66afa6
16
- */
17
- DashboardID /* uuid */;
18
- /**
19
- * example:
20
- * Employee Dashboard
21
- */
22
- title: string;
23
- /**
24
- * example:
25
- * [
26
- * {
27
- * "id": "e4af1297-1fd6-440f-9846-f475f580d40f",
28
- * "coordinates": {},
29
- * "visualisation": "timechart",
30
- * "visualisation_config": {
31
- * "query": {
32
- * "dataset": "entity_operations",
33
- * "measure": "count_operations",
34
- * "filters": [
35
- * {
36
- * "operation": [
37
- * "createEntity"
38
- * ]
39
- * },
40
- * {
41
- * "entity_schema": [
42
- * "opportunity"
43
- * ]
44
- * }
45
- * ],
46
- * "dimensions": [
47
- * {
48
- * "time_with_granularity": "month"
49
- * },
50
- * {
51
- * "entity_attribute": "source.title"
52
- * }
53
- * ]
54
- * },
55
- * "options": {
56
- * "type": "line"
57
- * }
58
- * }
59
- * }
60
- * ]
61
- */
62
- tiles: DashboardTile[];
63
- }
64
- /**
65
- * Unique identifier for dashboard
66
- * example:
67
- * 3fa85f64-5717-4562-b3fc-2c963f66afa6
68
- */
69
- export type DashboardID = string; // uuid
70
- export interface DashboardTile {
71
- id?: /**
72
- * Unique identifier for a tile in a dashboard
73
- * example:
74
- * e4af1297-1fd6-440f-9846-f475f580d40f
75
- */
76
- DashboardTileID /* uuid */;
77
- coordinates?: {
78
- [key: string]: any;
79
- };
80
- /**
81
- * example:
82
- * Number of opportunities created by journeys every month
83
- */
84
- title?: string;
85
- visualisation_id?: /**
86
- * Unique identifier for a Visualisation
87
- * example:
88
- * timechart
89
- */
90
- VisualisationId;
91
- visualisation_config?: VisualisationConfig;
92
- }
93
- /**
94
- * Unique identifier for a tile in a dashboard
95
- * example:
96
- * e4af1297-1fd6-440f-9846-f475f580d40f
97
- */
98
- export type DashboardTileID = string; // uuid
99
- export interface DatalakeQuery {
100
- [name: string]: any;
101
- /**
102
- * example:
103
- * entity_operations
104
- */
105
- dataset?: string;
106
- /**
107
- * example:
108
- * count_operations
109
- */
110
- measure?: string;
111
- dimensions?: {
112
- [name: string]: any;
113
- }[];
114
- filters?: {
115
- [name: string]: any;
116
- }[];
117
- }
118
- export interface Example {
119
- id?: /**
120
- * Unique identifier for a visualisation examples for tiles in a dashboard
121
- * example:
122
- * e4af1297-1fd6-440f-9846-f475f580d40f
123
- */
124
- ExampleID /* uuid */;
125
- /**
126
- * example:
127
- * Number of opportunities created by journeys every month
128
- */
129
- title?: string;
130
- visualisation?: /**
131
- * Unique identifier for a Visualisation
132
- * example:
133
- * timechart
134
- */
135
- VisualisationId;
136
- query?: DatalakeQuery;
137
- }
138
- /**
139
- * Unique identifier for a visualisation examples for tiles in a dashboard
140
- * example:
141
- * e4af1297-1fd6-440f-9846-f475f580d40f
142
- */
143
- export type ExampleID = string; // uuid
144
- export interface TimechartVisualisationConfig {
145
- query?: DatalakeQuery;
146
- /**
147
- * example:
148
- * {
149
- * "type": "bar"
150
- * }
151
- */
152
- options?: {
153
- [name: string]: any;
154
- };
155
- }
156
- /**
157
- * A Visualisation that can be used to configure tiles in dashboards
158
- */
159
- export interface Visualisation {
160
- visualisation?: /**
161
- * Unique identifier for a Visualisation
162
- * example:
163
- * timechart
164
- */
165
- VisualisationId;
166
- /**
167
- * example:
168
- * Time Series Visualisation
169
- */
170
- title?: string;
171
- description?: string;
172
- /**
173
- * Package name of the Visualisation MFE bundle to import
174
- * example:
175
- * @epilot360/highcharts
176
- */
177
- package_name?: string;
178
- /**
179
- * URL to Visualisation MFE bundle to import
180
- * example:
181
- * https://epilot-dashboard-visualisations.epilot.io/epilot360-datalake-visualisation/bundle.js?version=1650592827
182
- */
183
- import_url?: string; // uri
184
- }
185
- export type VisualisationConfig = TimechartVisualisationConfig;
186
- /**
187
- * Unique identifier for a Visualisation
188
- * example:
189
- * timechart
190
- */
191
- export type VisualisationId = "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow";
192
- }
193
- }
194
- declare namespace Paths {
195
- namespace CreateDashboard {
196
- export type RequestBody = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
197
- namespace Responses {
198
- export type $201 = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
199
- }
200
- }
201
- namespace DeleteDashboard {
202
- namespace Responses {
203
- export type $200 = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
204
- }
205
- }
206
- namespace GetDashboard {
207
- namespace Responses {
208
- export type $200 = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
209
- }
210
- }
211
- namespace ListAvailableExamples {
212
- namespace Responses {
213
- export interface $200 {
214
- results?: Components.Schemas.Example[];
215
- }
216
- }
217
- }
218
- namespace ListAvailableVisualisations {
219
- namespace Responses {
220
- export interface $200 {
221
- /**
222
- * example:
223
- * [
224
- * {
225
- * "visualisation": "timechart",
226
- * "title": "Time Series Visualisation",
227
- * "description": "Visualise your metrics with respect to time series",
228
- * "package_name": "@epilot360/highcharts"
229
- * },
230
- * {
231
- * "visualisation": "kpi",
232
- * "title": "KPI Visualisation",
233
- * "description": "Visualise your key performance indicators",
234
- * "package_name": "@epilot360/kpi"
235
- * }
236
- * ]
237
- */
238
- results?: /* A Visualisation that can be used to configure tiles in dashboards */ Components.Schemas.Visualisation[];
239
- }
240
- }
241
- }
242
- namespace ListDashboards {
243
- namespace Responses {
244
- export interface $200 {
245
- results?: /* Adashboard configuration with tiles */ Components.Schemas.Dashboard[];
246
- }
247
- }
248
- }
249
- namespace PutDashboard {
250
- export type RequestBody = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
251
- namespace Responses {
252
- export type $200 = /* Adashboard configuration with tiles */ Components.Schemas.Dashboard;
253
- }
254
- }
255
- namespace V1DashboardDashboards$Id {
256
- namespace Parameters {
257
- export type Id = /**
258
- * Unique identifier for dashboard
259
- * example:
260
- * 3fa85f64-5717-4562-b3fc-2c963f66afa6
261
- */
262
- Components.Schemas.DashboardID /* uuid */;
263
- }
264
- export interface PathParameters {
265
- id: Parameters.Id;
266
- }
267
- }
268
- }
269
-
270
-
271
- interface OperationMethods {
272
- /**
273
- * listDashboards - listDashboards
274
- *
275
- * List dashboards available to the user
276
- */
277
- 'listDashboards'(
278
- parameters?: Parameters<UnknownParamsObject> | null,
279
- data?: any,
280
- config?: AxiosRequestConfig
281
- ): OperationResponse<Paths.ListDashboards.Responses.$200>
282
- /**
283
- * createDashboard - createDashboard
284
- *
285
- * Create new dashboard
286
- */
287
- 'createDashboard'(
288
- parameters?: Parameters<UnknownParamsObject> | null,
289
- data?: Paths.CreateDashboard.RequestBody,
290
- config?: AxiosRequestConfig
291
- ): OperationResponse<Paths.CreateDashboard.Responses.$201>
292
- /**
293
- * getDashboard - getDashboard
294
- *
295
- * Get dashboard by ID
296
- */
297
- 'getDashboard'(
298
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
299
- data?: any,
300
- config?: AxiosRequestConfig
301
- ): OperationResponse<Paths.GetDashboard.Responses.$200>
302
- /**
303
- * putDashboard - putDashboard
304
- *
305
- * Update a dashboard by ID
306
- */
307
- 'putDashboard'(
308
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
309
- data?: Paths.PutDashboard.RequestBody,
310
- config?: AxiosRequestConfig
311
- ): OperationResponse<Paths.PutDashboard.Responses.$200>
312
- /**
313
- * deleteDashboard - deleteDashboard
314
- *
315
- * Delete a dashboard by ID
316
- */
317
- 'deleteDashboard'(
318
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
319
- data?: any,
320
- config?: AxiosRequestConfig
321
- ): OperationResponse<Paths.DeleteDashboard.Responses.$200>
322
- /**
323
- * listAvailableVisualisations - listAvailableVisualisations
324
- *
325
- * Returns list of available Visualisations to configure new dashboard tiles
326
- */
327
- 'listAvailableVisualisations'(
328
- parameters?: Parameters<UnknownParamsObject> | null,
329
- data?: any,
330
- config?: AxiosRequestConfig
331
- ): OperationResponse<Paths.ListAvailableVisualisations.Responses.$200>
332
- /**
333
- * listAvailableExamples - listAvailableExamples
334
- *
335
- * Returns list of available exampless for visualisations to configure new dashboard tiles
336
- */
337
- 'listAvailableExamples'(
338
- parameters?: Parameters<UnknownParamsObject> | null,
339
- data?: any,
340
- config?: AxiosRequestConfig
341
- ): OperationResponse<Paths.ListAvailableExamples.Responses.$200>
342
- }
343
-
344
- interface PathsDictionary {
345
- ['/v1/dashboard/dashboards']: {
346
- /**
347
- * listDashboards - listDashboards
348
- *
349
- * List dashboards available to the user
350
- */
351
- 'get'(
352
- parameters?: Parameters<UnknownParamsObject> | null,
353
- data?: any,
354
- config?: AxiosRequestConfig
355
- ): OperationResponse<Paths.ListDashboards.Responses.$200>
356
- /**
357
- * createDashboard - createDashboard
358
- *
359
- * Create new dashboard
360
- */
361
- 'post'(
362
- parameters?: Parameters<UnknownParamsObject> | null,
363
- data?: Paths.CreateDashboard.RequestBody,
364
- config?: AxiosRequestConfig
365
- ): OperationResponse<Paths.CreateDashboard.Responses.$201>
366
- }
367
- ['/v1/dashboard/dashboards/{id}']: {
368
- /**
369
- * getDashboard - getDashboard
370
- *
371
- * Get dashboard by ID
372
- */
373
- 'get'(
374
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
375
- data?: any,
376
- config?: AxiosRequestConfig
377
- ): OperationResponse<Paths.GetDashboard.Responses.$200>
378
- /**
379
- * putDashboard - putDashboard
380
- *
381
- * Update a dashboard by ID
382
- */
383
- 'put'(
384
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
385
- data?: Paths.PutDashboard.RequestBody,
386
- config?: AxiosRequestConfig
387
- ): OperationResponse<Paths.PutDashboard.Responses.$200>
388
- /**
389
- * deleteDashboard - deleteDashboard
390
- *
391
- * Delete a dashboard by ID
392
- */
393
- 'delete'(
394
- parameters?: Parameters<Paths.V1DashboardDashboards$Id.PathParameters> | null,
395
- data?: any,
396
- config?: AxiosRequestConfig
397
- ): OperationResponse<Paths.DeleteDashboard.Responses.$200>
398
- }
399
- ['/v1/dashboard/visualisations']: {
400
- /**
401
- * listAvailableVisualisations - listAvailableVisualisations
402
- *
403
- * Returns list of available Visualisations to configure new dashboard tiles
404
- */
405
- 'get'(
406
- parameters?: Parameters<UnknownParamsObject> | null,
407
- data?: any,
408
- config?: AxiosRequestConfig
409
- ): OperationResponse<Paths.ListAvailableVisualisations.Responses.$200>
410
- }
411
- ['/v1/dashboard/examples']: {
412
- /**
413
- * listAvailableExamples - listAvailableExamples
414
- *
415
- * Returns list of available exampless for visualisations to configure new dashboard tiles
416
- */
417
- 'get'(
418
- parameters?: Parameters<UnknownParamsObject> | null,
419
- data?: any,
420
- config?: AxiosRequestConfig
421
- ): OperationResponse<Paths.ListAvailableExamples.Responses.$200>
422
- }
423
- }
424
-
425
- type Client = OpenAPIClient<OperationMethods, PathsDictionary>
426
-
427
-
428
- type Dashboard = Components.Schemas.Dashboard;
429
- type DashboardID = Components.Schemas.DashboardID;
430
- type DashboardTile = Components.Schemas.DashboardTile;
431
- type DashboardTileID = Components.Schemas.DashboardTileID;
432
- type DatalakeQuery = Components.Schemas.DatalakeQuery;
433
- type Example = Components.Schemas.Example;
434
- type ExampleID = Components.Schemas.ExampleID;
435
- type timechartVisualisationConfig = Components.Schemas.TimechartVisualisationConfig;
436
- type Visualisation = Components.Schemas.Visualisation;
437
- type VisualisationConfig = Components.Schemas.VisualisationConfig;
438
- type VisualisationId = Components.Schemas.VisualisationId;
439
-
440
- export { type Client as C, type Dashboard as D, type Example as E, type OperationMethods as O, Paths as P, type Visualisation as V, Components as a, type PathsDictionary as b, type DashboardID as c, type DashboardTile as d, type DashboardTileID as e, type DatalakeQuery as f, type ExampleID as g, type VisualisationConfig as h, type VisualisationId as i, type timechartVisualisationConfig as t };
@@ -1,7 +0,0 @@
1
- import "./chunk-YPSWSI3M.js";
2
-
3
- // src/docs/email-settings.json
4
- var email_settings_default = '# Messaging Settings API\n\n- **Base URL:** `https://email-settings.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/email-settings](https://docs.epilot.io/api/email-settings)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.emailSettings.provisionEpilotEmailAddress(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/email-settings\'\n\nconst emailSettingsClient = getClient()\nauthorize(emailSettingsClient, () => \'<token>\')\nconst { data } = await emailSettingsClient.provisionEpilotEmailAddress(...)\n```\n\n## Operations\n\n**Email addresses**\n- [`provisionEpilotEmailAddress`](#provisionepilotemailaddress)\n- [`setEmailAddressPrimary`](#setemailaddressprimary)\n- [`getEmailAddress`](#getemailaddress)\n- [`deleteEmailAddress`](#deleteemailaddress)\n- [`updateEmailAddress`](#updateemailaddress)\n- [`listEmailAddresses`](#listemailaddresses)\n- [`addEmailAddress`](#addemailaddress)\n\n**Shared inboxes**\n- [`getSharedInbox`](#getsharedinbox)\n- [`deleteSharedInbox`](#deletesharedinbox)\n- [`updateSharedInbox`](#updatesharedinbox)\n- [`listSharedInboxes`](#listsharedinboxes)\n- [`addSharedInbox`](#addsharedinbox)\n\n**Inbox buckets**\n- [`listInboxBuckets`](#listinboxbuckets)\n\n**O365 Outlook Connection**\n- [`connectOutlook`](#connectoutlook)\n- [`getOutlookConnectionStatus`](#getoutlookconnectionstatus)\n- [`getCalendarAdminConsentStatus`](#getcalendaradminconsentstatus)\n- [`getMyCalendarConnection`](#getmycalendarconnection)\n- [`disconnectMyCalendar`](#disconnectmycalendar)\n- [`disconnectOutlook`](#disconnectoutlook)\n- [`connectOutlookMailbox`](#connectoutlookmailbox)\n- [`disconnectOutlookMailbox`](#disconnectoutlookmailbox)\n- [`startMailboxSync`](#startmailboxsync)\n- [`getMailboxSyncStatus`](#getmailboxsyncstatus)\n- [`retryMailboxSync`](#retrymailboxsync)\n- [`getConnectedOutlookEmails`](#getconnectedoutlookemails)\n- [`outlookOAuthCallback`](#outlookoauthcallback)\n\n**Channels**\n- [`connectMsTeams`](#connectmsteams)\n- [`disconnectMsTeams`](#disconnectmsteams)\n- [`getMsTeamsStatus`](#getmsteamsstatus)\n\n**Custom SMTP**\n- [`listSmtpConnections`](#listsmtpconnections)\n- [`createSmtpConnection`](#createsmtpconnection)\n- [`getSmtpConnection`](#getsmtpconnection)\n- [`updateSmtpConnection`](#updatesmtpconnection)\n- [`deleteSmtpConnection`](#deletesmtpconnection)\n- [`testSmtpConnection`](#testsmtpconnection)\n- [`listSmtpSenders`](#listsmtpsenders)\n- [`connectSmtpSender`](#connectsmtpsender)\n- [`disconnectSmtpSender`](#disconnectsmtpsender)\n\n**Settings**\n- [`getSettings`](#getsettings)\n- [`addSetting`](#addsetting)\n- [`deleteSetting`](#deletesetting)\n- [`updateSetting`](#updatesetting)\n\n**Domains**\n- [`addDomain`](#adddomain)\n- [`deleteDomain`](#deletedomain)\n- [`getDomains`](#getdomains)\n- [`verifyNameServers`](#verifynameservers)\n- [`verifyDnsRecords`](#verifydnsrecords)\n- [`verifyDomain`](#verifydomain)\n\n**Schemas**\n- [`ConnectOutlookRequest`](#connectoutlookrequest)\n- [`MailboxSyncStatus`](#mailboxsyncstatus)\n- [`MailboxSyncStatuses`](#mailboxsyncstatuses)\n- [`MailboxSyncFolderStatuses`](#mailboxsyncfolderstatuses)\n- [`MailboxSyncTimeframePeriods`](#mailboxsynctimeframeperiods)\n- [`InboxBucketResponse`](#inboxbucketresponse)\n- [`ProvisionEpilotEmailAddressPayload`](#provisionepilotemailaddresspayload)\n- [`SetEmailAddressPrimaryPayload`](#setemailaddressprimarypayload)\n- [`UpdateEmailAddressPayload`](#updateemailaddresspayload)\n- [`CreateEmailAddressPayload`](#createemailaddresspayload)\n- [`EmailAddressResponse`](#emailaddressresponse)\n- [`ErrorResponse`](#errorresponse)\n- [`SettingMeta`](#settingmeta)\n- [`UpdateSharedInboxPayload`](#updatesharedinboxpayload)\n- [`CreateSharedInboxPayload`](#createsharedinboxpayload)\n- [`SharedInboxResponse`](#sharedinboxresponse)\n- [`SettingsResponse`](#settingsresponse)\n- [`ConnectedOutlookEmail`](#connectedoutlookemail)\n- [`OutlookConnectionError`](#outlookconnectionerror)\n- [`CalendarAdminConsentStatus`](#calendaradminconsentstatus)\n- [`MyCalendarConnectionResponse`](#mycalendarconnectionresponse)\n- [`CalendarConnectionInfo`](#calendarconnectioninfo)\n- [`OutlookConnectionStatus`](#outlookconnectionstatus)\n- [`SmtpConnection`](#smtpconnection)\n- [`CreateSmtpConnectionRequest`](#createsmtpconnectionrequest)\n- [`UpdateSmtpConnectionRequest`](#updatesmtpconnectionrequest)\n- [`SmtpSender`](#smtpsender)\n- [`ConnectSmtpSenderRequest`](#connectsmtpsenderrequest)\n- [`SmtpTestResult`](#smtptestresult)\n- [`SignatureSetting`](#signaturesetting)\n- [`EmailDomainSetting`](#emaildomainsetting)\n- [`EmailAddressSetting`](#emailaddresssetting)\n- [`WhitelistEmailAddressSetting`](#whitelistemailaddresssetting)\n- [`RestrictDuplicatesWithinSetting`](#restrictduplicateswithinsetting)\n- [`SettingType`](#settingtype)\n- [`Setting`](#setting)\n- [`Domain`](#domain)\n\n### `provisionEpilotEmailAddress`\n\nProvisions or reactivates an epilot-managed email address for the organization.\n\n`PUT /v2/email-settings/email-addresses/epilot:provision`\n\n```ts\nconst { data } = await client.provisionEpilotEmailAddress(\n null,\n {\n address: \'mycompany@epilot.cloud\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n}\n```\n\n</details>\n\n---\n\n### `setEmailAddressPrimary`\n\nSets the specified email address as the primary address for the organization.\n\n`POST /v2/email-settings/email-addresses/primary`\n\n```ts\nconst { data } = await client.setEmailAddressPrimary(\n null,\n {\n address: \'sales@yourcompany.com\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n}\n```\n\n</details>\n\n---\n\n### `getEmailAddress`\n\nRetrieves the details of a specific email address by its ID.\n\n`GET /v2/email-settings/email-addresses/{id}`\n\n```ts\nconst { data } = await client.getEmailAddress({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n}\n```\n\n</details>\n\n---\n\n### `deleteEmailAddress`\n\nPermanently deletes an email address from the organization.\n\n`DELETE /v2/email-settings/email-addresses/{id}`\n\n```ts\nconst { data } = await client.deleteEmailAddress({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `updateEmailAddress`\n\nUpdates the configuration of an existing email address.\n\n`PUT /v2/email-settings/email-addresses/{id}`\n\n```ts\nconst { data } = await client.updateEmailAddress(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n name: \'Sales Team\',\n user_ids: [\'user-123\', \'user-456\'],\n group_ids: [\'group-789\'],\n default_signature_id: \'sig-abc\',\n shared_inbox_id: \'inbox-xyz\',\n is_active: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n}\n```\n\n</details>\n\n---\n\n### `listEmailAddresses`\n\nRetrieves all email addresses configured for the organization.\n\n`GET /v2/email-settings/email-addresses`\n\n```ts\nconst { data } = await client.listEmailAddresses()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n }\n]\n```\n\n</details>\n\n---\n\n### `addEmailAddress`\n\nAdds a new email address to the organization.\n\n`POST /v2/email-settings/email-addresses`\n\n```ts\nconst { data } = await client.addEmailAddress(\n null,\n {\n address: \'support@yourcompany.com\',\n name: \'Customer Support\',\n user_ids: [\'user-123\'],\n group_ids: [\'group-456\'],\n default_signature_id: \'sig-789\',\n shared_inbox_id: \'inbox-abc\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n}\n```\n\n</details>\n\n---\n\n### `getSharedInbox`\n\nRetrieves the details of a specific shared inbox by its ID.\n\n`GET /v2/email-settings/shared-inboxes/{id}`\n\n```ts\nconst { data } = await client.getSharedInbox({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "name": "Customer Support",\n "color": "#4CAF50",\n "assignees": ["user-123", "user-456"],\n "description": "Incoming customer support requests",\n "bucket_id": "bucket-xyz"\n}\n```\n\n</details>\n\n---\n\n### `deleteSharedInbox`\n\nDeletes a shared inbox and reroutes all associated emails to a successor inbox.\n\n`DELETE /v2/email-settings/shared-inboxes/{id}`\n\n```ts\nconst { data } = await client.deleteSharedInbox({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n successorInboxId: \'example\',\n})\n```\n\n---\n\n### `updateSharedInbox`\n\nUpdates the configuration of an existing shared inbox.\n\n`PUT /v2/email-settings/shared-inboxes/{id}`\n\n```ts\nconst { data } = await client.updateSharedInbox(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n color: \'#4CAF50\',\n name: \'Customer Support\',\n assignees: [\'user-123\', \'user-456\'],\n description: \'Incoming customer support requests\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "name": "Customer Support",\n "color": "#4CAF50",\n "assignees": ["user-123", "user-456"],\n "description": "Incoming customer support requests",\n "bucket_id": "bucket-xyz"\n}\n```\n\n</details>\n\n---\n\n### `listSharedInboxes`\n\nRetrieves all shared inboxes configured for the organization.\n\n`GET /v2/email-settings/shared-inboxes`\n\n```ts\nconst { data } = await client.listSharedInboxes()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "name": "Customer Support",\n "color": "#4CAF50",\n "assignees": ["user-123", "user-456"],\n "description": "Incoming customer support requests",\n "bucket_id": "bucket-xyz"\n }\n]\n```\n\n</details>\n\n---\n\n### `addSharedInbox`\n\nCreates a new shared inbox for the organization.\n\n`POST /v2/email-settings/shared-inboxes`\n\n```ts\nconst { data } = await client.addSharedInbox(\n null,\n {\n id: \'support-inbox\',\n color: \'#2196F3\',\n name: \'Sales Inquiries\',\n assignees: [\'user-123\', \'user-456\'],\n description: \'Inbound sales and pricing requests\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "name": "Customer Support",\n "color": "#4CAF50",\n "assignees": ["user-123", "user-456"],\n "description": "Incoming customer support requests",\n "bucket_id": "bucket-xyz"\n}\n```\n\n</details>\n\n---\n\n### `listInboxBuckets`\n\nRetrieves all inbox buckets for the organization.\n\n`GET /v2/email-settings/inbox-buckets`\n\n```ts\nconst { data } = await client.listInboxBuckets()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "bucket-abc",\n "inbox_id": "inbox-xyz"\n }\n]\n```\n\n</details>\n\n---\n\n### `connectOutlook`\n\nReturns the Microsoft authorization URL for Outlook OAuth.\n\n`POST /v2/outlook/connect`\n\n```ts\nconst { data } = await client.connectOutlook(\n null,\n {\n mail: true,\n calendar: true,\n return_to: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "authorization_url": "string"\n}\n```\n\n</details>\n\n---\n\n### `getOutlookConnectionStatus`\n\nReturns all Microsoft 365 / Outlook connections for the organization.\nSupports multiple connections (one per Azure AD tenant).\n\n`GET /v2/outlook/connection/status`\n\n```ts\nconst { data } = await client.getOutlookConnectionStatus()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connections": [\n {\n "status": "connected",\n "action": "connect",\n "action_reason": "expired",\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_by_user_id": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "tenant_id": "string",\n "scopes": ["string"],\n "expires_at": "1970-01-01T00:00:00.000Z",\n "is_token_valid": true\n }\n ],\n "has_connections": true,\n "teams_enabled": true\n}\n```\n\n</details>\n\n---\n\n### `getCalendarAdminConsentStatus`\n\nReports whether the caller\'s organization can connect personal Outlook\ncalendars.\n\n`GET /v2/outlook/calendar/admin-consent-status`\n\n```ts\nconst { data } = await client.getCalendarAdminConsentStatus()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "admin_consented": true,\n "admin_consent_url": "https://example.com/path"\n}\n```\n\n</details>\n\n---\n\n### `getMyCalendarConnection`\n\nReturns the calling user\'s personal Outlook calendar connection,\nor null when the user hasn\'t connected yet.\n\n`GET /v2/outlook/calendar/me`\n\n```ts\nconst { data } = await client.getMyCalendarConnection()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connection": {\n "user_id": "string",\n "tenant_id": "string",\n "status": "connected",\n "scopes": ["string"],\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "expires_at": "1970-01-01T00:00:00.000Z"\n }\n}\n```\n\n</details>\n\n---\n\n### `disconnectMyCalendar`\n\nRemoves the calling user\'s personal calendar connection.\n\n`DELETE /v2/outlook/calendar/me`\n\n```ts\nconst { data } = await client.disconnectMyCalendar()\n```\n\n---\n\n### `disconnectOutlook`\n\nRemoves the Microsoft 365 / Outlook connection for a specific tenant.\nThis deletes the stored tokens and disconnects the integration.\n\n`POST /v2/outlook/connection/disconnect`\n\n```ts\nconst { data } = await client.disconnectOutlook(\n null,\n {\n tenant_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "tenant_id": "string",\n "affected_shared_inboxes": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `connectMsTeams`\n\nConnects Microsoft Teams channel (click-to-call deep links, meetings) for the organization.\nRequires an active Microsoft 365 / Outlook connection.\n\n`POST /v2/channels/msteams/connect`\n\n```ts\nconst { data } = await client.connectMsTeams()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connected": true,\n "connected_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `disconnectMsTeams`\n\nDisconnects Microsoft Teams channel for the organization.\n\n`POST /v2/channels/msteams/disconnect`\n\n```ts\nconst { data } = await client.disconnectMsTeams()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connected": true\n}\n```\n\n</details>\n\n---\n\n### `getMsTeamsStatus`\n\nReturns the connection status of the Microsoft Teams channel for the organization.\n\n`GET /v2/channels/msteams/status`\n\n```ts\nconst { data } = await client.getMsTeamsStatus()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connected": true,\n "connected_at": "1970-01-01T00:00:00.000Z",\n "connected_by_user_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `connectOutlookMailbox`\n\nConnects an Outlook mailbox:\n 1. Validates the user has access to the mailbox via Microsoft Graph API\n 2. Creates a mapping between the email address of the mailbox and the outlook connection\n 3. E\n\n`POST /v2/outlook/mailbox/connect`\n\n```ts\nconst { data } = await client.connectOutlookMailbox(\n null,\n {\n email: \'user@example.com\',\n shared_inbox_id: \'default\',\n name: \'string\',\n user_ids: [\'string\'],\n group_ids: [\'string\'],\n default_signature_id: \'string\',\n mailboxSyncTimeframe: \'5m\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "email_address": {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n },\n "outlook_email": "user@example.com",\n "tenant_id": "string",\n "provider": "outlook"\n}\n```\n\n</details>\n\n---\n\n### `disconnectOutlookMailbox`\n\nDisconnect Outlook Mailbox\n\n`POST /v2/outlook/mailbox/{email}/disconnect`\n\n```ts\nconst { data } = await client.disconnectOutlookMailbox({\n email: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "email": "user@example.com"\n}\n```\n\n</details>\n\n---\n\n### `startMailboxSync`\n\nStart Mailbox Sync\n\n`POST /v2/outlook/mailbox/{email}/sync`\n\n```ts\nconst { data } = await client.startMailboxSync(\n {\n email: \'example\',\n },\n {\n timeframe: \'5m\'\n },\n)\n```\n\n---\n\n### `getMailboxSyncStatus`\n\nGet Mailbox Sync Status\n\n`GET /v2/outlook/mailbox/{email}/sync/status`\n\n```ts\nconst { data } = await client.getMailboxSyncStatus({\n email: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "execution_id": "string",\n "status": "RUNNING",\n "timeframe": "5m",\n "started_at": "1970-01-01T00:00:00.000Z",\n "completed_at": "1970-01-01T00:00:00.000Z",\n "inbox": {\n "status": "PENDING",\n "total_messages": 0,\n "processed_messages": 0,\n "failed_messages": 0\n },\n "sent_items": {\n "status": "PENDING",\n "total_messages": 0,\n "processed_messages": 0,\n "failed_messages": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `retryMailboxSync`\n\nRetry Failed Messages\n\n`POST /v2/outlook/mailbox/{email}/sync/retry`\n\n```ts\nconst { data } = await client.retryMailboxSync(\n {\n email: \'example\',\n },\n {\n sync_id: \'string\',\n scope: \'all_failed\',\n message_ids: [\'string\']\n },\n)\n```\n\n---\n\n### `getConnectedOutlookEmails`\n\nReturns all Outlook email addresses connected to the organization.\n\n`GET /v2/outlook/mailbox/mappings`\n\n```ts\nconst { data } = await client.getConnectedOutlookEmails()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "outlook_emails": [\n {\n "outlook_email": "user@example.com",\n "tenant_id": "string",\n "provider": "outlook",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "connected_by_user_id": "string"\n }\n ],\n "count": 0\n}\n```\n\n</details>\n\n---\n\n### `listSmtpConnections`\n\nReturns all custom SMTP connections configured for the organization.\nPasswords are never returned.\n\n`GET /v2/smtp/connections`\n\n```ts\nconst { data } = await client.listSmtpConnections()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connections": [\n {\n "connection_id": "string",\n "smtp_host": "string",\n "smtp_port": 0,\n "smtp_secure": "tls",\n "smtp_username": "string",\n "smtp_password": "string",\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_by_user_id": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "last_tested_at": "1970-01-01T00:00:00.000Z",\n "last_test_status": "ok",\n "last_test_error": "string"\n }\n ],\n "has_connections": true\n}\n```\n\n</details>\n\n---\n\n### `createSmtpConnection`\n\nCreates a new custom SMTP connection. Runs a live verify against the SMTP server\nbefore persisting; on failure the request is rejected and nothing is saved.\nThe password is encrypted via KMS before be\n\n`POST /v2/smtp/connections`\n\n```ts\nconst { data } = await client.createSmtpConnection(\n null,\n {\n smtp_host: \'string\',\n smtp_port: 1,\n smtp_secure: \'tls\',\n smtp_username: \'string\',\n smtp_password: \'{{ env.smtp_password }}\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connection_id": "string",\n "smtp_host": "string",\n "smtp_port": 0,\n "smtp_secure": "tls",\n "smtp_username": "string",\n "smtp_password": "string",\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_by_user_id": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "last_tested_at": "1970-01-01T00:00:00.000Z",\n "last_test_status": "ok",\n "last_test_error": "string"\n}\n```\n\n</details>\n\n---\n\n### `getSmtpConnection`\n\nReturns a single custom SMTP connection by id. The password is never returned.\n\n`GET /v2/smtp/connections/{connectionId}`\n\n```ts\nconst { data } = await client.getSmtpConnection({\n connectionId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connection_id": "string",\n "smtp_host": "string",\n "smtp_port": 0,\n "smtp_secure": "tls",\n "smtp_username": "string",\n "smtp_password": "string",\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_by_user_id": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "last_tested_at": "1970-01-01T00:00:00.000Z",\n "last_test_status": "ok",\n "last_test_error": "string"\n}\n```\n\n</details>\n\n---\n\n### `updateSmtpConnection`\n\nPartial update; omitted fields keep their existing values. The merged\nconfiguration is verified against the SMTP server before persisting.\n\n`PUT /v2/smtp/connections/{connectionId}`\n\n```ts\nconst { data } = await client.updateSmtpConnection(\n {\n connectionId: \'example\',\n },\n {\n smtp_host: \'string\',\n smtp_port: 1,\n smtp_secure: \'tls\',\n smtp_username: \'string\',\n smtp_password: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connection_id": "string",\n "smtp_host": "string",\n "smtp_port": 0,\n "smtp_secure": "tls",\n "smtp_username": "string",\n "smtp_password": "string",\n "connected_by_display_name": "string",\n "connected_by_email": "user@example.com",\n "connected_by_user_id": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "last_tested_at": "1970-01-01T00:00:00.000Z",\n "last_test_status": "ok",\n "last_test_error": "string"\n}\n```\n\n</details>\n\n---\n\n### `deleteSmtpConnection`\n\nDeletes a custom SMTP connection. Messages already sent are unaffected.\n\n`DELETE /v2/smtp/connections/{connectionId}`\n\n```ts\nconst { data } = await client.deleteSmtpConnection({\n connectionId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "connection_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `testSmtpConnection`\n\nRe-runs a live SMTP verify against the saved configuration (EHLO + AUTH + NOOP + QUIT)\nand updates `last_test_status` / `last_tested_at` on the connection.\n\n`POST /v2/smtp/connections/{connectionId}/test`\n\n```ts\nconst { data } = await client.testSmtpConnection({\n connectionId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "ok",\n "error": "string",\n "tested_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `listSmtpSenders`\n\nReturns every address registered to send through a custom SMTP connection.\n\n`GET /v2/smtp/senders`\n\n```ts\nconst { data } = await client.listSmtpSenders()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "senders": [\n {\n "email": "user@example.com",\n "connection_id": "string",\n "reply_to_email": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "connected_by_user_id": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `connectSmtpSender`\n\nRegisters an address as a sender on a custom SMTP connection:\n 1. Creates the email address so it can be picked in the composer\n 2. Binds it to the connection, so outgoing mail from it is routed the\n\n`POST /v2/smtp/senders`\n\n```ts\nconst { data } = await client.connectSmtpSender(\n null,\n {\n email: \'user@example.com\',\n connection_id: \'string\',\n name: \'string\',\n reply_to_email: \'string\',\n shared_inbox_id: \'default\',\n user_ids: [\'string\'],\n group_ids: [\'string\'],\n default_signature_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "email_address": {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456",\n "address": "sales@yourcompany.com",\n "name": "Sales Team",\n "user_ids": ["user-123", "user-456"],\n "group_ids": ["group-789"],\n "default_signature_id": "sig-abc",\n "shared_inbox_id": "inbox-xyz",\n "is_active": true,\n "is_primary": false,\n "is_epilot_email_address": false\n },\n "sender": {\n "email": "user@example.com",\n "connection_id": "string",\n "reply_to_email": "string",\n "connected_at": "1970-01-01T00:00:00.000Z",\n "connected_by_user_id": "string"\n }\n}\n```\n\n</details>\n\n---\n\n### `disconnectSmtpSender`\n\nRemoves a sender address: deletes the email address and its binding to the SMTP\nconnection. The connection itself and messages already sent are unaffected.\n\n`DELETE /v2/smtp/senders/{email}`\n\n```ts\nconst { data } = await client.disconnectSmtpSender({\n email: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "email": "user@example.com"\n}\n```\n\n</details>\n\n---\n\n### `outlookOAuthCallback`\n\nExchanges authorization code for tokens and stores them.\n\n`GET /v2/outlook/oauth/callback`\n\n```ts\nconst { data } = await client.outlookOAuthCallback({\n code: \'example\',\n state: \'example\',\n session_state: \'example\',\n error: \'example\',\n error_description: \'example\',\n error_subcode: \'example\',\n client_info: \'example\',\n error_uri: \'example\',\n admin_consent: \'example\',\n tenant: \'example\',\n clientdata: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "connected": true,\n "expires_at": "1970-01-01T00:00:00.000Z",\n "scope": "string"\n}\n```\n\n</details>\n\n---\n\n### `getSettings`\n\nRetrieves settings of a specific type for the organization.\n\n`GET /v1/email-settings`\n\n```ts\nconst { data } = await client.getSettings({\n type: \'example\',\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n### `addSetting`\n\nCreates a new setting of the specified type.\n\n`POST /v1/email-settings`\n\n```ts\nconst { data } = await client.addSetting(\n null,\n {\n id: \'a10bd0ff-4391-4cfc-88ee-b19d718a9bf7\',\n name: \'Default Signature\',\n org_id: \'org-123\',\n type: \'signature\',\n value: \'Best regards, The Team\',\n html: \'<p>Best regards,<br/><strong>The Team</strong></p>\',\n created_at: \'2024-01-15T10:30:00Z\',\n updated_at: \'2024-01-20T14:45:00Z\',\n created_by: \'user-123\',\n updated_by: \'user-456\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n### `deleteSetting`\n\nDeletes a setting by its ID and type.\n\n`DELETE /v1/email-settings`\n\n```ts\nconst { data } = await client.deleteSetting(\n null,\n {\n type: \'signature\',\n id: \'a10bd0ff-4391-4cfc-88ee-b19d718a9bf7\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n}\n```\n\n</details>\n\n---\n\n### `updateSetting`\n\nUpdates an existing setting identified by its ID.\n\n`POST /v1/email-settings/{id}`\n\n```ts\nconst { data } = await client.updateSetting(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n id: \'a10bd0ff-4391-4cfc-88ee-b19d718a9bf7\',\n name: \'Default Signature\',\n org_id: \'org-123\',\n type: \'signature\',\n value: \'Best regards, The Team\',\n html: \'<p>Best regards,<br/><strong>The Team</strong></p>\',\n created_at: \'2024-01-15T10:30:00Z\',\n updated_at: \'2024-01-20T14:45:00Z\',\n created_by: \'user-123\',\n updated_by: \'user-456\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n}\n```\n\n</details>\n\n---\n\n### `addDomain`\n\nAdds a custom email domain to the organization.\n\n`POST /v1/email-settings/domain`\n\n```ts\nconst { data } = await client.addDomain(\n null,\n {\n domain: \'mail.yourcompany.com\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n### `deleteDomain`\n\nRemoves a custom email domain from the organization.\n\n`DELETE /v1/email-settings/domain`\n\n```ts\nconst { data } = await client.deleteDomain(\n null,\n {\n domain: \'mail.yourcompany.com\'\n },\n)\n```\n\n---\n\n### `getDomains`\n\nRetrieves all custom email domains for the organization.\n\n`GET /v1/email-settings/domain`\n\n```ts\nconst { data } = await client.getDomains()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n["string"]\n```\n\n</details>\n\n---\n\n### `verifyNameServers`\n\nVerifies that the domain\'s name server (NS) records are correctly configured.\n\n`POST /v1/email-settings/domain/name-servers:verify`\n\n```ts\nconst { data } = await client.verifyNameServers(\n null,\n {\n domain: \'mail.yourcompany.com\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n### `verifyDnsRecords`\n\nVerifies that the domain\'s DNS records (MX, TXT, CNAME) are correctly configured\nin the customer\'s DNS provider.\n\n`POST /v1/email-settings/domain/dns-records:verify`\n\n```ts\nconst { data } = await client.verifyDnsRecords(\n null,\n {\n domain: \'mail.yourcompany.com\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n### `verifyDomain`\n\nVerifies ownership and configuration of a custom email domain.\n\n`POST /v1/email-settings/domain:verify`\n\n```ts\nconst { data } = await client.verifyDomain(\n null,\n {\n domain: \'mail.yourcompany.com\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "a10bd0ff-4391-4cfc-88ee-b19d718a9bf7",\n "name": "Default Signature",\n "org_id": "org-123",\n "type": "signature",\n "value": "Best regards, The Team",\n "html": "<p>Best regards,<br/><strong>The Team</strong></p>",\n "created_at": "2024-01-15T10:30:00Z",\n "updated_at": "2024-01-20T14:45:00Z",\n "created_by": "user-123",\n "updated_by": "user-456"\n }\n]\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ConnectOutlookRequest`\n\nFeature flags selecting which Microsoft Graph scopes to request.\nAt least one flag must be true. Passing a superset of previously\ngranted features triggers incremental consent for the delta only.\n\n\n```ts\ntype ConnectOutlookRequest = {\n mail?: boolean\n calendar?: boolean\n return_to?: string\n}\n```\n\n### `MailboxSyncStatus`\n\n```ts\ntype MailboxSyncStatus = {\n execution_id: string\n status: "RUNNING" | "COMPLETED" | "COMPLETED_WITH_ERRORS" | "FAILED" | "CANCELLED"\n timeframe: "5m" | "1w" | "2w" | "1m"\n started_at: string // date-time\n completed_at?: string // date-time\n inbox?: {\n status?: "PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "SKIPPED"\n total_messages?: number\n processed_messages?: number\n failed_messages?: number\n }\n sent_items?: {\n status?: "PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "SKIPPED"\n total_messages?: number\n processed_messages?: number\n failed_messages?: number\n }\n}\n```\n\n### `MailboxSyncStatuses`\n\n```ts\ntype MailboxSyncStatuses = "RUNNING" | "COMPLETED" | "COMPLETED_WITH_ERRORS" | "FAILED" | "CANCELLED"\n```\n\n### `MailboxSyncFolderStatuses`\n\n```ts\ntype MailboxSyncFolderStatuses = "PENDING" | "RUNNING" | "COMPLETED" | "FAILED" | "SKIPPED"\n```\n\n### `MailboxSyncTimeframePeriods`\n\n```ts\ntype MailboxSyncTimeframePeriods = "5m" | "1w" | "2w" | "1m"\n```\n\n### `InboxBucketResponse`\n\nInbox bucket representing the storage container for a shared inbox.\n\n```ts\ntype InboxBucketResponse = {\n id: string\n inbox_id: string\n}\n```\n\n### `ProvisionEpilotEmailAddressPayload`\n\nRequest payload for provisioning an epilot-managed email address.\n\n```ts\ntype ProvisionEpilotEmailAddressPayload = {\n address: string\n}\n```\n\n### `SetEmailAddressPrimaryPayload`\n\nRequest payload for setting an email address as the organization\'s primary address.\n\n```ts\ntype SetEmailAddressPrimaryPayload = {\n address: string\n}\n```\n\n### `UpdateEmailAddressPayload`\n\nRequest payload for updating an email address configuration.\nAll fields are optional; only provided fields will be updated.\n\n\n```ts\ntype UpdateEmailAddressPayload = {\n name?: string\n user_ids?: string[]\n group_ids?: string[]\n default_signature_id?: string\n shared_inbox_id?: string\n is_active?: boolean\n}\n```\n\n### `CreateEmailAddressPayload`\n\nRequest payload for creating a new email address.\n\n```ts\ntype CreateEmailAddressPayload = {\n address: string\n name?: string\n user_ids?: string[]\n group_ids?: string[]\n default_signature_id?: string\n shared_inbox_id?: string\n}\n```\n\n### `EmailAddressResponse`\n\nEmail address configuration with all associated metadata.\n\n```ts\ntype EmailAddressResponse = {\n id: string\n created_at: string // date-time\n updated_at?: string // date-time\n created_by?: string\n updated_by?: string\n address: string\n name?: string\n user_ids?: string[]\n group_ids?: string[]\n default_signature_id?: string\n shared_inbox_id?: string\n is_active?: boolean\n is_primary?: boolean\n is_epilot_email_address?: boolean\n}\n```\n\n### `ErrorResponse`\n\nStandard error response format for all API errors.\n\n```ts\ntype ErrorResponse = {\n error: string\n status: number\n}\n```\n\n### `SettingMeta`\n\nCommon metadata fields for all settings and resources.\n\n```ts\ntype SettingMeta = {\n id: string\n created_at: string // date-time\n updated_at?: string // date-time\n created_by?: string\n updated_by?: string\n}\n```\n\n### `UpdateSharedInboxPayload`\n\nRequest payload for updating a shared inbox configuration.\nAll fields are optional; only provided fields will be updated.\n\n\n```ts\ntype UpdateSharedInboxPayload = {\n color?: string\n name?: string\n assignees?: string[]\n description?: string\n}\n```\n\n### `CreateSharedInboxPayload`\n\nRequest payload for creating a new shared inbox.\n\n```ts\ntype CreateSharedInboxPayload = {\n id?: string\n color: string\n name: string\n assignees?: string[]\n description?: string\n}\n```\n\n### `SharedInboxResponse`\n\nShared inbox configuration with all associated metadata.\n\n```ts\ntype SharedInboxResponse = {\n id: string\n created_at: string // date-time\n updated_at?: string // date-time\n created_by?: string\n updated_by?: string\n name: string\n color: string\n assignees: string[]\n description?: string\n bucket_id: string\n}\n```\n\n### `SettingsResponse`\n\n```ts\ntype SettingsResponse = Array<{\n id?: string\n name?: string\n org_id?: string\n type: "signature" | "email_domain" | "email_address" | "whitelist_email_address" | "restrict_duplicates_within"\n value?: string\n html?: string\n created_at?: string\n updated_at?: string\n created_by?: string\n updated_by?: string\n}> | {\n id?: string\n name?: string\n org_id?: string\n type: "signature" | "email_domain" | "email_address" | "whitelist_email_address" | "restrict_duplicates_within"\n value?: string\n html?: string\n created_at?: string\n updated_at?: string\n created_by?: string\n updated_by?: string\n}\n```\n\n### `ConnectedOutlookEmail`\n\nMapping between an Outlook email and its Outlook Connection.\nThis tracks which provider/tenant provisions each Outlook email.\n\n\n```ts\ntype ConnectedOutlookEmail = {\n outlook_email: string // email\n tenant_id?: string\n provider?: "outlook"\n connected_at?: string // date-time\n connected_by_user_id?: string\n}\n```\n\n### `OutlookConnectionError`\n\n```ts\ntype OutlookConnectionError = {\n error: string\n error_description?: string\n admin_consent_url?: string // uri\n}\n```\n\n### `CalendarAdminConsentStatus`\n\n```ts\ntype CalendarAdminConsentStatus = {\n admin_consented: boolean\n admin_consent_url?: string // uri\n}\n```\n\n### `MyCalendarConnectionResponse`\n\nPer-user calendar connection metadata, or null when the caller has\nnot connected their personal calendar yet.\n\n\n```ts\ntype MyCalendarConnectionResponse = {\n connection?: {\n user_id: string\n tenant_id: string\n status: "connected" | "expired"\n scopes?: string[]\n connected_by_display_name?: string\n connected_by_email?: string // email\n connected_at?: string // date-time\n updated_at?: string // date-time\n expires_at?: string // date-time\n }\n}\n```\n\n### `CalendarConnectionInfo`\n\n```ts\ntype CalendarConnectionInfo = {\n user_id: string\n tenant_id: string\n status: "connected" | "expired"\n scopes?: string[]\n connected_by_display_name?: string\n connected_by_email?: string // email\n connected_at?: string // date-time\n updated_at?: string // date-time\n expires_at?: string // date-time\n}\n```\n\n### `OutlookConnectionStatus`\n\n```ts\ntype OutlookConnectionStatus = {\n status: "connected" | "expired" | "pending_auth" | "not_connected"\n action: "connect" | "authorize" | "reconnect" | "none"\n action_reason?: "expired" | "permission_update"\n connected_by_display_name?: string\n connected_by_email?: string // email\n connected_by_user_id?: string\n connected_at?: string // date-time\n updated_at?: string // date-time\n tenant_id: string\n scopes?: string[]\n expires_at?: string // date-time\n is_token_valid?: boolean\n}\n```\n\n### `SmtpConnection`\n\n```ts\ntype SmtpConnection = {\n connection_id: string\n smtp_host: string\n smtp_port: number\n smtp_secure: "tls" | "starttls"\n smtp_username: string\n smtp_password?: string\n connected_by_display_name?: string\n connected_by_email?: string // email\n connected_by_user_id?: string\n connected_at?: string // date-time\n updated_at?: string // date-time\n last_tested_at?: string // date-time\n last_test_status?: "ok" | "auth_failed" | "tls_failed" | "host_unreachable" | "timeout" | "secret_missing" | "unknown"\n last_test_error?: string\n}\n```\n\n### `CreateSmtpConnectionRequest`\n\n```ts\ntype CreateSmtpConnectionRequest = {\n smtp_host: string\n smtp_port: number\n smtp_secure: "tls" | "starttls"\n smtp_username: string\n smtp_password: string\n}\n```\n\n### `UpdateSmtpConnectionRequest`\n\nPartial update; omitted fields keep their existing values.\n\n```ts\ntype UpdateSmtpConnectionRequest = {\n smtp_host?: string\n smtp_port?: number\n smtp_secure?: "tls" | "starttls"\n smtp_username?: string\n smtp_password?: string\n}\n```\n\n### `SmtpSender`\n\nAn address allowed to send through a custom SMTP connection. Mirrors an Outlook\nmailbox: the address, its display name and its assignees live on the shared\nemail-address record, while this row binds it to a set of SMTP credentials.\n\n\n```ts\ntype SmtpSender = {\n email: string // email\n connection_id: string\n reply_to_email?: string\n connected_at?: string // date-time\n connected_by_user_id?: string\n}\n```\n\n### `ConnectSmtpSenderRequest`\n\n```ts\ntype ConnectSmtpSenderRequest = {\n email: string // email\n connection_id: string\n name?: string\n reply_to_email?: string\n shared_inbox_id?: string\n user_ids?: string[]\n group_ids?: string[]\n default_signature_id?: string\n}\n```\n\n### `SmtpTestResult`\n\n```ts\ntype SmtpTestResult = {\n status: "ok" | "auth_failed" | "tls_failed" | "host_unreachable" | "timeout" | "secret_missing" | "unknown"\n error?: string\n tested_at: string // date-time\n}\n```\n\n### `SignatureSetting`\n\nSetting that allows to add a signature.\n\n```ts\ntype SignatureSetting = "signature"\n```\n\n### `EmailDomainSetting`\n\nSetting that allows to add a custom domain. For e.g; doe.com\n\n```ts\ntype EmailDomainSetting = "email_domain"\n```\n\n### `EmailAddressSetting`\n\nSetting that allows to add an email address on the custom domain. For e.g; john@doe.com\n\n```ts\ntype EmailAddressSetting = "email_address"\n```\n\n### `WhitelistEmailAddressSetting`\n\n- Setting that specifies a list of addresses exempt from being flagged as duplicate emails.\n- An email will be flagged as a duplicate if it has the same content and is sent to the same recipient within the time frame specified in the RestrictDuplicatesWithinSetting.\n\n\n```ts\ntype WhitelistEmailAddressSetting = "whitelist_email_address"\n```\n\n### `RestrictDuplicatesWithinSetting`\n\n- Restrict duplicates within:\n * 10s\n * 5m\n * 1d\n * 5000 // It converts to 5 seconds.When expressed as a numerical value, it will be interpreted as being in milliseconds.\n- Defaults to 3 minutes\n- Negative values will be treated same as positive values\n- If not set, defaults to 3 min\n- If set as\n\n```ts\ntype RestrictDuplicatesWithinSetting = "restrict_duplicates_within"\n```\n\n### `SettingType`\n\n```ts\ntype SettingType = "signature" | "email_domain" | "email_address" | "whitelist_email_address" | "restrict_duplicates_within"\n```\n\n### `Setting`\n\nGeneric setting object used for various email configuration types.\nThe applicable fields depend on the setting type:\n- **signature**: Uses `name`, `value` (plain text), and `html` (rich text)\n- **email_domain**: Uses `value` (domain name)\n- **whitelist_email_address**: Uses `value` (email address)\n-\n\n```ts\ntype Setting = {\n id?: string\n name?: string\n org_id?: string\n type: "signature" | "email_domain" | "email_address" | "whitelist_email_address" | "restrict_duplicates_within"\n value?: string\n html?: string\n created_at?: string\n updated_at?: string\n created_by?: string\n updated_by?: string\n}\n```\n\n### `Domain`\n\nCustom email domain configuration.\n\n```ts\ntype Domain = {\n domain?: string\n}\n```\n';
5
- export {
6
- email_settings_default as default
7
- };