@seamapi/http 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/connect.cjs +6 -681
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +13 -174
  4. package/lib/seam/connect/resolve-action-attempt.d.ts +16 -16
  5. package/lib/seam/connect/routes/acs-access-groups.d.ts +0 -2
  6. package/lib/seam/connect/routes/acs-access-groups.js +0 -4
  7. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  8. package/lib/seam/connect/routes/acs-credentials.d.ts +0 -6
  9. package/lib/seam/connect/routes/acs-credentials.js +0 -12
  10. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  11. package/lib/seam/connect/routes/acs-users.d.ts +0 -2
  12. package/lib/seam/connect/routes/acs-users.js +0 -4
  13. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  14. package/lib/seam/connect/routes/acs.d.ts +0 -4
  15. package/lib/seam/connect/routes/acs.js +0 -8
  16. package/lib/seam/connect/routes/acs.js.map +1 -1
  17. package/lib/seam/connect/routes/devices.d.ts +0 -4
  18. package/lib/seam/connect/routes/devices.js +0 -8
  19. package/lib/seam/connect/routes/devices.js.map +1 -1
  20. package/lib/seam/connect/routes/index.d.ts +0 -6
  21. package/lib/seam/connect/routes/index.js +0 -6
  22. package/lib/seam/connect/routes/index.js.map +1 -1
  23. package/lib/seam/connect/routes/thermostats.d.ts +0 -4
  24. package/lib/seam/connect/routes/thermostats.js +0 -8
  25. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  26. package/lib/version.d.ts +1 -1
  27. package/lib/version.js +1 -1
  28. package/package.json +3 -3
  29. package/src/lib/seam/connect/routes/acs-access-groups.ts +0 -8
  30. package/src/lib/seam/connect/routes/acs-credentials.ts +0 -31
  31. package/src/lib/seam/connect/routes/acs-users.ts +0 -5
  32. package/src/lib/seam/connect/routes/acs.ts +0 -13
  33. package/src/lib/seam/connect/routes/devices.ts +0 -17
  34. package/src/lib/seam/connect/routes/index.ts +0 -6
  35. package/src/lib/seam/connect/routes/thermostats.ts +0 -19
  36. package/src/lib/version.ts +1 -1
  37. package/lib/seam/connect/routes/acs-access-groups-unmanaged.d.ts +0 -27
  38. package/lib/seam/connect/routes/acs-access-groups-unmanaged.js +0 -100
  39. package/lib/seam/connect/routes/acs-access-groups-unmanaged.js.map +0 -1
  40. package/lib/seam/connect/routes/acs-credential-pools.d.ts +0 -23
  41. package/lib/seam/connect/routes/acs-credential-pools.js +0 -92
  42. package/lib/seam/connect/routes/acs-credential-pools.js.map +0 -1
  43. package/lib/seam/connect/routes/acs-credential-provisioning-automations.d.ts +0 -23
  44. package/lib/seam/connect/routes/acs-credential-provisioning-automations.js +0 -92
  45. package/lib/seam/connect/routes/acs-credential-provisioning-automations.js.map +0 -1
  46. package/lib/seam/connect/routes/acs-credentials-unmanaged.d.ts +0 -27
  47. package/lib/seam/connect/routes/acs-credentials-unmanaged.js +0 -100
  48. package/lib/seam/connect/routes/acs-credentials-unmanaged.js.map +0 -1
  49. package/lib/seam/connect/routes/acs-users-unmanaged.d.ts +0 -27
  50. package/lib/seam/connect/routes/acs-users-unmanaged.js +0 -100
  51. package/lib/seam/connect/routes/acs-users-unmanaged.js.map +0 -1
  52. package/lib/seam/connect/routes/unstable-locations.d.ts +0 -47
  53. package/lib/seam/connect/routes/unstable-locations.js +0 -140
  54. package/lib/seam/connect/routes/unstable-locations.js.map +0 -1
  55. package/src/lib/seam/connect/routes/acs-access-groups-unmanaged.ts +0 -209
  56. package/src/lib/seam/connect/routes/acs-credential-pools.ts +0 -183
  57. package/src/lib/seam/connect/routes/acs-credential-provisioning-automations.ts +0 -189
  58. package/src/lib/seam/connect/routes/acs-credentials-unmanaged.ts +0 -206
  59. package/src/lib/seam/connect/routes/acs-users-unmanaged.ts +0 -203
  60. package/src/lib/seam/connect/routes/unstable-locations.ts +0 -303
@@ -1,209 +0,0 @@
1
- /*
2
- * Automatically generated by generate-routes.ts.
3
- * Do not edit this file or add other files to this directory.
4
- */
5
-
6
- import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'
7
-
8
- import {
9
- getAuthHeadersForClientSessionToken,
10
- warnOnInsecureuserIdentifierKey,
11
- } from 'lib/seam/connect/auth.js'
12
- import { type Client, createClient } from 'lib/seam/connect/client.js'
13
- import {
14
- isSeamHttpOptionsWithApiKey,
15
- isSeamHttpOptionsWithClient,
16
- isSeamHttpOptionsWithClientSessionToken,
17
- isSeamHttpOptionsWithConsoleSessionToken,
18
- isSeamHttpOptionsWithPersonalAccessToken,
19
- type SeamHttpFromPublishableKeyOptions,
20
- SeamHttpInvalidOptionsError,
21
- type SeamHttpOptions,
22
- type SeamHttpOptionsWithApiKey,
23
- type SeamHttpOptionsWithClient,
24
- type SeamHttpOptionsWithClientSessionToken,
25
- type SeamHttpOptionsWithConsoleSessionToken,
26
- type SeamHttpOptionsWithPersonalAccessToken,
27
- type SeamHttpRequestOptions,
28
- } from 'lib/seam/connect/options.js'
29
- import {
30
- limitToSeamHttpRequestOptions,
31
- parseOptions,
32
- } from 'lib/seam/connect/parse-options.js'
33
- import { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'
34
- import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'
35
- import type { SetNonNullable } from 'lib/types.js'
36
-
37
- import { SeamHttpClientSessions } from './client-sessions.js'
38
-
39
- export class SeamHttpAcsAccessGroupsUnmanaged {
40
- client: Client
41
- readonly defaults: Required<SeamHttpRequestOptions>
42
-
43
- constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {
44
- const options = parseOptions(apiKeyOrOptions)
45
- this.client = 'client' in options ? options.client : createClient(options)
46
- this.defaults = limitToSeamHttpRequestOptions(options)
47
- }
48
-
49
- static fromClient(
50
- client: SeamHttpOptionsWithClient['client'],
51
- options: Omit<SeamHttpOptionsWithClient, 'client'> = {},
52
- ): SeamHttpAcsAccessGroupsUnmanaged {
53
- const constructorOptions = { ...options, client }
54
- if (!isSeamHttpOptionsWithClient(constructorOptions)) {
55
- throw new SeamHttpInvalidOptionsError('Missing client')
56
- }
57
- return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)
58
- }
59
-
60
- static fromApiKey(
61
- apiKey: SeamHttpOptionsWithApiKey['apiKey'],
62
- options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},
63
- ): SeamHttpAcsAccessGroupsUnmanaged {
64
- const constructorOptions = { ...options, apiKey }
65
- if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
66
- throw new SeamHttpInvalidOptionsError('Missing apiKey')
67
- }
68
- return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)
69
- }
70
-
71
- static fromClientSessionToken(
72
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
73
- options: Omit<
74
- SeamHttpOptionsWithClientSessionToken,
75
- 'clientSessionToken'
76
- > = {},
77
- ): SeamHttpAcsAccessGroupsUnmanaged {
78
- const constructorOptions = { ...options, clientSessionToken }
79
- if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
80
- throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')
81
- }
82
- return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)
83
- }
84
-
85
- static async fromPublishableKey(
86
- publishableKey: string,
87
- userIdentifierKey: string,
88
- options: SeamHttpFromPublishableKeyOptions = {},
89
- ): Promise<SeamHttpAcsAccessGroupsUnmanaged> {
90
- warnOnInsecureuserIdentifierKey(userIdentifierKey)
91
- const clientOptions = parseOptions({ ...options, publishableKey })
92
- if (isSeamHttpOptionsWithClient(clientOptions)) {
93
- throw new SeamHttpInvalidOptionsError(
94
- 'The client option cannot be used with SeamHttp.fromPublishableKey',
95
- )
96
- }
97
- const client = createClient(clientOptions)
98
- const clientSessions = SeamHttpClientSessions.fromClient(client)
99
- const { token } = await clientSessions.getOrCreate({
100
- user_identifier_key: userIdentifierKey,
101
- })
102
- return SeamHttpAcsAccessGroupsUnmanaged.fromClientSessionToken(
103
- token,
104
- options,
105
- )
106
- }
107
-
108
- static fromConsoleSessionToken(
109
- consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],
110
- workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],
111
- options: Omit<
112
- SeamHttpOptionsWithConsoleSessionToken,
113
- 'consoleSessionToken' | 'workspaceId'
114
- > = {},
115
- ): SeamHttpAcsAccessGroupsUnmanaged {
116
- const constructorOptions = { ...options, consoleSessionToken, workspaceId }
117
- if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
118
- throw new SeamHttpInvalidOptionsError(
119
- 'Missing consoleSessionToken or workspaceId',
120
- )
121
- }
122
- return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)
123
- }
124
-
125
- static fromPersonalAccessToken(
126
- personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],
127
- workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],
128
- options: Omit<
129
- SeamHttpOptionsWithPersonalAccessToken,
130
- 'personalAccessToken' | 'workspaceId'
131
- > = {},
132
- ): SeamHttpAcsAccessGroupsUnmanaged {
133
- const constructorOptions = { ...options, personalAccessToken, workspaceId }
134
- if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
135
- throw new SeamHttpInvalidOptionsError(
136
- 'Missing personalAccessToken or workspaceId',
137
- )
138
- }
139
- return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)
140
- }
141
-
142
- createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(
143
- request: SeamHttpRequest<TResponse, TResponseKey>,
144
- ): SeamPaginator<TResponse, TResponseKey> {
145
- return new SeamPaginator<TResponse, TResponseKey>(this, request)
146
- }
147
-
148
- async updateClientSessionToken(
149
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
150
- ): Promise<void> {
151
- const { headers } = this.client.defaults
152
- const authHeaders = getAuthHeadersForClientSessionToken({
153
- clientSessionToken,
154
- })
155
- for (const key of Object.keys(authHeaders)) {
156
- if (headers[key] == null) {
157
- throw new Error(
158
- 'Cannot update a clientSessionToken on a client created without a clientSessionToken',
159
- )
160
- }
161
- }
162
- this.client.defaults.headers = { ...headers, ...authHeaders }
163
- const clientSessions = SeamHttpClientSessions.fromClient(this.client)
164
- await clientSessions.get()
165
- }
166
-
167
- get(
168
- body?: AcsAccessGroupsUnmanagedGetParams,
169
- ): SeamHttpRequest<AcsAccessGroupsUnmanagedGetResponse, 'acs_access_group'> {
170
- return new SeamHttpRequest(this, {
171
- pathname: '/acs/access_groups/unmanaged/get',
172
- method: 'post',
173
- body,
174
- responseKey: 'acs_access_group',
175
- })
176
- }
177
-
178
- list(
179
- body?: AcsAccessGroupsUnmanagedListParams,
180
- ): SeamHttpRequest<
181
- AcsAccessGroupsUnmanagedListResponse,
182
- 'acs_access_groups'
183
- > {
184
- return new SeamHttpRequest(this, {
185
- pathname: '/acs/access_groups/unmanaged/list',
186
- method: 'post',
187
- body,
188
- responseKey: 'acs_access_groups',
189
- })
190
- }
191
- }
192
-
193
- export type AcsAccessGroupsUnmanagedGetParams =
194
- RouteRequestBody<'/acs/access_groups/unmanaged/get'>
195
-
196
- export type AcsAccessGroupsUnmanagedGetResponse = SetNonNullable<
197
- Required<RouteResponse<'/acs/access_groups/unmanaged/get'>>
198
- >
199
-
200
- export type AcsAccessGroupsUnmanagedGetOptions = never
201
-
202
- export type AcsAccessGroupsUnmanagedListParams =
203
- RouteRequestBody<'/acs/access_groups/unmanaged/list'>
204
-
205
- export type AcsAccessGroupsUnmanagedListResponse = SetNonNullable<
206
- Required<RouteResponse<'/acs/access_groups/unmanaged/list'>>
207
- >
208
-
209
- export type AcsAccessGroupsUnmanagedListOptions = never
@@ -1,183 +0,0 @@
1
- /*
2
- * Automatically generated by generate-routes.ts.
3
- * Do not edit this file or add other files to this directory.
4
- */
5
-
6
- import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'
7
-
8
- import {
9
- getAuthHeadersForClientSessionToken,
10
- warnOnInsecureuserIdentifierKey,
11
- } from 'lib/seam/connect/auth.js'
12
- import { type Client, createClient } from 'lib/seam/connect/client.js'
13
- import {
14
- isSeamHttpOptionsWithApiKey,
15
- isSeamHttpOptionsWithClient,
16
- isSeamHttpOptionsWithClientSessionToken,
17
- isSeamHttpOptionsWithConsoleSessionToken,
18
- isSeamHttpOptionsWithPersonalAccessToken,
19
- type SeamHttpFromPublishableKeyOptions,
20
- SeamHttpInvalidOptionsError,
21
- type SeamHttpOptions,
22
- type SeamHttpOptionsWithApiKey,
23
- type SeamHttpOptionsWithClient,
24
- type SeamHttpOptionsWithClientSessionToken,
25
- type SeamHttpOptionsWithConsoleSessionToken,
26
- type SeamHttpOptionsWithPersonalAccessToken,
27
- type SeamHttpRequestOptions,
28
- } from 'lib/seam/connect/options.js'
29
- import {
30
- limitToSeamHttpRequestOptions,
31
- parseOptions,
32
- } from 'lib/seam/connect/parse-options.js'
33
- import { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'
34
- import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'
35
- import type { SetNonNullable } from 'lib/types.js'
36
-
37
- import { SeamHttpClientSessions } from './client-sessions.js'
38
-
39
- export class SeamHttpAcsCredentialPools {
40
- client: Client
41
- readonly defaults: Required<SeamHttpRequestOptions>
42
-
43
- constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {
44
- const options = parseOptions(apiKeyOrOptions)
45
- this.client = 'client' in options ? options.client : createClient(options)
46
- this.defaults = limitToSeamHttpRequestOptions(options)
47
- }
48
-
49
- static fromClient(
50
- client: SeamHttpOptionsWithClient['client'],
51
- options: Omit<SeamHttpOptionsWithClient, 'client'> = {},
52
- ): SeamHttpAcsCredentialPools {
53
- const constructorOptions = { ...options, client }
54
- if (!isSeamHttpOptionsWithClient(constructorOptions)) {
55
- throw new SeamHttpInvalidOptionsError('Missing client')
56
- }
57
- return new SeamHttpAcsCredentialPools(constructorOptions)
58
- }
59
-
60
- static fromApiKey(
61
- apiKey: SeamHttpOptionsWithApiKey['apiKey'],
62
- options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},
63
- ): SeamHttpAcsCredentialPools {
64
- const constructorOptions = { ...options, apiKey }
65
- if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
66
- throw new SeamHttpInvalidOptionsError('Missing apiKey')
67
- }
68
- return new SeamHttpAcsCredentialPools(constructorOptions)
69
- }
70
-
71
- static fromClientSessionToken(
72
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
73
- options: Omit<
74
- SeamHttpOptionsWithClientSessionToken,
75
- 'clientSessionToken'
76
- > = {},
77
- ): SeamHttpAcsCredentialPools {
78
- const constructorOptions = { ...options, clientSessionToken }
79
- if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
80
- throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')
81
- }
82
- return new SeamHttpAcsCredentialPools(constructorOptions)
83
- }
84
-
85
- static async fromPublishableKey(
86
- publishableKey: string,
87
- userIdentifierKey: string,
88
- options: SeamHttpFromPublishableKeyOptions = {},
89
- ): Promise<SeamHttpAcsCredentialPools> {
90
- warnOnInsecureuserIdentifierKey(userIdentifierKey)
91
- const clientOptions = parseOptions({ ...options, publishableKey })
92
- if (isSeamHttpOptionsWithClient(clientOptions)) {
93
- throw new SeamHttpInvalidOptionsError(
94
- 'The client option cannot be used with SeamHttp.fromPublishableKey',
95
- )
96
- }
97
- const client = createClient(clientOptions)
98
- const clientSessions = SeamHttpClientSessions.fromClient(client)
99
- const { token } = await clientSessions.getOrCreate({
100
- user_identifier_key: userIdentifierKey,
101
- })
102
- return SeamHttpAcsCredentialPools.fromClientSessionToken(token, options)
103
- }
104
-
105
- static fromConsoleSessionToken(
106
- consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],
107
- workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],
108
- options: Omit<
109
- SeamHttpOptionsWithConsoleSessionToken,
110
- 'consoleSessionToken' | 'workspaceId'
111
- > = {},
112
- ): SeamHttpAcsCredentialPools {
113
- const constructorOptions = { ...options, consoleSessionToken, workspaceId }
114
- if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
115
- throw new SeamHttpInvalidOptionsError(
116
- 'Missing consoleSessionToken or workspaceId',
117
- )
118
- }
119
- return new SeamHttpAcsCredentialPools(constructorOptions)
120
- }
121
-
122
- static fromPersonalAccessToken(
123
- personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],
124
- workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],
125
- options: Omit<
126
- SeamHttpOptionsWithPersonalAccessToken,
127
- 'personalAccessToken' | 'workspaceId'
128
- > = {},
129
- ): SeamHttpAcsCredentialPools {
130
- const constructorOptions = { ...options, personalAccessToken, workspaceId }
131
- if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
132
- throw new SeamHttpInvalidOptionsError(
133
- 'Missing personalAccessToken or workspaceId',
134
- )
135
- }
136
- return new SeamHttpAcsCredentialPools(constructorOptions)
137
- }
138
-
139
- createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(
140
- request: SeamHttpRequest<TResponse, TResponseKey>,
141
- ): SeamPaginator<TResponse, TResponseKey> {
142
- return new SeamPaginator<TResponse, TResponseKey>(this, request)
143
- }
144
-
145
- async updateClientSessionToken(
146
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
147
- ): Promise<void> {
148
- const { headers } = this.client.defaults
149
- const authHeaders = getAuthHeadersForClientSessionToken({
150
- clientSessionToken,
151
- })
152
- for (const key of Object.keys(authHeaders)) {
153
- if (headers[key] == null) {
154
- throw new Error(
155
- 'Cannot update a clientSessionToken on a client created without a clientSessionToken',
156
- )
157
- }
158
- }
159
- this.client.defaults.headers = { ...headers, ...authHeaders }
160
- const clientSessions = SeamHttpClientSessions.fromClient(this.client)
161
- await clientSessions.get()
162
- }
163
-
164
- list(
165
- body?: AcsCredentialPoolsListParams,
166
- ): SeamHttpRequest<AcsCredentialPoolsListResponse, 'acs_credential_pools'> {
167
- return new SeamHttpRequest(this, {
168
- pathname: '/acs/credential_pools/list',
169
- method: 'post',
170
- body,
171
- responseKey: 'acs_credential_pools',
172
- })
173
- }
174
- }
175
-
176
- export type AcsCredentialPoolsListParams =
177
- RouteRequestBody<'/acs/credential_pools/list'>
178
-
179
- export type AcsCredentialPoolsListResponse = SetNonNullable<
180
- Required<RouteResponse<'/acs/credential_pools/list'>>
181
- >
182
-
183
- export type AcsCredentialPoolsListOptions = never
@@ -1,189 +0,0 @@
1
- /*
2
- * Automatically generated by generate-routes.ts.
3
- * Do not edit this file or add other files to this directory.
4
- */
5
-
6
- import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'
7
-
8
- import {
9
- getAuthHeadersForClientSessionToken,
10
- warnOnInsecureuserIdentifierKey,
11
- } from 'lib/seam/connect/auth.js'
12
- import { type Client, createClient } from 'lib/seam/connect/client.js'
13
- import {
14
- isSeamHttpOptionsWithApiKey,
15
- isSeamHttpOptionsWithClient,
16
- isSeamHttpOptionsWithClientSessionToken,
17
- isSeamHttpOptionsWithConsoleSessionToken,
18
- isSeamHttpOptionsWithPersonalAccessToken,
19
- type SeamHttpFromPublishableKeyOptions,
20
- SeamHttpInvalidOptionsError,
21
- type SeamHttpOptions,
22
- type SeamHttpOptionsWithApiKey,
23
- type SeamHttpOptionsWithClient,
24
- type SeamHttpOptionsWithClientSessionToken,
25
- type SeamHttpOptionsWithConsoleSessionToken,
26
- type SeamHttpOptionsWithPersonalAccessToken,
27
- type SeamHttpRequestOptions,
28
- } from 'lib/seam/connect/options.js'
29
- import {
30
- limitToSeamHttpRequestOptions,
31
- parseOptions,
32
- } from 'lib/seam/connect/parse-options.js'
33
- import { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'
34
- import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'
35
- import type { SetNonNullable } from 'lib/types.js'
36
-
37
- import { SeamHttpClientSessions } from './client-sessions.js'
38
-
39
- export class SeamHttpAcsCredentialProvisioningAutomations {
40
- client: Client
41
- readonly defaults: Required<SeamHttpRequestOptions>
42
-
43
- constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {
44
- const options = parseOptions(apiKeyOrOptions)
45
- this.client = 'client' in options ? options.client : createClient(options)
46
- this.defaults = limitToSeamHttpRequestOptions(options)
47
- }
48
-
49
- static fromClient(
50
- client: SeamHttpOptionsWithClient['client'],
51
- options: Omit<SeamHttpOptionsWithClient, 'client'> = {},
52
- ): SeamHttpAcsCredentialProvisioningAutomations {
53
- const constructorOptions = { ...options, client }
54
- if (!isSeamHttpOptionsWithClient(constructorOptions)) {
55
- throw new SeamHttpInvalidOptionsError('Missing client')
56
- }
57
- return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)
58
- }
59
-
60
- static fromApiKey(
61
- apiKey: SeamHttpOptionsWithApiKey['apiKey'],
62
- options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},
63
- ): SeamHttpAcsCredentialProvisioningAutomations {
64
- const constructorOptions = { ...options, apiKey }
65
- if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
66
- throw new SeamHttpInvalidOptionsError('Missing apiKey')
67
- }
68
- return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)
69
- }
70
-
71
- static fromClientSessionToken(
72
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
73
- options: Omit<
74
- SeamHttpOptionsWithClientSessionToken,
75
- 'clientSessionToken'
76
- > = {},
77
- ): SeamHttpAcsCredentialProvisioningAutomations {
78
- const constructorOptions = { ...options, clientSessionToken }
79
- if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
80
- throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')
81
- }
82
- return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)
83
- }
84
-
85
- static async fromPublishableKey(
86
- publishableKey: string,
87
- userIdentifierKey: string,
88
- options: SeamHttpFromPublishableKeyOptions = {},
89
- ): Promise<SeamHttpAcsCredentialProvisioningAutomations> {
90
- warnOnInsecureuserIdentifierKey(userIdentifierKey)
91
- const clientOptions = parseOptions({ ...options, publishableKey })
92
- if (isSeamHttpOptionsWithClient(clientOptions)) {
93
- throw new SeamHttpInvalidOptionsError(
94
- 'The client option cannot be used with SeamHttp.fromPublishableKey',
95
- )
96
- }
97
- const client = createClient(clientOptions)
98
- const clientSessions = SeamHttpClientSessions.fromClient(client)
99
- const { token } = await clientSessions.getOrCreate({
100
- user_identifier_key: userIdentifierKey,
101
- })
102
- return SeamHttpAcsCredentialProvisioningAutomations.fromClientSessionToken(
103
- token,
104
- options,
105
- )
106
- }
107
-
108
- static fromConsoleSessionToken(
109
- consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],
110
- workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],
111
- options: Omit<
112
- SeamHttpOptionsWithConsoleSessionToken,
113
- 'consoleSessionToken' | 'workspaceId'
114
- > = {},
115
- ): SeamHttpAcsCredentialProvisioningAutomations {
116
- const constructorOptions = { ...options, consoleSessionToken, workspaceId }
117
- if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
118
- throw new SeamHttpInvalidOptionsError(
119
- 'Missing consoleSessionToken or workspaceId',
120
- )
121
- }
122
- return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)
123
- }
124
-
125
- static fromPersonalAccessToken(
126
- personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],
127
- workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],
128
- options: Omit<
129
- SeamHttpOptionsWithPersonalAccessToken,
130
- 'personalAccessToken' | 'workspaceId'
131
- > = {},
132
- ): SeamHttpAcsCredentialProvisioningAutomations {
133
- const constructorOptions = { ...options, personalAccessToken, workspaceId }
134
- if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
135
- throw new SeamHttpInvalidOptionsError(
136
- 'Missing personalAccessToken or workspaceId',
137
- )
138
- }
139
- return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)
140
- }
141
-
142
- createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(
143
- request: SeamHttpRequest<TResponse, TResponseKey>,
144
- ): SeamPaginator<TResponse, TResponseKey> {
145
- return new SeamPaginator<TResponse, TResponseKey>(this, request)
146
- }
147
-
148
- async updateClientSessionToken(
149
- clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],
150
- ): Promise<void> {
151
- const { headers } = this.client.defaults
152
- const authHeaders = getAuthHeadersForClientSessionToken({
153
- clientSessionToken,
154
- })
155
- for (const key of Object.keys(authHeaders)) {
156
- if (headers[key] == null) {
157
- throw new Error(
158
- 'Cannot update a clientSessionToken on a client created without a clientSessionToken',
159
- )
160
- }
161
- }
162
- this.client.defaults.headers = { ...headers, ...authHeaders }
163
- const clientSessions = SeamHttpClientSessions.fromClient(this.client)
164
- await clientSessions.get()
165
- }
166
-
167
- launch(
168
- body?: AcsCredentialProvisioningAutomationsLaunchBody,
169
- ): SeamHttpRequest<
170
- AcsCredentialProvisioningAutomationsLaunchResponse,
171
- 'acs_credential_provisioning_automation'
172
- > {
173
- return new SeamHttpRequest(this, {
174
- pathname: '/acs/credential_provisioning_automations/launch',
175
- method: 'post',
176
- body,
177
- responseKey: 'acs_credential_provisioning_automation',
178
- })
179
- }
180
- }
181
-
182
- export type AcsCredentialProvisioningAutomationsLaunchBody =
183
- RouteRequestBody<'/acs/credential_provisioning_automations/launch'>
184
-
185
- export type AcsCredentialProvisioningAutomationsLaunchResponse = SetNonNullable<
186
- Required<RouteResponse<'/acs/credential_provisioning_automations/launch'>>
187
- >
188
-
189
- export type AcsCredentialProvisioningAutomationsLaunchOptions = never