@epilot/sdk 2.20.14 → 2.20.15

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 (126) hide show
  1. package/definitions/access-token-runtime.json +1 -1
  2. package/definitions/access-token.json +208 -3
  3. package/dist/access-token-E2XEMQMG.cjs +7 -0
  4. package/dist/access-token-IBKEXWNA.js +7 -0
  5. package/dist/{access-token-runtime-B6Z7JLUS.cjs → access-token-runtime-3HQN34OF.cjs} +2 -2
  6. package/dist/{access-token-runtime-2PSLN2U3.js → access-token-runtime-MEKGPOGL.js} +1 -1
  7. package/dist/{access-token.d-BhRUc8I-.d.cts → access-token.d-OiCg1gnT.d.cts} +221 -3
  8. package/dist/{access-token.d-BhRUc8I-.d.ts → access-token.d-OiCg1gnT.d.ts} +221 -3
  9. package/dist/apis/access-token.cjs +8 -8
  10. package/dist/apis/access-token.d.cts +2 -2
  11. package/dist/apis/access-token.d.ts +2 -2
  12. package/dist/apis/access-token.js +2 -2
  13. package/dist/apis/address-suggestions.cjs +6 -6
  14. package/dist/apis/address-suggestions.js +1 -1
  15. package/dist/apis/address.cjs +6 -6
  16. package/dist/apis/address.js +1 -1
  17. package/dist/apis/ai-agents.cjs +6 -6
  18. package/dist/apis/ai-agents.js +1 -1
  19. package/dist/apis/app.cjs +6 -6
  20. package/dist/apis/app.js +1 -1
  21. package/dist/apis/audit-logs.cjs +6 -6
  22. package/dist/apis/audit-logs.js +1 -1
  23. package/dist/apis/automation.cjs +6 -6
  24. package/dist/apis/automation.js +1 -1
  25. package/dist/apis/billing.cjs +6 -6
  26. package/dist/apis/billing.js +1 -1
  27. package/dist/apis/blueprint-manifest.cjs +6 -6
  28. package/dist/apis/blueprint-manifest.js +1 -1
  29. package/dist/apis/calendar.cjs +6 -6
  30. package/dist/apis/calendar.js +1 -1
  31. package/dist/apis/configuration-hub.cjs +6 -6
  32. package/dist/apis/configuration-hub.js +1 -1
  33. package/dist/apis/consent.cjs +6 -6
  34. package/dist/apis/consent.js +1 -1
  35. package/dist/apis/customer-portal.cjs +6 -6
  36. package/dist/apis/customer-portal.js +1 -1
  37. package/dist/apis/dashboard.cjs +6 -6
  38. package/dist/apis/dashboard.js +1 -1
  39. package/dist/apis/data-governance.cjs +6 -6
  40. package/dist/apis/data-governance.js +1 -1
  41. package/dist/apis/deduplication.cjs +6 -6
  42. package/dist/apis/deduplication.js +1 -1
  43. package/dist/apis/design.cjs +6 -6
  44. package/dist/apis/design.js +1 -1
  45. package/dist/apis/document.cjs +6 -6
  46. package/dist/apis/document.js +1 -1
  47. package/dist/apis/email-settings.cjs +6 -6
  48. package/dist/apis/email-settings.js +1 -1
  49. package/dist/apis/email-template.cjs +6 -6
  50. package/dist/apis/email-template.js +1 -1
  51. package/dist/apis/entity-mapping.cjs +6 -6
  52. package/dist/apis/entity-mapping.js +1 -1
  53. package/dist/apis/entity.cjs +6 -6
  54. package/dist/apis/entity.js +1 -1
  55. package/dist/apis/environments.cjs +6 -6
  56. package/dist/apis/environments.js +1 -1
  57. package/dist/apis/event-catalog.cjs +6 -6
  58. package/dist/apis/event-catalog.js +1 -1
  59. package/dist/apis/file.cjs +6 -6
  60. package/dist/apis/file.js +1 -1
  61. package/dist/apis/iban.cjs +6 -6
  62. package/dist/apis/iban.js +1 -1
  63. package/dist/apis/integration-toolkit.cjs +6 -6
  64. package/dist/apis/integration-toolkit.js +1 -1
  65. package/dist/apis/journey.cjs +6 -6
  66. package/dist/apis/journey.js +1 -1
  67. package/dist/apis/kanban.cjs +6 -6
  68. package/dist/apis/kanban.js +1 -1
  69. package/dist/apis/message.cjs +6 -6
  70. package/dist/apis/message.js +1 -1
  71. package/dist/apis/metering.cjs +6 -6
  72. package/dist/apis/metering.js +1 -1
  73. package/dist/apis/notes.cjs +6 -6
  74. package/dist/apis/notes.js +1 -1
  75. package/dist/apis/notification.cjs +6 -6
  76. package/dist/apis/notification.js +1 -1
  77. package/dist/apis/organization.cjs +6 -6
  78. package/dist/apis/organization.js +1 -1
  79. package/dist/apis/partner-directory.cjs +6 -6
  80. package/dist/apis/partner-directory.js +1 -1
  81. package/dist/apis/permissions.cjs +6 -6
  82. package/dist/apis/permissions.js +1 -1
  83. package/dist/apis/pricing-tier.cjs +6 -6
  84. package/dist/apis/pricing-tier.js +1 -1
  85. package/dist/apis/pricing.cjs +6 -6
  86. package/dist/apis/pricing.js +1 -1
  87. package/dist/apis/purpose.cjs +6 -6
  88. package/dist/apis/purpose.js +1 -1
  89. package/dist/apis/query.cjs +6 -6
  90. package/dist/apis/query.js +1 -1
  91. package/dist/apis/sandbox.cjs +6 -6
  92. package/dist/apis/sandbox.js +1 -1
  93. package/dist/apis/sharing.cjs +6 -6
  94. package/dist/apis/sharing.js +1 -1
  95. package/dist/apis/snapshot.cjs +6 -6
  96. package/dist/apis/snapshot.js +1 -1
  97. package/dist/apis/submission.cjs +6 -6
  98. package/dist/apis/submission.js +1 -1
  99. package/dist/apis/target.cjs +6 -6
  100. package/dist/apis/target.js +1 -1
  101. package/dist/apis/targeting.cjs +6 -6
  102. package/dist/apis/targeting.js +1 -1
  103. package/dist/apis/template-variables.cjs +6 -6
  104. package/dist/apis/template-variables.js +1 -1
  105. package/dist/apis/user.cjs +6 -6
  106. package/dist/apis/user.js +1 -1
  107. package/dist/apis/validation-rules.cjs +6 -6
  108. package/dist/apis/validation-rules.js +1 -1
  109. package/dist/apis/webhooks.cjs +6 -6
  110. package/dist/apis/webhooks.js +1 -1
  111. package/dist/apis/workflow-definition.cjs +6 -6
  112. package/dist/apis/workflow-definition.js +1 -1
  113. package/dist/apis/workflow.cjs +6 -6
  114. package/dist/apis/workflow.js +1 -1
  115. package/dist/{chunk-ELW4V3ID.cjs → chunk-FXIH3QBV.cjs} +2 -2
  116. package/dist/{chunk-OHHHS4HH.js → chunk-TW4SUGOF.js} +1 -1
  117. package/dist/{chunk-FONJD6VA.js → chunk-YFFICVOA.js} +2 -2
  118. package/dist/{chunk-S5HBBTKM.cjs → chunk-ZMBA3WV4.cjs} +1 -1
  119. package/dist/index.cjs +10 -10
  120. package/dist/index.d.cts +1 -1
  121. package/dist/index.d.ts +1 -1
  122. package/dist/index.js +2 -2
  123. package/docs/access-token.md +135 -5
  124. package/package.json +1 -1
  125. package/dist/access-token-7Y2MDFZH.cjs +0 -7
  126. package/dist/access-token-NWN7UBUP.js +0 -7
@@ -38,6 +38,22 @@ declare namespace Components {
38
38
  journey_id?: /* Journey ID for access token type "journey" */ AccessTokenJourneyId;
39
39
  portal_id?: /* Portal ID for access token type "portal" */ PortalId;
40
40
  portal_user_id?: /* Portal User ID for access token type "portal_preview" */ PortalUserId;
41
+ contact_id?: /**
42
+ * Contact entity ID for access token type "contact_identification"
43
+ * example:
44
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
45
+ */
46
+ ContactId;
47
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ PortalOrigin;
48
+ allowed_operations?: /**
49
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
50
+ * example:
51
+ * [
52
+ * "getContact",
53
+ * "getContracts"
54
+ * ]
55
+ */
56
+ AllowedOperations;
41
57
  assignments?: /* List of role ids attached to an user */ Assignments;
42
58
  read_only?: /**
43
59
  * When true, the issued token may only perform read-only actions. Any action guarded by permissions that is not read-only (i.e. not a view/export/download action) is denied, regardless of the roles the token carries.
@@ -57,6 +73,12 @@ declare namespace Components {
57
73
  * 2026-02-24
58
74
  */
59
75
  last_used?: string; // date
76
+ /**
77
+ * Timestamp when the token expires and stops being accepted (only set for tokens created with expires_in)
78
+ * example:
79
+ * 2026-03-01T12:00:00.000Z
80
+ */
81
+ expires_at?: string; // date-time
60
82
  }
61
83
  /**
62
84
  * Journey ID for access token type "journey"
@@ -96,7 +118,16 @@ declare namespace Components {
96
118
  * example:
97
119
  * api
98
120
  */
99
- export type AccessTokenType = "api" | "journey" | "portal" | "assume" | "app" | "portal_preview";
121
+ export type AccessTokenType = "api" | "journey" | "portal" | "assume" | "app" | "portal_preview" | "contact_identification";
122
+ /**
123
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
124
+ * example:
125
+ * [
126
+ * "getContact",
127
+ * "getContracts"
128
+ * ]
129
+ */
130
+ export type AllowedOperations = string[];
100
131
  /**
101
132
  * Forces PII anonymization on all entity data returned to this token. Cannot be disabled by the token bearer. See entity-api anonymized responses.
102
133
  * example:
@@ -157,6 +188,57 @@ declare namespace Components {
157
188
  */
158
189
  Anonymize;
159
190
  }
191
+ /**
192
+ * Contact entity ID for access token type "contact_identification"
193
+ * example:
194
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
195
+ */
196
+ export type ContactId = string;
197
+ /**
198
+ * A token that acts as one contact, issued after that contact was identified by a portal's registration identifiers rather than by logging in. Distinct from portal_preview, which impersonates an existing portal user for a 360 operator: this kind belongs to no user, is minted for an unauthenticated caller, and is therefore always short-lived and restricted to an explicit operation allowlist. Never stored, so it cannot be listed or revoked - keep expires_in short.
199
+ */
200
+ export interface ContactIdentificationTokenParameters {
201
+ name: /**
202
+ * Human readable name for access token
203
+ * example:
204
+ * Postman Access Token
205
+ */
206
+ AccessTokenName;
207
+ token_type?: "contact_identification";
208
+ portal_id: /* Portal ID for access token type "portal" */ PortalId;
209
+ contact_id: /**
210
+ * Contact entity ID for access token type "contact_identification"
211
+ * example:
212
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
213
+ */
214
+ ContactId;
215
+ /**
216
+ * Portal surface the token is issued for (see `surfaces` on the portal config in customer-portal-api). Carried as the `custom:surface_id` claim; the consuming API resolves the surface's data access from the portal config on every request.
217
+ * example:
218
+ * website-journeys
219
+ */
220
+ surface_id: string;
221
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ PortalOrigin;
222
+ allowed_operations: /**
223
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
224
+ * example:
225
+ * [
226
+ * "getContact",
227
+ * "getContracts"
228
+ * ]
229
+ */
230
+ AllowedOperations;
231
+ /**
232
+ * Lifetime in seconds. Integer only for this token type (no "5m" strings), and capped server-side by CONTACT_IDENTIFICATION_TOKEN_MAX_EXPIRATION_SECONDS - the value originates from portal configuration, so it is not trusted as-is.
233
+ * example:
234
+ * 300
235
+ */
236
+ expires_in: number; // int32
237
+ /**
238
+ * Optional. Carried as the `email` claim when the consumer needs it (e.g. to attribute an activity). Omit to keep the contact's email out of the token.
239
+ */
240
+ email?: string;
241
+ }
160
242
  export type ExpiresIn = number /* int32 */ | string /* ^[0-9]+ ?(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?|w|weeks?|y|years?)?$ */;
161
243
  export interface JourneyTokenParameters {
162
244
  name: /**
@@ -173,6 +255,10 @@ declare namespace Components {
173
255
  * Portal ID for access token type "portal"
174
256
  */
175
257
  export type PortalId = string;
258
+ /**
259
+ * Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is.
260
+ */
261
+ export type PortalOrigin = "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL";
176
262
  export interface PortalPreviewTokenParameters {
177
263
  name: /**
178
264
  * Human readable name for access token
@@ -211,7 +297,7 @@ declare namespace Components {
211
297
  * 123:owner
212
298
  */
213
299
  export type RoleId = string;
214
- export type TokenParameters = AccessTokenParameters | JourneyTokenParameters | PortalTokenParameters | AssumeTokenParameters | AppTokenParameters | PortalPreviewTokenParameters;
300
+ export type TokenParameters = AccessTokenParameters | JourneyTokenParameters | PortalTokenParameters | AssumeTokenParameters | AppTokenParameters | PortalPreviewTokenParameters | /* A token that acts as one contact, issued after that contact was identified by a portal's registration identifiers rather than by logging in. Distinct from portal_preview, which impersonates an existing portal user for a 360 operator: this kind belongs to no user, is minted for an unauthenticated caller, and is therefore always short-lived and restricted to an explicit operation allowlist. Never stored, so it cannot be listed or revoked - keep expires_in short. */ ContactIdentificationTokenParameters;
215
301
  }
216
302
  }
217
303
  declare namespace Paths {
@@ -246,6 +332,22 @@ declare namespace Paths {
246
332
  journey_id?: /* Journey ID for access token type "journey" */ Components.Schemas.AccessTokenJourneyId;
247
333
  portal_id?: /* Portal ID for access token type "portal" */ Components.Schemas.PortalId;
248
334
  portal_user_id?: /* Portal User ID for access token type "portal_preview" */ Components.Schemas.PortalUserId;
335
+ contact_id?: /**
336
+ * Contact entity ID for access token type "contact_identification"
337
+ * example:
338
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
339
+ */
340
+ Components.Schemas.ContactId;
341
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ Components.Schemas.PortalOrigin;
342
+ allowed_operations?: /**
343
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
344
+ * example:
345
+ * [
346
+ * "getContact",
347
+ * "getContracts"
348
+ * ]
349
+ */
350
+ Components.Schemas.AllowedOperations;
249
351
  assignments?: /* List of role ids attached to an user */ Components.Schemas.Assignments;
250
352
  read_only?: /**
251
353
  * When true, the issued token may only perform read-only actions. Any action guarded by permissions that is not read-only (i.e. not a view/export/download action) is denied, regardless of the roles the token carries.
@@ -265,6 +367,12 @@ declare namespace Paths {
265
367
  * 2026-02-24
266
368
  */
267
369
  last_used?: string; // date
370
+ /**
371
+ * Timestamp when the token expires and stops being accepted (only set for tokens created with expires_in)
372
+ * example:
373
+ * 2026-03-01T12:00:00.000Z
374
+ */
375
+ expires_at?: string; // date-time
268
376
  }
269
377
  export interface $400 {
270
378
  status?: number;
@@ -330,6 +438,60 @@ declare namespace Paths {
330
438
  }
331
439
  }
332
440
  }
441
+ namespace GetContactIdentificationTokenJwks {
442
+ namespace Responses {
443
+ export interface $200 {
444
+ keys?: {
445
+ /**
446
+ * example:
447
+ * RS256
448
+ */
449
+ alg?: string;
450
+ /**
451
+ * example:
452
+ * AQAB
453
+ */
454
+ e?: string;
455
+ /**
456
+ * example:
457
+ * tXWU5mPMbRPczpbQwi6vbhLF4GgF3wlMDSyqo7pfeiw=
458
+ */
459
+ kid?: string;
460
+ /**
461
+ * example:
462
+ * RSA
463
+ */
464
+ kty?: string;
465
+ /**
466
+ * example:
467
+ * h_QDoCjZ8W_trtYXaP7_S22wf5r5Wd9XBLED78oT44bJjQXn8ddcFV8Hik65_4IYXVX_hTTU4zpxe3H8vx2j7-Zz3O59mYMp5S0MzODNEdf5Y_2o19eis0brmAJniixsNlQ9LlYkdrVamrgaxHu3ZpP_99zkfFybYeuYoQNzb3PyrT8xVnz_USs_nlFMHpGUxvvz7gfKPqxcLvgLJr4cwI9yzaSY9CD4qW181QVcnL_WzpQ8xx6AuhhHZQ1l_3GG4InTk8ahE7U2ZHVu8RrX6d01pMgc3piEcet9RgFLnhbTg3YIiKGoAbN42wJn_x3lgIAC42T9mbmTsHyUdS6nUQ
468
+ */
469
+ n?: string;
470
+ /**
471
+ * example:
472
+ * sig
473
+ */
474
+ use?: string;
475
+ }[];
476
+ }
477
+ }
478
+ }
479
+ namespace GetContactIdentificationTokenOIDC {
480
+ namespace Responses {
481
+ export interface $200 {
482
+ /**
483
+ * example:
484
+ * https://access-token.sls.epilot.io/v1/access-tokens/contact-identification
485
+ */
486
+ issuer?: string; // uri
487
+ /**
488
+ * example:
489
+ * https://access-token.sls.epilot.io/v1/access-tokens/contact-identification/.well-known/jwks.json
490
+ */
491
+ jwks_uri?: string; // uri
492
+ }
493
+ }
494
+ }
333
495
  namespace GetPortalPreviewTokenJwks {
334
496
  namespace Responses {
335
497
  export interface $200 {
@@ -587,6 +749,30 @@ interface OperationMethods {
587
749
  data?: any,
588
750
  config?: AxiosRequestConfig
589
751
  ): OperationResponse<Paths.GetPortalPreviewTokenOIDC.Responses.$200>
752
+ /**
753
+ * getContactIdentificationTokenJwks - getContactIdentificationTokenJwks
754
+ *
755
+ * Get jwks public key set to verify contact identification tokens generated by this API
756
+ */
757
+ 'getContactIdentificationTokenJwks'(
758
+ parameters?: Parameters<UnknownParamsObject> | null,
759
+ data?: any,
760
+ config?: AxiosRequestConfig
761
+ ): OperationResponse<Paths.GetContactIdentificationTokenJwks.Responses.$200>
762
+ /**
763
+ * getContactIdentificationTokenOIDC - getContactIdentificationTokenOIDC
764
+ *
765
+ * OpenID Connect configuration for Access Token API as a contact identification identity provider
766
+ *
767
+ * Note: This API is not a fully compliant OAuth2.0 / OIDC identity provider, but this endpoint is useful to
768
+ * automate the process of verifying JWT tokens.
769
+ *
770
+ */
771
+ 'getContactIdentificationTokenOIDC'(
772
+ parameters?: Parameters<UnknownParamsObject> | null,
773
+ data?: any,
774
+ config?: AxiosRequestConfig
775
+ ): OperationResponse<Paths.GetContactIdentificationTokenOIDC.Responses.$200>
590
776
  }
591
777
 
592
778
  interface PathsDictionary {
@@ -720,6 +906,34 @@ interface PathsDictionary {
720
906
  config?: AxiosRequestConfig
721
907
  ): OperationResponse<Paths.GetPortalPreviewTokenOIDC.Responses.$200>
722
908
  }
909
+ ['/v1/access-tokens/contact-identification/.well-known/jwks.json']: {
910
+ /**
911
+ * getContactIdentificationTokenJwks - getContactIdentificationTokenJwks
912
+ *
913
+ * Get jwks public key set to verify contact identification tokens generated by this API
914
+ */
915
+ 'get'(
916
+ parameters?: Parameters<UnknownParamsObject> | null,
917
+ data?: any,
918
+ config?: AxiosRequestConfig
919
+ ): OperationResponse<Paths.GetContactIdentificationTokenJwks.Responses.$200>
920
+ }
921
+ ['/v1/access-tokens/contact-identification/.well-known/openid-configuration']: {
922
+ /**
923
+ * getContactIdentificationTokenOIDC - getContactIdentificationTokenOIDC
924
+ *
925
+ * OpenID Connect configuration for Access Token API as a contact identification identity provider
926
+ *
927
+ * Note: This API is not a fully compliant OAuth2.0 / OIDC identity provider, but this endpoint is useful to
928
+ * automate the process of verifying JWT tokens.
929
+ *
930
+ */
931
+ 'get'(
932
+ parameters?: Parameters<UnknownParamsObject> | null,
933
+ data?: any,
934
+ config?: AxiosRequestConfig
935
+ ): OperationResponse<Paths.GetContactIdentificationTokenOIDC.Responses.$200>
936
+ }
723
937
  }
724
938
 
725
939
  type Client = OpenAPIClient<OperationMethods, PathsDictionary>
@@ -732,13 +946,17 @@ type AccessTokenJourneyId = Components.Schemas.AccessTokenJourneyId;
732
946
  type AccessTokenName = Components.Schemas.AccessTokenName;
733
947
  type AccessTokenParameters = Components.Schemas.AccessTokenParameters;
734
948
  type AccessTokenType = Components.Schemas.AccessTokenType;
949
+ type AllowedOperations = Components.Schemas.AllowedOperations;
735
950
  type Anonymize = Components.Schemas.Anonymize;
736
951
  type AppTokenParameters = Components.Schemas.AppTokenParameters;
737
952
  type Assignments = Components.Schemas.Assignments;
738
953
  type AssumeTokenParameters = Components.Schemas.AssumeTokenParameters;
954
+ type ContactId = Components.Schemas.ContactId;
955
+ type ContactIdentificationTokenParameters = Components.Schemas.ContactIdentificationTokenParameters;
739
956
  type ExpiresIn = Components.Schemas.ExpiresIn;
740
957
  type JourneyTokenParameters = Components.Schemas.JourneyTokenParameters;
741
958
  type PortalId = Components.Schemas.PortalId;
959
+ type PortalOrigin = Components.Schemas.PortalOrigin;
742
960
  type PortalPreviewTokenParameters = Components.Schemas.PortalPreviewTokenParameters;
743
961
  type PortalTokenParameters = Components.Schemas.PortalTokenParameters;
744
962
  type PortalUserId = Components.Schemas.PortalUserId;
@@ -746,4 +964,4 @@ type ReadOnly = Components.Schemas.ReadOnly;
746
964
  type RoleId = Components.Schemas.RoleId;
747
965
  type TokenParameters = Components.Schemas.TokenParameters;
748
966
 
749
- export { type AccessToken as A, type Client as C, type ExpiresIn as E, type JourneyTokenParameters as J, type OperationMethods as O, Paths as P, type ReadOnly as R, type TokenParameters as T, Components as a, type PathsDictionary as b, type AccessTokenId as c, type AccessTokenItem as d, type AccessTokenJourneyId as e, type AccessTokenName as f, type AccessTokenParameters as g, type AccessTokenType as h, type Anonymize as i, type AppTokenParameters as j, type Assignments as k, type AssumeTokenParameters as l, type PortalId as m, type PortalPreviewTokenParameters as n, type PortalTokenParameters as o, type PortalUserId as p, type RoleId as q };
967
+ export { type AccessToken as A, type Client as C, type ExpiresIn as E, type JourneyTokenParameters as J, type OperationMethods as O, Paths as P, type ReadOnly as R, type TokenParameters as T, Components as a, type PathsDictionary as b, type AccessTokenId as c, type AccessTokenItem as d, type AccessTokenJourneyId as e, type AccessTokenName as f, type AccessTokenParameters as g, type AccessTokenType as h, type AllowedOperations as i, type Anonymize as j, type AppTokenParameters as k, type Assignments as l, type AssumeTokenParameters as m, type ContactId as n, type ContactIdentificationTokenParameters as o, type PortalId as p, type PortalOrigin as q, type PortalPreviewTokenParameters as r, type PortalTokenParameters as s, type PortalUserId as t, type RoleId as u };
@@ -38,6 +38,22 @@ declare namespace Components {
38
38
  journey_id?: /* Journey ID for access token type "journey" */ AccessTokenJourneyId;
39
39
  portal_id?: /* Portal ID for access token type "portal" */ PortalId;
40
40
  portal_user_id?: /* Portal User ID for access token type "portal_preview" */ PortalUserId;
41
+ contact_id?: /**
42
+ * Contact entity ID for access token type "contact_identification"
43
+ * example:
44
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
45
+ */
46
+ ContactId;
47
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ PortalOrigin;
48
+ allowed_operations?: /**
49
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
50
+ * example:
51
+ * [
52
+ * "getContact",
53
+ * "getContracts"
54
+ * ]
55
+ */
56
+ AllowedOperations;
41
57
  assignments?: /* List of role ids attached to an user */ Assignments;
42
58
  read_only?: /**
43
59
  * When true, the issued token may only perform read-only actions. Any action guarded by permissions that is not read-only (i.e. not a view/export/download action) is denied, regardless of the roles the token carries.
@@ -57,6 +73,12 @@ declare namespace Components {
57
73
  * 2026-02-24
58
74
  */
59
75
  last_used?: string; // date
76
+ /**
77
+ * Timestamp when the token expires and stops being accepted (only set for tokens created with expires_in)
78
+ * example:
79
+ * 2026-03-01T12:00:00.000Z
80
+ */
81
+ expires_at?: string; // date-time
60
82
  }
61
83
  /**
62
84
  * Journey ID for access token type "journey"
@@ -96,7 +118,16 @@ declare namespace Components {
96
118
  * example:
97
119
  * api
98
120
  */
99
- export type AccessTokenType = "api" | "journey" | "portal" | "assume" | "app" | "portal_preview";
121
+ export type AccessTokenType = "api" | "journey" | "portal" | "assume" | "app" | "portal_preview" | "contact_identification";
122
+ /**
123
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
124
+ * example:
125
+ * [
126
+ * "getContact",
127
+ * "getContracts"
128
+ * ]
129
+ */
130
+ export type AllowedOperations = string[];
100
131
  /**
101
132
  * Forces PII anonymization on all entity data returned to this token. Cannot be disabled by the token bearer. See entity-api anonymized responses.
102
133
  * example:
@@ -157,6 +188,57 @@ declare namespace Components {
157
188
  */
158
189
  Anonymize;
159
190
  }
191
+ /**
192
+ * Contact entity ID for access token type "contact_identification"
193
+ * example:
194
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
195
+ */
196
+ export type ContactId = string;
197
+ /**
198
+ * A token that acts as one contact, issued after that contact was identified by a portal's registration identifiers rather than by logging in. Distinct from portal_preview, which impersonates an existing portal user for a 360 operator: this kind belongs to no user, is minted for an unauthenticated caller, and is therefore always short-lived and restricted to an explicit operation allowlist. Never stored, so it cannot be listed or revoked - keep expires_in short.
199
+ */
200
+ export interface ContactIdentificationTokenParameters {
201
+ name: /**
202
+ * Human readable name for access token
203
+ * example:
204
+ * Postman Access Token
205
+ */
206
+ AccessTokenName;
207
+ token_type?: "contact_identification";
208
+ portal_id: /* Portal ID for access token type "portal" */ PortalId;
209
+ contact_id: /**
210
+ * Contact entity ID for access token type "contact_identification"
211
+ * example:
212
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
213
+ */
214
+ ContactId;
215
+ /**
216
+ * Portal surface the token is issued for (see `surfaces` on the portal config in customer-portal-api). Carried as the `custom:surface_id` claim; the consuming API resolves the surface's data access from the portal config on every request.
217
+ * example:
218
+ * website-journeys
219
+ */
220
+ surface_id: string;
221
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ PortalOrigin;
222
+ allowed_operations: /**
223
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
224
+ * example:
225
+ * [
226
+ * "getContact",
227
+ * "getContracts"
228
+ * ]
229
+ */
230
+ AllowedOperations;
231
+ /**
232
+ * Lifetime in seconds. Integer only for this token type (no "5m" strings), and capped server-side by CONTACT_IDENTIFICATION_TOKEN_MAX_EXPIRATION_SECONDS - the value originates from portal configuration, so it is not trusted as-is.
233
+ * example:
234
+ * 300
235
+ */
236
+ expires_in: number; // int32
237
+ /**
238
+ * Optional. Carried as the `email` claim when the consumer needs it (e.g. to attribute an activity). Omit to keep the contact's email out of the token.
239
+ */
240
+ email?: string;
241
+ }
160
242
  export type ExpiresIn = number /* int32 */ | string /* ^[0-9]+ ?(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?|w|weeks?|y|years?)?$ */;
161
243
  export interface JourneyTokenParameters {
162
244
  name: /**
@@ -173,6 +255,10 @@ declare namespace Components {
173
255
  * Portal ID for access token type "portal"
174
256
  */
175
257
  export type PortalId = string;
258
+ /**
259
+ * Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is.
260
+ */
261
+ export type PortalOrigin = "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL";
176
262
  export interface PortalPreviewTokenParameters {
177
263
  name: /**
178
264
  * Human readable name for access token
@@ -211,7 +297,7 @@ declare namespace Components {
211
297
  * 123:owner
212
298
  */
213
299
  export type RoleId = string;
214
- export type TokenParameters = AccessTokenParameters | JourneyTokenParameters | PortalTokenParameters | AssumeTokenParameters | AppTokenParameters | PortalPreviewTokenParameters;
300
+ export type TokenParameters = AccessTokenParameters | JourneyTokenParameters | PortalTokenParameters | AssumeTokenParameters | AppTokenParameters | PortalPreviewTokenParameters | /* A token that acts as one contact, issued after that contact was identified by a portal's registration identifiers rather than by logging in. Distinct from portal_preview, which impersonates an existing portal user for a 360 operator: this kind belongs to no user, is minted for an unauthenticated caller, and is therefore always short-lived and restricted to an explicit operation allowlist. Never stored, so it cannot be listed or revoked - keep expires_in short. */ ContactIdentificationTokenParameters;
215
301
  }
216
302
  }
217
303
  declare namespace Paths {
@@ -246,6 +332,22 @@ declare namespace Paths {
246
332
  journey_id?: /* Journey ID for access token type "journey" */ Components.Schemas.AccessTokenJourneyId;
247
333
  portal_id?: /* Portal ID for access token type "portal" */ Components.Schemas.PortalId;
248
334
  portal_user_id?: /* Portal User ID for access token type "portal_preview" */ Components.Schemas.PortalUserId;
335
+ contact_id?: /**
336
+ * Contact entity ID for access token type "contact_identification"
337
+ * example:
338
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
339
+ */
340
+ Components.Schemas.ContactId;
341
+ origin?: /* Portal origin the token assumes, so the bearer is permission-masked the same way the corresponding portal role is. */ Components.Schemas.PortalOrigin;
342
+ allowed_operations?: /**
343
+ * openapi operationIds the token may call. Enforced by the API that consumes the token, which must additionally deny any operation not on this list. Baked into the token at issue time so widening the consumer's own allowlist later cannot retroactively widen a token that is already in circulation.
344
+ * example:
345
+ * [
346
+ * "getContact",
347
+ * "getContracts"
348
+ * ]
349
+ */
350
+ Components.Schemas.AllowedOperations;
249
351
  assignments?: /* List of role ids attached to an user */ Components.Schemas.Assignments;
250
352
  read_only?: /**
251
353
  * When true, the issued token may only perform read-only actions. Any action guarded by permissions that is not read-only (i.e. not a view/export/download action) is denied, regardless of the roles the token carries.
@@ -265,6 +367,12 @@ declare namespace Paths {
265
367
  * 2026-02-24
266
368
  */
267
369
  last_used?: string; // date
370
+ /**
371
+ * Timestamp when the token expires and stops being accepted (only set for tokens created with expires_in)
372
+ * example:
373
+ * 2026-03-01T12:00:00.000Z
374
+ */
375
+ expires_at?: string; // date-time
268
376
  }
269
377
  export interface $400 {
270
378
  status?: number;
@@ -330,6 +438,60 @@ declare namespace Paths {
330
438
  }
331
439
  }
332
440
  }
441
+ namespace GetContactIdentificationTokenJwks {
442
+ namespace Responses {
443
+ export interface $200 {
444
+ keys?: {
445
+ /**
446
+ * example:
447
+ * RS256
448
+ */
449
+ alg?: string;
450
+ /**
451
+ * example:
452
+ * AQAB
453
+ */
454
+ e?: string;
455
+ /**
456
+ * example:
457
+ * tXWU5mPMbRPczpbQwi6vbhLF4GgF3wlMDSyqo7pfeiw=
458
+ */
459
+ kid?: string;
460
+ /**
461
+ * example:
462
+ * RSA
463
+ */
464
+ kty?: string;
465
+ /**
466
+ * example:
467
+ * h_QDoCjZ8W_trtYXaP7_S22wf5r5Wd9XBLED78oT44bJjQXn8ddcFV8Hik65_4IYXVX_hTTU4zpxe3H8vx2j7-Zz3O59mYMp5S0MzODNEdf5Y_2o19eis0brmAJniixsNlQ9LlYkdrVamrgaxHu3ZpP_99zkfFybYeuYoQNzb3PyrT8xVnz_USs_nlFMHpGUxvvz7gfKPqxcLvgLJr4cwI9yzaSY9CD4qW181QVcnL_WzpQ8xx6AuhhHZQ1l_3GG4InTk8ahE7U2ZHVu8RrX6d01pMgc3piEcet9RgFLnhbTg3YIiKGoAbN42wJn_x3lgIAC42T9mbmTsHyUdS6nUQ
468
+ */
469
+ n?: string;
470
+ /**
471
+ * example:
472
+ * sig
473
+ */
474
+ use?: string;
475
+ }[];
476
+ }
477
+ }
478
+ }
479
+ namespace GetContactIdentificationTokenOIDC {
480
+ namespace Responses {
481
+ export interface $200 {
482
+ /**
483
+ * example:
484
+ * https://access-token.sls.epilot.io/v1/access-tokens/contact-identification
485
+ */
486
+ issuer?: string; // uri
487
+ /**
488
+ * example:
489
+ * https://access-token.sls.epilot.io/v1/access-tokens/contact-identification/.well-known/jwks.json
490
+ */
491
+ jwks_uri?: string; // uri
492
+ }
493
+ }
494
+ }
333
495
  namespace GetPortalPreviewTokenJwks {
334
496
  namespace Responses {
335
497
  export interface $200 {
@@ -587,6 +749,30 @@ interface OperationMethods {
587
749
  data?: any,
588
750
  config?: AxiosRequestConfig
589
751
  ): OperationResponse<Paths.GetPortalPreviewTokenOIDC.Responses.$200>
752
+ /**
753
+ * getContactIdentificationTokenJwks - getContactIdentificationTokenJwks
754
+ *
755
+ * Get jwks public key set to verify contact identification tokens generated by this API
756
+ */
757
+ 'getContactIdentificationTokenJwks'(
758
+ parameters?: Parameters<UnknownParamsObject> | null,
759
+ data?: any,
760
+ config?: AxiosRequestConfig
761
+ ): OperationResponse<Paths.GetContactIdentificationTokenJwks.Responses.$200>
762
+ /**
763
+ * getContactIdentificationTokenOIDC - getContactIdentificationTokenOIDC
764
+ *
765
+ * OpenID Connect configuration for Access Token API as a contact identification identity provider
766
+ *
767
+ * Note: This API is not a fully compliant OAuth2.0 / OIDC identity provider, but this endpoint is useful to
768
+ * automate the process of verifying JWT tokens.
769
+ *
770
+ */
771
+ 'getContactIdentificationTokenOIDC'(
772
+ parameters?: Parameters<UnknownParamsObject> | null,
773
+ data?: any,
774
+ config?: AxiosRequestConfig
775
+ ): OperationResponse<Paths.GetContactIdentificationTokenOIDC.Responses.$200>
590
776
  }
591
777
 
592
778
  interface PathsDictionary {
@@ -720,6 +906,34 @@ interface PathsDictionary {
720
906
  config?: AxiosRequestConfig
721
907
  ): OperationResponse<Paths.GetPortalPreviewTokenOIDC.Responses.$200>
722
908
  }
909
+ ['/v1/access-tokens/contact-identification/.well-known/jwks.json']: {
910
+ /**
911
+ * getContactIdentificationTokenJwks - getContactIdentificationTokenJwks
912
+ *
913
+ * Get jwks public key set to verify contact identification tokens generated by this API
914
+ */
915
+ 'get'(
916
+ parameters?: Parameters<UnknownParamsObject> | null,
917
+ data?: any,
918
+ config?: AxiosRequestConfig
919
+ ): OperationResponse<Paths.GetContactIdentificationTokenJwks.Responses.$200>
920
+ }
921
+ ['/v1/access-tokens/contact-identification/.well-known/openid-configuration']: {
922
+ /**
923
+ * getContactIdentificationTokenOIDC - getContactIdentificationTokenOIDC
924
+ *
925
+ * OpenID Connect configuration for Access Token API as a contact identification identity provider
926
+ *
927
+ * Note: This API is not a fully compliant OAuth2.0 / OIDC identity provider, but this endpoint is useful to
928
+ * automate the process of verifying JWT tokens.
929
+ *
930
+ */
931
+ 'get'(
932
+ parameters?: Parameters<UnknownParamsObject> | null,
933
+ data?: any,
934
+ config?: AxiosRequestConfig
935
+ ): OperationResponse<Paths.GetContactIdentificationTokenOIDC.Responses.$200>
936
+ }
723
937
  }
724
938
 
725
939
  type Client = OpenAPIClient<OperationMethods, PathsDictionary>
@@ -732,13 +946,17 @@ type AccessTokenJourneyId = Components.Schemas.AccessTokenJourneyId;
732
946
  type AccessTokenName = Components.Schemas.AccessTokenName;
733
947
  type AccessTokenParameters = Components.Schemas.AccessTokenParameters;
734
948
  type AccessTokenType = Components.Schemas.AccessTokenType;
949
+ type AllowedOperations = Components.Schemas.AllowedOperations;
735
950
  type Anonymize = Components.Schemas.Anonymize;
736
951
  type AppTokenParameters = Components.Schemas.AppTokenParameters;
737
952
  type Assignments = Components.Schemas.Assignments;
738
953
  type AssumeTokenParameters = Components.Schemas.AssumeTokenParameters;
954
+ type ContactId = Components.Schemas.ContactId;
955
+ type ContactIdentificationTokenParameters = Components.Schemas.ContactIdentificationTokenParameters;
739
956
  type ExpiresIn = Components.Schemas.ExpiresIn;
740
957
  type JourneyTokenParameters = Components.Schemas.JourneyTokenParameters;
741
958
  type PortalId = Components.Schemas.PortalId;
959
+ type PortalOrigin = Components.Schemas.PortalOrigin;
742
960
  type PortalPreviewTokenParameters = Components.Schemas.PortalPreviewTokenParameters;
743
961
  type PortalTokenParameters = Components.Schemas.PortalTokenParameters;
744
962
  type PortalUserId = Components.Schemas.PortalUserId;
@@ -746,4 +964,4 @@ type ReadOnly = Components.Schemas.ReadOnly;
746
964
  type RoleId = Components.Schemas.RoleId;
747
965
  type TokenParameters = Components.Schemas.TokenParameters;
748
966
 
749
- export { type AccessToken as A, type Client as C, type ExpiresIn as E, type JourneyTokenParameters as J, type OperationMethods as O, Paths as P, type ReadOnly as R, type TokenParameters as T, Components as a, type PathsDictionary as b, type AccessTokenId as c, type AccessTokenItem as d, type AccessTokenJourneyId as e, type AccessTokenName as f, type AccessTokenParameters as g, type AccessTokenType as h, type Anonymize as i, type AppTokenParameters as j, type Assignments as k, type AssumeTokenParameters as l, type PortalId as m, type PortalPreviewTokenParameters as n, type PortalTokenParameters as o, type PortalUserId as p, type RoleId as q };
967
+ export { type AccessToken as A, type Client as C, type ExpiresIn as E, type JourneyTokenParameters as J, type OperationMethods as O, Paths as P, type ReadOnly as R, type TokenParameters as T, Components as a, type PathsDictionary as b, type AccessTokenId as c, type AccessTokenItem as d, type AccessTokenJourneyId as e, type AccessTokenName as f, type AccessTokenParameters as g, type AccessTokenType as h, type AllowedOperations as i, type Anonymize as j, type AppTokenParameters as k, type Assignments as l, type AssumeTokenParameters as m, type ContactId as n, type ContactIdentificationTokenParameters as o, type PortalId as p, type PortalOrigin as q, type PortalPreviewTokenParameters as r, type PortalTokenParameters as s, type PortalUserId as t, type RoleId as u };