@seamapi/http 0.2.1 → 0.4.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 (87) hide show
  1. package/dist/connect.cjs +106 -1
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +157 -124
  4. package/lib/seam/connect/api-error-type.d.ts +8 -0
  5. package/lib/seam/connect/api-error-type.js +3 -0
  6. package/lib/seam/connect/api-error-type.js.map +1 -0
  7. package/lib/seam/connect/client.js +6 -0
  8. package/lib/seam/connect/client.js.map +1 -1
  9. package/lib/seam/connect/error-interceptor.d.ts +1 -0
  10. package/lib/seam/connect/error-interceptor.js +43 -0
  11. package/lib/seam/connect/error-interceptor.js.map +1 -0
  12. package/lib/seam/connect/index.d.ts +4 -1
  13. package/lib/seam/connect/index.js +4 -1
  14. package/lib/seam/connect/index.js.map +1 -1
  15. package/lib/seam/connect/parse-options.js +6 -0
  16. package/lib/seam/connect/parse-options.js.map +1 -1
  17. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +7 -7
  18. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  19. package/lib/seam/connect/routes/access-codes.d.ts +10 -10
  20. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  21. package/lib/seam/connect/routes/acs-access-groups.d.ts +11 -11
  22. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  23. package/lib/seam/connect/routes/acs-credentials.d.ts +6 -6
  24. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  25. package/lib/seam/connect/routes/acs-systems.d.ts +4 -4
  26. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  27. package/lib/seam/connect/routes/acs-users.d.ts +11 -11
  28. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  29. package/lib/seam/connect/routes/action-attempts.d.ts +4 -4
  30. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  31. package/lib/seam/connect/routes/client-sessions.d.ts +8 -8
  32. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  33. package/lib/seam/connect/routes/connect-webviews.d.ts +6 -6
  34. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  35. package/lib/seam/connect/routes/connected-accounts.d.ts +3 -3
  36. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  37. package/lib/seam/connect/routes/devices-unmanaged.d.ts +5 -5
  38. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  39. package/lib/seam/connect/routes/devices.d.ts +8 -8
  40. package/lib/seam/connect/routes/devices.js.map +1 -1
  41. package/lib/seam/connect/routes/events.d.ts +4 -4
  42. package/lib/seam/connect/routes/events.js.map +1 -1
  43. package/lib/seam/connect/routes/locks.d.ts +6 -6
  44. package/lib/seam/connect/routes/locks.js.map +1 -1
  45. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +7 -7
  46. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  47. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +7 -7
  48. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  49. package/lib/seam/connect/routes/thermostats.d.ts +10 -10
  50. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  51. package/lib/seam/connect/routes/webhooks.d.ts +4 -4
  52. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  53. package/lib/seam/connect/routes/workspaces.d.ts +1 -1
  54. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  55. package/lib/seam/connect/seam-http-error.d.ts +20 -0
  56. package/lib/seam/connect/seam-http-error.js +43 -0
  57. package/lib/seam/connect/seam-http-error.js.map +1 -0
  58. package/lib/version.d.ts +2 -0
  59. package/lib/version.js +3 -0
  60. package/lib/version.js.map +1 -0
  61. package/package.json +5 -2
  62. package/src/lib/seam/connect/api-error-type.ts +11 -0
  63. package/src/lib/seam/connect/client.ts +9 -0
  64. package/src/lib/seam/connect/error-interceptor.ts +61 -0
  65. package/src/lib/seam/connect/index.ts +4 -1
  66. package/src/lib/seam/connect/parse-options.ts +8 -0
  67. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +7 -7
  68. package/src/lib/seam/connect/routes/access-codes.ts +10 -10
  69. package/src/lib/seam/connect/routes/acs-access-groups.ts +12 -11
  70. package/src/lib/seam/connect/routes/acs-credentials.ts +6 -6
  71. package/src/lib/seam/connect/routes/acs-systems.ts +4 -4
  72. package/src/lib/seam/connect/routes/acs-users.ts +13 -11
  73. package/src/lib/seam/connect/routes/action-attempts.ts +4 -4
  74. package/src/lib/seam/connect/routes/client-sessions.ts +8 -8
  75. package/src/lib/seam/connect/routes/connect-webviews.ts +7 -6
  76. package/src/lib/seam/connect/routes/connected-accounts.ts +3 -3
  77. package/src/lib/seam/connect/routes/devices-unmanaged.ts +6 -5
  78. package/src/lib/seam/connect/routes/devices.ts +10 -8
  79. package/src/lib/seam/connect/routes/events.ts +4 -4
  80. package/src/lib/seam/connect/routes/locks.ts +6 -6
  81. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +7 -7
  82. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +7 -7
  83. package/src/lib/seam/connect/routes/thermostats.ts +10 -10
  84. package/src/lib/seam/connect/routes/webhooks.ts +4 -4
  85. package/src/lib/seam/connect/routes/workspaces.ts +1 -1
  86. package/src/lib/seam/connect/seam-http-error.ts +64 -0
  87. package/src/lib/version.ts +3 -0
@@ -0,0 +1,61 @@
1
+ import { type AxiosError, isAxiosError } from 'axios'
2
+
3
+ import type { ApiErrorResponse } from './api-error-type.js'
4
+ import {
5
+ SeamHttpApiError,
6
+ SeamHttpInvalidInputError,
7
+ SeamHttpUnauthorizedError,
8
+ } from './seam-http-error.js'
9
+
10
+ export const errorInterceptor = async (err: unknown): Promise<void> => {
11
+ if (!isAxiosError(err)) throw err
12
+
13
+ const { response } = err
14
+ const status = response?.status
15
+ const headers = response?.headers
16
+ const requestId = headers?.['seam-request-id'] ?? ''
17
+
18
+ if (status == null) throw err
19
+
20
+ if (status === 401) {
21
+ throw new SeamHttpUnauthorizedError(requestId)
22
+ }
23
+
24
+ if (!isApiErrorResponse(response)) throw err
25
+
26
+ const { type } = response.data.error
27
+
28
+ const args = [response.data.error, status, requestId] as const
29
+
30
+ if (type === 'invalid_input') throw new SeamHttpInvalidInputError(...args)
31
+ throw new SeamHttpApiError(...args)
32
+ }
33
+
34
+ const isApiErrorResponse = (
35
+ response: AxiosError['response'],
36
+ ): response is NonNullable<AxiosError<ApiErrorResponse>['response']> => {
37
+ if (response == null) return false
38
+ const { headers, data } = response
39
+
40
+ if (headers == null) return false
41
+
42
+ const contentType = headers['content-type']
43
+ if (
44
+ typeof contentType === 'string' &&
45
+ !contentType.startsWith('application/json')
46
+ ) {
47
+ return false
48
+ }
49
+
50
+ if (typeof data === 'object' && data != null) {
51
+ return (
52
+ 'error' in data &&
53
+ typeof data.error === 'object' &&
54
+ data.error != null &&
55
+ 'type' in data.error &&
56
+ typeof data.error.type === 'string'
57
+ )
58
+ }
59
+
60
+ return false
61
+ }
@@ -1,3 +1,6 @@
1
+ export * from './error-interceptor.js'
1
2
  export * from './options.js'
2
- export * from './routes//index.js'
3
+ export * from './routes/index.js'
3
4
  export * from './seam-http.js'
5
+ export * from './seam-http-error.js'
6
+ export * from 'lib/params-serializer.js'
@@ -1,3 +1,5 @@
1
+ import version from 'lib/version.js'
2
+
1
3
  import { getAuthHeaders } from './auth.js'
2
4
  import type { ClientOptions } from './client.js'
3
5
  import {
@@ -8,6 +10,11 @@ import {
8
10
 
9
11
  const defaultEndpoint = 'https://connect.getseam.com'
10
12
 
13
+ const sdkHeaders = {
14
+ 'seam-sdk-name': 'seamapi/javascript-http',
15
+ 'seam-sdk-version': version,
16
+ }
17
+
11
18
  export type Options = SeamHttpOptions & { publishableKey?: string }
12
19
 
13
20
  export const parseOptions = (
@@ -25,6 +32,7 @@ export const parseOptions = (
25
32
  headers: {
26
33
  ...getAuthHeaders(options),
27
34
  ...options.axiosOptions?.headers,
35
+ ...sdkHeaders,
28
36
  },
29
37
  },
30
38
  axiosRetryOptions: {
@@ -83,7 +83,7 @@ export class SeamHttpAccessCodesUnmanaged {
83
83
  }
84
84
 
85
85
  async convertToManaged(
86
- body: AccessCodesUnmanagedConvertToManagedBody,
86
+ body?: AccessCodesUnmanagedConvertToManagedBody,
87
87
  ): Promise<void> {
88
88
  await this.client.request<AccessCodesUnmanagedConvertToManagedResponse>({
89
89
  url: '/access_codes/unmanaged/convert_to_managed',
@@ -92,7 +92,7 @@ export class SeamHttpAccessCodesUnmanaged {
92
92
  })
93
93
  }
94
94
 
95
- async delete(body: AccessCodesUnmanagedDeleteBody): Promise<void> {
95
+ async delete(body?: AccessCodesUnmanagedDeleteBody): Promise<void> {
96
96
  await this.client.request<AccessCodesUnmanagedDeleteResponse>({
97
97
  url: '/access_codes/unmanaged/delete',
98
98
  method: 'post',
@@ -101,7 +101,7 @@ export class SeamHttpAccessCodesUnmanaged {
101
101
  }
102
102
 
103
103
  async get(
104
- body: AccessCodesUnmanagedGetBody,
104
+ body?: AccessCodesUnmanagedGetParams,
105
105
  ): Promise<AccessCodesUnmanagedGetResponse['access_code']> {
106
106
  const { data } = await this.client.request<AccessCodesUnmanagedGetResponse>(
107
107
  {
@@ -114,7 +114,7 @@ export class SeamHttpAccessCodesUnmanaged {
114
114
  }
115
115
 
116
116
  async list(
117
- body: AccessCodesUnmanagedListBody,
117
+ body?: AccessCodesUnmanagedListParams,
118
118
  ): Promise<AccessCodesUnmanagedListResponse['access_codes']> {
119
119
  const { data } =
120
120
  await this.client.request<AccessCodesUnmanagedListResponse>({
@@ -125,7 +125,7 @@ export class SeamHttpAccessCodesUnmanaged {
125
125
  return data.access_codes
126
126
  }
127
127
 
128
- async update(body: AccessCodesUnmanagedUpdateBody): Promise<void> {
128
+ async update(body?: AccessCodesUnmanagedUpdateBody): Promise<void> {
129
129
  await this.client.request<AccessCodesUnmanagedUpdateResponse>({
130
130
  url: '/access_codes/unmanaged/update',
131
131
  method: 'post',
@@ -148,14 +148,14 @@ export type AccessCodesUnmanagedDeleteResponse = SetNonNullable<
148
148
  Required<RouteResponse<'/access_codes/unmanaged/delete'>>
149
149
  >
150
150
 
151
- export type AccessCodesUnmanagedGetBody =
151
+ export type AccessCodesUnmanagedGetParams =
152
152
  RouteRequestBody<'/access_codes/unmanaged/get'>
153
153
 
154
154
  export type AccessCodesUnmanagedGetResponse = SetNonNullable<
155
155
  Required<RouteResponse<'/access_codes/unmanaged/get'>>
156
156
  >
157
157
 
158
- export type AccessCodesUnmanagedListBody =
158
+ export type AccessCodesUnmanagedListParams =
159
159
  RouteRequestBody<'/access_codes/unmanaged/list'>
160
160
 
161
161
  export type AccessCodesUnmanagedListResponse = SetNonNullable<
@@ -88,7 +88,7 @@ export class SeamHttpAccessCodes {
88
88
  }
89
89
 
90
90
  async create(
91
- body: AccessCodesCreateBody,
91
+ body?: AccessCodesCreateBody,
92
92
  ): Promise<AccessCodesCreateResponse['access_code']> {
93
93
  const { data } = await this.client.request<AccessCodesCreateResponse>({
94
94
  url: '/access_codes/create',
@@ -99,7 +99,7 @@ export class SeamHttpAccessCodes {
99
99
  }
100
100
 
101
101
  async createMultiple(
102
- body: AccessCodesCreateMultipleBody,
102
+ body?: AccessCodesCreateMultipleBody,
103
103
  ): Promise<AccessCodesCreateMultipleResponse['access_codes']> {
104
104
  const { data } =
105
105
  await this.client.request<AccessCodesCreateMultipleResponse>({
@@ -110,7 +110,7 @@ export class SeamHttpAccessCodes {
110
110
  return data.access_codes
111
111
  }
112
112
 
113
- async delete(body: AccessCodesDeleteBody): Promise<void> {
113
+ async delete(body?: AccessCodesDeleteBody): Promise<void> {
114
114
  await this.client.request<AccessCodesDeleteResponse>({
115
115
  url: '/access_codes/delete',
116
116
  method: 'post',
@@ -119,7 +119,7 @@ export class SeamHttpAccessCodes {
119
119
  }
120
120
 
121
121
  async generateCode(
122
- body: AccessCodesGenerateCodeBody,
122
+ body?: AccessCodesGenerateCodeBody,
123
123
  ): Promise<AccessCodesGenerateCodeResponse['generated_code']> {
124
124
  const { data } = await this.client.request<AccessCodesGenerateCodeResponse>(
125
125
  {
@@ -132,7 +132,7 @@ export class SeamHttpAccessCodes {
132
132
  }
133
133
 
134
134
  async get(
135
- body: AccessCodesGetBody,
135
+ body?: AccessCodesGetParams,
136
136
  ): Promise<AccessCodesGetResponse['access_code']> {
137
137
  const { data } = await this.client.request<AccessCodesGetResponse>({
138
138
  url: '/access_codes/get',
@@ -143,7 +143,7 @@ export class SeamHttpAccessCodes {
143
143
  }
144
144
 
145
145
  async list(
146
- body: AccessCodesListBody,
146
+ body?: AccessCodesListParams,
147
147
  ): Promise<AccessCodesListResponse['access_codes']> {
148
148
  const { data } = await this.client.request<AccessCodesListResponse>({
149
149
  url: '/access_codes/list',
@@ -154,7 +154,7 @@ export class SeamHttpAccessCodes {
154
154
  }
155
155
 
156
156
  async pullBackupAccessCode(
157
- body: AccessCodesPullBackupAccessCodeBody,
157
+ body?: AccessCodesPullBackupAccessCodeBody,
158
158
  ): Promise<AccessCodesPullBackupAccessCodeResponse['backup_access_code']> {
159
159
  const { data } =
160
160
  await this.client.request<AccessCodesPullBackupAccessCodeResponse>({
@@ -165,7 +165,7 @@ export class SeamHttpAccessCodes {
165
165
  return data.backup_access_code
166
166
  }
167
167
 
168
- async update(body: AccessCodesUpdateBody): Promise<void> {
168
+ async update(body?: AccessCodesUpdateBody): Promise<void> {
169
169
  await this.client.request<AccessCodesUpdateResponse>({
170
170
  url: '/access_codes/update',
171
171
  method: 'post',
@@ -200,13 +200,13 @@ export type AccessCodesGenerateCodeResponse = SetNonNullable<
200
200
  Required<RouteResponse<'/access_codes/generate_code'>>
201
201
  >
202
202
 
203
- export type AccessCodesGetBody = RouteRequestBody<'/access_codes/get'>
203
+ export type AccessCodesGetParams = RouteRequestBody<'/access_codes/get'>
204
204
 
205
205
  export type AccessCodesGetResponse = SetNonNullable<
206
206
  Required<RouteResponse<'/access_codes/get'>>
207
207
  >
208
208
 
209
- export type AccessCodesListBody = RouteRequestBody<'/access_codes/list'>
209
+ export type AccessCodesListParams = RouteRequestBody<'/access_codes/list'>
210
210
 
211
211
  export type AccessCodesListResponse = SetNonNullable<
212
212
  Required<RouteResponse<'/access_codes/list'>>
@@ -82,7 +82,7 @@ export class SeamHttpAcsAccessGroups {
82
82
  return SeamHttpAcsAccessGroups.fromClientSessionToken(token, options)
83
83
  }
84
84
 
85
- async addUser(body: AcsAccessGroupsAddUserBody): Promise<void> {
85
+ async addUser(body?: AcsAccessGroupsAddUserBody): Promise<void> {
86
86
  await this.client.request<AcsAccessGroupsAddUserResponse>({
87
87
  url: '/acs/access_groups/add_user',
88
88
  method: 'post',
@@ -91,7 +91,7 @@ export class SeamHttpAcsAccessGroups {
91
91
  }
92
92
 
93
93
  async create(
94
- body: AcsAccessGroupsCreateBody,
94
+ body?: AcsAccessGroupsCreateBody,
95
95
  ): Promise<AcsAccessGroupsCreateResponse['acs_access_group']> {
96
96
  const { data } = await this.client.request<AcsAccessGroupsCreateResponse>({
97
97
  url: '/acs/access_groups/create',
@@ -101,7 +101,7 @@ export class SeamHttpAcsAccessGroups {
101
101
  return data.acs_access_group
102
102
  }
103
103
 
104
- async delete(body: AcsAccessGroupsDeleteBody): Promise<void> {
104
+ async delete(body?: AcsAccessGroupsDeleteBody): Promise<void> {
105
105
  await this.client.request<AcsAccessGroupsDeleteResponse>({
106
106
  url: '/acs/access_groups/delete',
107
107
  method: 'post',
@@ -110,7 +110,7 @@ export class SeamHttpAcsAccessGroups {
110
110
  }
111
111
 
112
112
  async get(
113
- body: AcsAccessGroupsGetBody,
113
+ body?: AcsAccessGroupsGetParams,
114
114
  ): Promise<AcsAccessGroupsGetResponse['acs_access_group']> {
115
115
  const { data } = await this.client.request<AcsAccessGroupsGetResponse>({
116
116
  url: '/acs/access_groups/get',
@@ -121,7 +121,7 @@ export class SeamHttpAcsAccessGroups {
121
121
  }
122
122
 
123
123
  async list(
124
- body: AcsAccessGroupsListBody,
124
+ body?: AcsAccessGroupsListParams,
125
125
  ): Promise<AcsAccessGroupsListResponse['acs_access_groups']> {
126
126
  const { data } = await this.client.request<AcsAccessGroupsListResponse>({
127
127
  url: '/acs/access_groups/list',
@@ -132,7 +132,7 @@ export class SeamHttpAcsAccessGroups {
132
132
  }
133
133
 
134
134
  async listUsers(
135
- body: AcsAccessGroupsListUsersBody,
135
+ body?: AcsAccessGroupsListUsersParams,
136
136
  ): Promise<AcsAccessGroupsListUsersResponse['acs_users']> {
137
137
  const { data } =
138
138
  await this.client.request<AcsAccessGroupsListUsersResponse>({
@@ -143,7 +143,7 @@ export class SeamHttpAcsAccessGroups {
143
143
  return data.acs_users
144
144
  }
145
145
 
146
- async removeUser(body: AcsAccessGroupsRemoveUserBody): Promise<void> {
146
+ async removeUser(body?: AcsAccessGroupsRemoveUserBody): Promise<void> {
147
147
  await this.client.request<AcsAccessGroupsRemoveUserResponse>({
148
148
  url: '/acs/access_groups/remove_user',
149
149
  method: 'post',
@@ -151,7 +151,7 @@ export class SeamHttpAcsAccessGroups {
151
151
  })
152
152
  }
153
153
 
154
- async update(body: AcsAccessGroupsUpdateBody): Promise<void> {
154
+ async update(body?: AcsAccessGroupsUpdateBody): Promise<void> {
155
155
  await this.client.request<AcsAccessGroupsUpdateResponse>({
156
156
  url: '/acs/access_groups/update',
157
157
  method: 'post',
@@ -181,20 +181,21 @@ export type AcsAccessGroupsDeleteResponse = SetNonNullable<
181
181
  Required<RouteResponse<'/acs/access_groups/delete'>>
182
182
  >
183
183
 
184
- export type AcsAccessGroupsGetBody = RouteRequestBody<'/acs/access_groups/get'>
184
+ export type AcsAccessGroupsGetParams =
185
+ RouteRequestBody<'/acs/access_groups/get'>
185
186
 
186
187
  export type AcsAccessGroupsGetResponse = SetNonNullable<
187
188
  Required<RouteResponse<'/acs/access_groups/get'>>
188
189
  >
189
190
 
190
- export type AcsAccessGroupsListBody =
191
+ export type AcsAccessGroupsListParams =
191
192
  RouteRequestBody<'/acs/access_groups/list'>
192
193
 
193
194
  export type AcsAccessGroupsListResponse = SetNonNullable<
194
195
  Required<RouteResponse<'/acs/access_groups/list'>>
195
196
  >
196
197
 
197
- export type AcsAccessGroupsListUsersBody =
198
+ export type AcsAccessGroupsListUsersParams =
198
199
  RouteRequestBody<'/acs/access_groups/list_users'>
199
200
 
200
201
  export type AcsAccessGroupsListUsersResponse = SetNonNullable<
@@ -83,7 +83,7 @@ export class SeamHttpAcsCredentials {
83
83
  }
84
84
 
85
85
  async create(
86
- body: AcsCredentialsCreateBody,
86
+ body?: AcsCredentialsCreateBody,
87
87
  ): Promise<AcsCredentialsCreateResponse['acs_credential']> {
88
88
  const { data } = await this.client.request<AcsCredentialsCreateResponse>({
89
89
  url: '/acs/credentials/create',
@@ -93,7 +93,7 @@ export class SeamHttpAcsCredentials {
93
93
  return data.acs_credential
94
94
  }
95
95
 
96
- async delete(body: AcsCredentialsDeleteBody): Promise<void> {
96
+ async delete(body?: AcsCredentialsDeleteBody): Promise<void> {
97
97
  await this.client.request<AcsCredentialsDeleteResponse>({
98
98
  url: '/acs/credentials/delete',
99
99
  method: 'post',
@@ -102,7 +102,7 @@ export class SeamHttpAcsCredentials {
102
102
  }
103
103
 
104
104
  async get(
105
- body: AcsCredentialsGetBody,
105
+ body?: AcsCredentialsGetParams,
106
106
  ): Promise<AcsCredentialsGetResponse['acs_credential']> {
107
107
  const { data } = await this.client.request<AcsCredentialsGetResponse>({
108
108
  url: '/acs/credentials/get',
@@ -113,7 +113,7 @@ export class SeamHttpAcsCredentials {
113
113
  }
114
114
 
115
115
  async list(
116
- body: AcsCredentialsListBody,
116
+ body?: AcsCredentialsListParams,
117
117
  ): Promise<AcsCredentialsListResponse['acs_credentials']> {
118
118
  const { data } = await this.client.request<AcsCredentialsListResponse>({
119
119
  url: '/acs/credentials/list',
@@ -138,13 +138,13 @@ export type AcsCredentialsDeleteResponse = SetNonNullable<
138
138
  Required<RouteResponse<'/acs/credentials/delete'>>
139
139
  >
140
140
 
141
- export type AcsCredentialsGetBody = RouteRequestBody<'/acs/credentials/get'>
141
+ export type AcsCredentialsGetParams = RouteRequestBody<'/acs/credentials/get'>
142
142
 
143
143
  export type AcsCredentialsGetResponse = SetNonNullable<
144
144
  Required<RouteResponse<'/acs/credentials/get'>>
145
145
  >
146
146
 
147
- export type AcsCredentialsListBody = RouteRequestBody<'/acs/credentials/list'>
147
+ export type AcsCredentialsListParams = RouteRequestBody<'/acs/credentials/list'>
148
148
 
149
149
  export type AcsCredentialsListResponse = SetNonNullable<
150
150
  Required<RouteResponse<'/acs/credentials/list'>>
@@ -83,7 +83,7 @@ export class SeamHttpAcsSystems {
83
83
  }
84
84
 
85
85
  async get(
86
- body: AcsSystemsGetBody,
86
+ body?: AcsSystemsGetParams,
87
87
  ): Promise<AcsSystemsGetResponse['acs_system']> {
88
88
  const { data } = await this.client.request<AcsSystemsGetResponse>({
89
89
  url: '/acs/systems/get',
@@ -94,7 +94,7 @@ export class SeamHttpAcsSystems {
94
94
  }
95
95
 
96
96
  async list(
97
- body: AcsSystemsListBody,
97
+ body?: AcsSystemsListParams,
98
98
  ): Promise<AcsSystemsListResponse['acs_systems']> {
99
99
  const { data } = await this.client.request<AcsSystemsListResponse>({
100
100
  url: '/acs/systems/list',
@@ -105,13 +105,13 @@ export class SeamHttpAcsSystems {
105
105
  }
106
106
  }
107
107
 
108
- export type AcsSystemsGetBody = RouteRequestBody<'/acs/systems/get'>
108
+ export type AcsSystemsGetParams = RouteRequestBody<'/acs/systems/get'>
109
109
 
110
110
  export type AcsSystemsGetResponse = SetNonNullable<
111
111
  Required<RouteResponse<'/acs/systems/get'>>
112
112
  >
113
113
 
114
- export type AcsSystemsListBody = RouteRequestBody<'/acs/systems/list'>
114
+ export type AcsSystemsListParams = RouteRequestBody<'/acs/systems/list'>
115
115
 
116
116
  export type AcsSystemsListResponse = SetNonNullable<
117
117
  Required<RouteResponse<'/acs/systems/list'>>
@@ -82,7 +82,7 @@ export class SeamHttpAcsUsers {
82
82
  return SeamHttpAcsUsers.fromClientSessionToken(token, options)
83
83
  }
84
84
 
85
- async addToAccessGroup(body: AcsUsersAddToAccessGroupBody): Promise<void> {
85
+ async addToAccessGroup(body?: AcsUsersAddToAccessGroupBody): Promise<void> {
86
86
  await this.client.request<AcsUsersAddToAccessGroupResponse>({
87
87
  url: '/acs/users/add_to_access_group',
88
88
  method: 'post',
@@ -91,7 +91,7 @@ export class SeamHttpAcsUsers {
91
91
  }
92
92
 
93
93
  async create(
94
- body: AcsUsersCreateBody,
94
+ body?: AcsUsersCreateBody,
95
95
  ): Promise<AcsUsersCreateResponse['acs_user']> {
96
96
  const { data } = await this.client.request<AcsUsersCreateResponse>({
97
97
  url: '/acs/users/create',
@@ -101,7 +101,7 @@ export class SeamHttpAcsUsers {
101
101
  return data.acs_user
102
102
  }
103
103
 
104
- async delete(body: AcsUsersDeleteBody): Promise<void> {
104
+ async delete(body?: AcsUsersDeleteBody): Promise<void> {
105
105
  await this.client.request<AcsUsersDeleteResponse>({
106
106
  url: '/acs/users/delete',
107
107
  method: 'post',
@@ -109,7 +109,9 @@ export class SeamHttpAcsUsers {
109
109
  })
110
110
  }
111
111
 
112
- async get(body: AcsUsersGetBody): Promise<AcsUsersGetResponse['acs_user']> {
112
+ async get(
113
+ body?: AcsUsersGetParams,
114
+ ): Promise<AcsUsersGetResponse['acs_user']> {
113
115
  const { data } = await this.client.request<AcsUsersGetResponse>({
114
116
  url: '/acs/users/get',
115
117
  method: 'post',
@@ -119,7 +121,7 @@ export class SeamHttpAcsUsers {
119
121
  }
120
122
 
121
123
  async list(
122
- body: AcsUsersListBody,
124
+ body?: AcsUsersListParams,
123
125
  ): Promise<AcsUsersListResponse['acs_users']> {
124
126
  const { data } = await this.client.request<AcsUsersListResponse>({
125
127
  url: '/acs/users/list',
@@ -130,7 +132,7 @@ export class SeamHttpAcsUsers {
130
132
  }
131
133
 
132
134
  async removeFromAccessGroup(
133
- body: AcsUsersRemoveFromAccessGroupBody,
135
+ body?: AcsUsersRemoveFromAccessGroupBody,
134
136
  ): Promise<void> {
135
137
  await this.client.request<AcsUsersRemoveFromAccessGroupResponse>({
136
138
  url: '/acs/users/remove_from_access_group',
@@ -139,7 +141,7 @@ export class SeamHttpAcsUsers {
139
141
  })
140
142
  }
141
143
 
142
- async suspend(body: AcsUsersSuspendBody): Promise<void> {
144
+ async suspend(body?: AcsUsersSuspendBody): Promise<void> {
143
145
  await this.client.request<AcsUsersSuspendResponse>({
144
146
  url: '/acs/users/suspend',
145
147
  method: 'post',
@@ -147,7 +149,7 @@ export class SeamHttpAcsUsers {
147
149
  })
148
150
  }
149
151
 
150
- async unsuspend(body: AcsUsersUnsuspendBody): Promise<void> {
152
+ async unsuspend(body?: AcsUsersUnsuspendBody): Promise<void> {
151
153
  await this.client.request<AcsUsersUnsuspendResponse>({
152
154
  url: '/acs/users/unsuspend',
153
155
  method: 'post',
@@ -155,7 +157,7 @@ export class SeamHttpAcsUsers {
155
157
  })
156
158
  }
157
159
 
158
- async update(body: AcsUsersUpdateBody): Promise<void> {
160
+ async update(body?: AcsUsersUpdateBody): Promise<void> {
159
161
  await this.client.request<AcsUsersUpdateResponse>({
160
162
  url: '/acs/users/update',
161
163
  method: 'post',
@@ -183,13 +185,13 @@ export type AcsUsersDeleteResponse = SetNonNullable<
183
185
  Required<RouteResponse<'/acs/users/delete'>>
184
186
  >
185
187
 
186
- export type AcsUsersGetBody = RouteRequestBody<'/acs/users/get'>
188
+ export type AcsUsersGetParams = RouteRequestBody<'/acs/users/get'>
187
189
 
188
190
  export type AcsUsersGetResponse = SetNonNullable<
189
191
  Required<RouteResponse<'/acs/users/get'>>
190
192
  >
191
193
 
192
- export type AcsUsersListBody = RouteRequestBody<'/acs/users/list'>
194
+ export type AcsUsersListParams = RouteRequestBody<'/acs/users/list'>
193
195
 
194
196
  export type AcsUsersListResponse = SetNonNullable<
195
197
  Required<RouteResponse<'/acs/users/list'>>
@@ -83,7 +83,7 @@ export class SeamHttpActionAttempts {
83
83
  }
84
84
 
85
85
  async get(
86
- body: ActionAttemptsGetBody,
86
+ body?: ActionAttemptsGetParams,
87
87
  ): Promise<ActionAttemptsGetResponse['action_attempt']> {
88
88
  const { data } = await this.client.request<ActionAttemptsGetResponse>({
89
89
  url: '/action_attempts/get',
@@ -94,7 +94,7 @@ export class SeamHttpActionAttempts {
94
94
  }
95
95
 
96
96
  async list(
97
- body: ActionAttemptsListBody,
97
+ body?: ActionAttemptsListParams,
98
98
  ): Promise<ActionAttemptsListResponse['action_attempts']> {
99
99
  const { data } = await this.client.request<ActionAttemptsListResponse>({
100
100
  url: '/action_attempts/list',
@@ -105,13 +105,13 @@ export class SeamHttpActionAttempts {
105
105
  }
106
106
  }
107
107
 
108
- export type ActionAttemptsGetBody = RouteRequestBody<'/action_attempts/get'>
108
+ export type ActionAttemptsGetParams = RouteRequestBody<'/action_attempts/get'>
109
109
 
110
110
  export type ActionAttemptsGetResponse = SetNonNullable<
111
111
  Required<RouteResponse<'/action_attempts/get'>>
112
112
  >
113
113
 
114
- export type ActionAttemptsListBody = RouteRequestBody<'/action_attempts/list'>
114
+ export type ActionAttemptsListParams = RouteRequestBody<'/action_attempts/list'>
115
115
 
116
116
  export type ActionAttemptsListResponse = SetNonNullable<
117
117
  Required<RouteResponse<'/action_attempts/list'>>
@@ -81,7 +81,7 @@ export class SeamHttpClientSessions {
81
81
  }
82
82
 
83
83
  async create(
84
- body: ClientSessionsCreateBody,
84
+ body?: ClientSessionsCreateBody,
85
85
  ): Promise<ClientSessionsCreateResponse['client_session']> {
86
86
  const { data } = await this.client.request<ClientSessionsCreateResponse>({
87
87
  url: '/client_sessions/create',
@@ -91,7 +91,7 @@ export class SeamHttpClientSessions {
91
91
  return data.client_session
92
92
  }
93
93
 
94
- async delete(body: ClientSessionsDeleteBody): Promise<void> {
94
+ async delete(body?: ClientSessionsDeleteBody): Promise<void> {
95
95
  await this.client.request<ClientSessionsDeleteResponse>({
96
96
  url: '/client_sessions/delete',
97
97
  method: 'post',
@@ -100,7 +100,7 @@ export class SeamHttpClientSessions {
100
100
  }
101
101
 
102
102
  async get(
103
- body: ClientSessionsGetBody,
103
+ body?: ClientSessionsGetParams,
104
104
  ): Promise<ClientSessionsGetResponse['client_session']> {
105
105
  const { data } = await this.client.request<ClientSessionsGetResponse>({
106
106
  url: '/client_sessions/get',
@@ -111,7 +111,7 @@ export class SeamHttpClientSessions {
111
111
  }
112
112
 
113
113
  async getOrCreate(
114
- body: ClientSessionsGetOrCreateBody,
114
+ body?: ClientSessionsGetOrCreateBody,
115
115
  ): Promise<ClientSessionsGetOrCreateResponse['client_session']> {
116
116
  const { data } =
117
117
  await this.client.request<ClientSessionsGetOrCreateResponse>({
@@ -123,7 +123,7 @@ export class SeamHttpClientSessions {
123
123
  }
124
124
 
125
125
  async grantAccess(
126
- body: ClientSessionsGrantAccessBody,
126
+ body?: ClientSessionsGrantAccessBody,
127
127
  ): Promise<ClientSessionsGrantAccessResponse['client_session']> {
128
128
  const { data } =
129
129
  await this.client.request<ClientSessionsGrantAccessResponse>({
@@ -135,7 +135,7 @@ export class SeamHttpClientSessions {
135
135
  }
136
136
 
137
137
  async list(
138
- body: ClientSessionsListBody,
138
+ body?: ClientSessionsListParams,
139
139
  ): Promise<ClientSessionsListResponse['client_sessions']> {
140
140
  const { data } = await this.client.request<ClientSessionsListResponse>({
141
141
  url: '/client_sessions/list',
@@ -160,7 +160,7 @@ export type ClientSessionsDeleteResponse = SetNonNullable<
160
160
  Required<RouteResponse<'/client_sessions/delete'>>
161
161
  >
162
162
 
163
- export type ClientSessionsGetBody = RouteRequestBody<'/client_sessions/get'>
163
+ export type ClientSessionsGetParams = RouteRequestBody<'/client_sessions/get'>
164
164
 
165
165
  export type ClientSessionsGetResponse = SetNonNullable<
166
166
  Required<RouteResponse<'/client_sessions/get'>>
@@ -180,7 +180,7 @@ export type ClientSessionsGrantAccessResponse = SetNonNullable<
180
180
  Required<RouteResponse<'/client_sessions/grant_access'>>
181
181
  >
182
182
 
183
- export type ClientSessionsListBody = RouteRequestBody<'/client_sessions/list'>
183
+ export type ClientSessionsListParams = RouteRequestBody<'/client_sessions/list'>
184
184
 
185
185
  export type ClientSessionsListResponse = SetNonNullable<
186
186
  Required<RouteResponse<'/client_sessions/list'>>