syllable-sdk 1.0.5 → 1.0.6-rc.1

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 (164) hide show
  1. package/README.md +17 -0
  2. package/bin/mcp-server.js +1965 -849
  3. package/bin/mcp-server.js.map +35 -11
  4. package/docs/sdks/batches/README.md +4 -4
  5. package/docs/sdks/directory/README.md +590 -0
  6. package/docs/sdks/workflows/README.md +8 -8
  7. package/examples/package-lock.json +1 -1
  8. package/funcs/directoryCreate.d.ts +18 -0
  9. package/funcs/directoryCreate.d.ts.map +1 -0
  10. package/funcs/directoryCreate.js +118 -0
  11. package/funcs/directoryCreate.js.map +1 -0
  12. package/funcs/directoryDelete.d.ts +18 -0
  13. package/funcs/directoryDelete.d.ts.map +1 -0
  14. package/funcs/directoryDelete.js +124 -0
  15. package/funcs/directoryDelete.js.map +1 -0
  16. package/funcs/directoryDirectoryMemberBulkLoad.d.ts +18 -0
  17. package/funcs/directoryDirectoryMemberBulkLoad.d.ts.map +1 -0
  18. package/funcs/directoryDirectoryMemberBulkLoad.js +136 -0
  19. package/funcs/directoryDirectoryMemberBulkLoad.js.map +1 -0
  20. package/funcs/directoryDirectoryMemberDownload.d.ts +16 -0
  21. package/funcs/directoryDirectoryMemberDownload.d.ts.map +1 -0
  22. package/funcs/directoryDirectoryMemberDownload.js +104 -0
  23. package/funcs/directoryDirectoryMemberDownload.js.map +1 -0
  24. package/funcs/directoryGetById.d.ts +19 -0
  25. package/funcs/directoryGetById.d.ts.map +1 -0
  26. package/funcs/directoryGetById.js +124 -0
  27. package/funcs/directoryGetById.js.map +1 -0
  28. package/funcs/directoryList.d.ts +19 -0
  29. package/funcs/directoryList.d.ts.map +1 -0
  30. package/funcs/directoryList.js +130 -0
  31. package/funcs/directoryList.js.map +1 -0
  32. package/funcs/directoryUpdate.d.ts +19 -0
  33. package/funcs/directoryUpdate.d.ts.map +1 -0
  34. package/funcs/directoryUpdate.js +125 -0
  35. package/funcs/directoryUpdate.js.map +1 -0
  36. package/jsr.json +1 -1
  37. package/lib/config.d.ts +3 -3
  38. package/lib/config.js +3 -3
  39. package/lib/config.js.map +1 -1
  40. package/mcp-server/mcp-server.js +1 -1
  41. package/mcp-server/mcp-server.js.map +1 -1
  42. package/mcp-server/server.d.ts.map +1 -1
  43. package/mcp-server/server.js +15 -1
  44. package/mcp-server/server.js.map +1 -1
  45. package/mcp-server/tools/directoryCreate.d.ts +8 -0
  46. package/mcp-server/tools/directoryCreate.d.ts.map +1 -0
  47. package/mcp-server/tools/directoryCreate.js +64 -0
  48. package/mcp-server/tools/directoryCreate.js.map +1 -0
  49. package/mcp-server/tools/directoryDelete.d.ts +8 -0
  50. package/mcp-server/tools/directoryDelete.d.ts.map +1 -0
  51. package/mcp-server/tools/directoryDelete.js +64 -0
  52. package/mcp-server/tools/directoryDelete.js.map +1 -0
  53. package/mcp-server/tools/directoryDirectoryMemberBulkLoad.d.ts +8 -0
  54. package/mcp-server/tools/directoryDirectoryMemberBulkLoad.d.ts.map +1 -0
  55. package/mcp-server/tools/directoryDirectoryMemberBulkLoad.js +64 -0
  56. package/mcp-server/tools/directoryDirectoryMemberBulkLoad.js.map +1 -0
  57. package/mcp-server/tools/directoryDirectoryMemberDownload.d.ts +3 -0
  58. package/mcp-server/tools/directoryDirectoryMemberDownload.d.ts.map +1 -0
  59. package/mcp-server/tools/directoryDirectoryMemberDownload.js +26 -0
  60. package/mcp-server/tools/directoryDirectoryMemberDownload.js.map +1 -0
  61. package/mcp-server/tools/directoryGetById.d.ts +8 -0
  62. package/mcp-server/tools/directoryGetById.d.ts.map +1 -0
  63. package/mcp-server/tools/directoryGetById.js +64 -0
  64. package/mcp-server/tools/directoryGetById.js.map +1 -0
  65. package/mcp-server/tools/directoryList.d.ts +8 -0
  66. package/mcp-server/tools/directoryList.d.ts.map +1 -0
  67. package/mcp-server/tools/directoryList.js +64 -0
  68. package/mcp-server/tools/directoryList.js.map +1 -0
  69. package/mcp-server/tools/directoryUpdate.d.ts +8 -0
  70. package/mcp-server/tools/directoryUpdate.d.ts.map +1 -0
  71. package/mcp-server/tools/directoryUpdate.js +64 -0
  72. package/mcp-server/tools/directoryUpdate.js.map +1 -0
  73. package/models/components/bodydirectorymemberbulkload.d.ts +56 -0
  74. package/models/components/bodydirectorymemberbulkload.d.ts.map +1 -0
  75. package/models/components/bodydirectorymemberbulkload.js +109 -0
  76. package/models/components/bodydirectorymemberbulkload.js.map +1 -0
  77. package/models/components/directoryextension.d.ts +52 -0
  78. package/models/components/directoryextension.d.ts.map +1 -0
  79. package/models/components/directoryextension.js +94 -0
  80. package/models/components/directoryextension.js.map +1 -0
  81. package/models/components/directorymember.d.ts +78 -0
  82. package/models/components/directorymember.d.ts.map +1 -0
  83. package/models/components/directorymember.js +118 -0
  84. package/models/components/directorymember.js.map +1 -0
  85. package/models/components/directorymembercreate.d.ts +73 -0
  86. package/models/components/directorymembercreate.d.ts.map +1 -0
  87. package/models/components/directorymembercreate.js +116 -0
  88. package/models/components/directorymembercreate.js.map +1 -0
  89. package/models/components/directorymemberproperties.d.ts +40 -0
  90. package/models/components/directorymemberproperties.d.ts.map +1 -0
  91. package/models/components/directorymemberproperties.js +64 -0
  92. package/models/components/directorymemberproperties.js.map +1 -0
  93. package/models/components/index.d.ts +6 -0
  94. package/models/components/index.d.ts.map +1 -1
  95. package/models/components/index.js +6 -0
  96. package/models/components/index.js.map +1 -1
  97. package/models/components/listresponsedirectorymember.d.ts +53 -0
  98. package/models/components/listresponsedirectorymember.d.ts.map +1 -0
  99. package/models/components/listresponsedirectorymember.js +91 -0
  100. package/models/components/listresponsedirectorymember.js.map +1 -0
  101. package/models/components/toolparametertransformcondition.js +1 -1
  102. package/models/components/toolparametertransformcondition.js.map +1 -1
  103. package/models/operations/directorymemberdelete.d.ts +29 -0
  104. package/models/operations/directorymemberdelete.d.ts.map +1 -0
  105. package/models/operations/directorymemberdelete.js +78 -0
  106. package/models/operations/directorymemberdelete.js.map +1 -0
  107. package/models/operations/directorymembergetbyid.d.ts +29 -0
  108. package/models/operations/directorymembergetbyid.d.ts.map +1 -0
  109. package/models/operations/directorymembergetbyid.js +78 -0
  110. package/models/operations/directorymembergetbyid.js.map +1 -0
  111. package/models/operations/directorymemberlist.d.ts +73 -0
  112. package/models/operations/directorymemberlist.d.ts.map +1 -0
  113. package/models/operations/directorymemberlist.js +111 -0
  114. package/models/operations/directorymemberlist.js.map +1 -0
  115. package/models/operations/directorymemberupdate.d.ts +32 -0
  116. package/models/operations/directorymemberupdate.d.ts.map +1 -0
  117. package/models/operations/directorymemberupdate.js +83 -0
  118. package/models/operations/directorymemberupdate.js.map +1 -0
  119. package/models/operations/index.d.ts +4 -0
  120. package/models/operations/index.d.ts.map +1 -1
  121. package/models/operations/index.js +4 -0
  122. package/models/operations/index.js.map +1 -1
  123. package/openapi.json +40 -47
  124. package/package.json +1 -1
  125. package/sdk/directory.d.ts +55 -0
  126. package/sdk/directory.d.ts.map +1 -0
  127. package/sdk/directory.js +82 -0
  128. package/sdk/directory.js.map +1 -0
  129. package/sdk/sdk.d.ts +3 -0
  130. package/sdk/sdk.d.ts.map +1 -1
  131. package/sdk/sdk.js +4 -0
  132. package/sdk/sdk.js.map +1 -1
  133. package/src/funcs/directoryCreate.ts +169 -0
  134. package/src/funcs/directoryDelete.ts +177 -0
  135. package/src/funcs/directoryDirectoryMemberBulkLoad.ts +195 -0
  136. package/src/funcs/directoryDirectoryMemberDownload.ts +142 -0
  137. package/src/funcs/directoryGetById.ts +177 -0
  138. package/src/funcs/directoryList.ts +183 -0
  139. package/src/funcs/directoryUpdate.ts +178 -0
  140. package/src/lib/config.ts +3 -3
  141. package/src/mcp-server/mcp-server.ts +1 -1
  142. package/src/mcp-server/server.ts +15 -1
  143. package/src/mcp-server/tools/directoryCreate.ts +37 -0
  144. package/src/mcp-server/tools/directoryDelete.ts +37 -0
  145. package/src/mcp-server/tools/directoryDirectoryMemberBulkLoad.ts +39 -0
  146. package/src/mcp-server/tools/directoryDirectoryMemberDownload.ts +30 -0
  147. package/src/mcp-server/tools/directoryGetById.ts +37 -0
  148. package/src/mcp-server/tools/directoryList.ts +37 -0
  149. package/src/mcp-server/tools/directoryUpdate.ts +37 -0
  150. package/src/models/components/bodydirectorymemberbulkload.ts +145 -0
  151. package/src/models/components/directoryextension.ts +113 -0
  152. package/src/models/components/directorymember.ts +170 -0
  153. package/src/models/components/directorymembercreate.ts +175 -0
  154. package/src/models/components/directorymemberproperties.ts +39 -0
  155. package/src/models/components/index.ts +6 -0
  156. package/src/models/components/listresponsedirectorymember.ts +118 -0
  157. package/src/models/components/toolparametertransformcondition.ts +1 -1
  158. package/src/models/operations/directorymemberdelete.ts +77 -0
  159. package/src/models/operations/directorymembergetbyid.ts +77 -0
  160. package/src/models/operations/directorymemberlist.ts +155 -0
  161. package/src/models/operations/directorymemberupdate.ts +84 -0
  162. package/src/models/operations/index.ts +4 -0
  163. package/src/sdk/directory.ts +134 -0
  164. package/src/sdk/sdk.ts +6 -0
@@ -0,0 +1,169 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { SyllableSDKCore } from "../core.js";
6
+ import { encodeJSON } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import * as components from "../models/components/index.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import { SyllableSDKError } from "../models/errors/syllablesdkerror.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Create Directory Member
30
+ *
31
+ * @remarks
32
+ * Create a new member in the directory
33
+ */
34
+ export function directoryCreate(
35
+ client: SyllableSDKCore,
36
+ request: components.DirectoryMemberCreate,
37
+ options?: RequestOptions,
38
+ ): APIPromise<
39
+ Result<
40
+ components.DirectoryMember,
41
+ | errors.HTTPValidationError
42
+ | SyllableSDKError
43
+ | ResponseValidationError
44
+ | ConnectionError
45
+ | RequestAbortedError
46
+ | RequestTimeoutError
47
+ | InvalidRequestError
48
+ | UnexpectedClientError
49
+ | SDKValidationError
50
+ >
51
+ > {
52
+ return new APIPromise($do(
53
+ client,
54
+ request,
55
+ options,
56
+ ));
57
+ }
58
+
59
+ async function $do(
60
+ client: SyllableSDKCore,
61
+ request: components.DirectoryMemberCreate,
62
+ options?: RequestOptions,
63
+ ): Promise<
64
+ [
65
+ Result<
66
+ components.DirectoryMember,
67
+ | errors.HTTPValidationError
68
+ | SyllableSDKError
69
+ | ResponseValidationError
70
+ | ConnectionError
71
+ | RequestAbortedError
72
+ | RequestTimeoutError
73
+ | InvalidRequestError
74
+ | UnexpectedClientError
75
+ | SDKValidationError
76
+ >,
77
+ APICall,
78
+ ]
79
+ > {
80
+ const parsed = safeParse(
81
+ request,
82
+ (value) => components.DirectoryMemberCreate$outboundSchema.parse(value),
83
+ "Input validation failed",
84
+ );
85
+ if (!parsed.ok) {
86
+ return [parsed, { status: "invalid" }];
87
+ }
88
+ const payload = parsed.value;
89
+ const body = encodeJSON("body", payload, { explode: true });
90
+
91
+ const path = pathToFunc("/api/v1/directory_members/")();
92
+
93
+ const headers = new Headers(compactMap({
94
+ "Content-Type": "application/json",
95
+ Accept: "application/json",
96
+ }));
97
+
98
+ const secConfig = await extractSecurity(client._options.apiKeyHeader);
99
+ const securityInput = secConfig == null ? {} : { apiKeyHeader: secConfig };
100
+ const requestSecurity = resolveGlobalSecurity(securityInput);
101
+
102
+ const context = {
103
+ options: client._options,
104
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
105
+ operationID: "directory_member_create",
106
+ oAuth2Scopes: null,
107
+
108
+ resolvedSecurity: requestSecurity,
109
+
110
+ securitySource: client._options.apiKeyHeader,
111
+ retryConfig: options?.retries
112
+ || client._options.retryConfig
113
+ || { strategy: "none" },
114
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
115
+ };
116
+
117
+ const requestRes = client._createRequest(context, {
118
+ security: requestSecurity,
119
+ method: "POST",
120
+ baseURL: options?.serverURL,
121
+ path: path,
122
+ headers: headers,
123
+ body: body,
124
+ userAgent: client._options.userAgent,
125
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
126
+ }, options);
127
+ if (!requestRes.ok) {
128
+ return [requestRes, { status: "invalid" }];
129
+ }
130
+ const req = requestRes.value;
131
+
132
+ const doResult = await client._do(req, {
133
+ context,
134
+ errorCodes: ["422", "4XX", "5XX"],
135
+ retryConfig: context.retryConfig,
136
+ retryCodes: context.retryCodes,
137
+ });
138
+ if (!doResult.ok) {
139
+ return [doResult, { status: "request-error", request: req }];
140
+ }
141
+ const response = doResult.value;
142
+
143
+ const responseFields = {
144
+ HttpMeta: { Response: response, Request: req },
145
+ };
146
+
147
+ const [result] = await M.match<
148
+ components.DirectoryMember,
149
+ | errors.HTTPValidationError
150
+ | SyllableSDKError
151
+ | ResponseValidationError
152
+ | ConnectionError
153
+ | RequestAbortedError
154
+ | RequestTimeoutError
155
+ | InvalidRequestError
156
+ | UnexpectedClientError
157
+ | SDKValidationError
158
+ >(
159
+ M.json(200, components.DirectoryMember$inboundSchema),
160
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
161
+ M.fail("4XX"),
162
+ M.fail("5XX"),
163
+ )(response, req, { extraFields: responseFields });
164
+ if (!result.ok) {
165
+ return [result, { status: "complete", request: req, response }];
166
+ }
167
+
168
+ return [result, { status: "complete", request: req, response }];
169
+ }
@@ -0,0 +1,177 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { SyllableSDKCore } from "../core.js";
7
+ import { encodeSimple } from "../lib/encodings.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import { SyllableSDKError } from "../models/errors/syllablesdkerror.js";
25
+ import * as operations from "../models/operations/index.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Delete Directory Member
31
+ *
32
+ * @remarks
33
+ * Delete a DirectoryMember.
34
+ */
35
+ export function directoryDelete(
36
+ client: SyllableSDKCore,
37
+ request: operations.DirectoryMemberDeleteRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ any,
42
+ | errors.HTTPValidationError
43
+ | SyllableSDKError
44
+ | ResponseValidationError
45
+ | ConnectionError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | InvalidRequestError
49
+ | UnexpectedClientError
50
+ | SDKValidationError
51
+ >
52
+ > {
53
+ return new APIPromise($do(
54
+ client,
55
+ request,
56
+ options,
57
+ ));
58
+ }
59
+
60
+ async function $do(
61
+ client: SyllableSDKCore,
62
+ request: operations.DirectoryMemberDeleteRequest,
63
+ options?: RequestOptions,
64
+ ): Promise<
65
+ [
66
+ Result<
67
+ any,
68
+ | errors.HTTPValidationError
69
+ | SyllableSDKError
70
+ | ResponseValidationError
71
+ | ConnectionError
72
+ | RequestAbortedError
73
+ | RequestTimeoutError
74
+ | InvalidRequestError
75
+ | UnexpectedClientError
76
+ | SDKValidationError
77
+ >,
78
+ APICall,
79
+ ]
80
+ > {
81
+ const parsed = safeParse(
82
+ request,
83
+ (value) =>
84
+ operations.DirectoryMemberDeleteRequest$outboundSchema.parse(value),
85
+ "Input validation failed",
86
+ );
87
+ if (!parsed.ok) {
88
+ return [parsed, { status: "invalid" }];
89
+ }
90
+ const payload = parsed.value;
91
+ const body = null;
92
+
93
+ const pathParams = {
94
+ member_id: encodeSimple("member_id", payload.member_id, {
95
+ explode: false,
96
+ charEncoding: "percent",
97
+ }),
98
+ };
99
+
100
+ const path = pathToFunc("/api/v1/directory_members/{member_id}")(pathParams);
101
+
102
+ const headers = new Headers(compactMap({
103
+ Accept: "application/json",
104
+ }));
105
+
106
+ const secConfig = await extractSecurity(client._options.apiKeyHeader);
107
+ const securityInput = secConfig == null ? {} : { apiKeyHeader: secConfig };
108
+ const requestSecurity = resolveGlobalSecurity(securityInput);
109
+
110
+ const context = {
111
+ options: client._options,
112
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
113
+ operationID: "directory_member_delete",
114
+ oAuth2Scopes: null,
115
+
116
+ resolvedSecurity: requestSecurity,
117
+
118
+ securitySource: client._options.apiKeyHeader,
119
+ retryConfig: options?.retries
120
+ || client._options.retryConfig
121
+ || { strategy: "none" },
122
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
123
+ };
124
+
125
+ const requestRes = client._createRequest(context, {
126
+ security: requestSecurity,
127
+ method: "DELETE",
128
+ baseURL: options?.serverURL,
129
+ path: path,
130
+ headers: headers,
131
+ body: body,
132
+ userAgent: client._options.userAgent,
133
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
134
+ }, options);
135
+ if (!requestRes.ok) {
136
+ return [requestRes, { status: "invalid" }];
137
+ }
138
+ const req = requestRes.value;
139
+
140
+ const doResult = await client._do(req, {
141
+ context,
142
+ errorCodes: ["400", "404", "422", "4XX", "500", "5XX"],
143
+ retryConfig: context.retryConfig,
144
+ retryCodes: context.retryCodes,
145
+ });
146
+ if (!doResult.ok) {
147
+ return [doResult, { status: "request-error", request: req }];
148
+ }
149
+ const response = doResult.value;
150
+
151
+ const responseFields = {
152
+ HttpMeta: { Response: response, Request: req },
153
+ };
154
+
155
+ const [result] = await M.match<
156
+ any,
157
+ | errors.HTTPValidationError
158
+ | SyllableSDKError
159
+ | ResponseValidationError
160
+ | ConnectionError
161
+ | RequestAbortedError
162
+ | RequestTimeoutError
163
+ | InvalidRequestError
164
+ | UnexpectedClientError
165
+ | SDKValidationError
166
+ >(
167
+ M.json(200, z.any()),
168
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
169
+ M.fail([400, 404, "4XX"]),
170
+ M.fail([500, "5XX"]),
171
+ )(response, req, { extraFields: responseFields });
172
+ if (!result.ok) {
173
+ return [result, { status: "complete", request: req, response }];
174
+ }
175
+
176
+ return [result, { status: "complete", request: req, response }];
177
+ }
@@ -0,0 +1,195 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { SyllableSDKCore } from "../core.js";
7
+ import { appendForm } from "../lib/encodings.js";
8
+ import {
9
+ getContentTypeFromFileName,
10
+ readableStreamToArrayBuffer,
11
+ } from "../lib/files.js";
12
+ import * as M from "../lib/matchers.js";
13
+ import { compactMap } from "../lib/primitives.js";
14
+ import { safeParse } from "../lib/schemas.js";
15
+ import { RequestOptions } from "../lib/sdks.js";
16
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
17
+ import { pathToFunc } from "../lib/url.js";
18
+ import * as components from "../models/components/index.js";
19
+ import {
20
+ ConnectionError,
21
+ InvalidRequestError,
22
+ RequestAbortedError,
23
+ RequestTimeoutError,
24
+ UnexpectedClientError,
25
+ } from "../models/errors/httpclienterrors.js";
26
+ import * as errors from "../models/errors/index.js";
27
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
28
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
29
+ import { SyllableSDKError } from "../models/errors/syllablesdkerror.js";
30
+ import { APICall, APIPromise } from "../types/async.js";
31
+ import { isBlobLike } from "../types/blobs.js";
32
+ import { Result } from "../types/fp.js";
33
+ import { isReadableStream } from "../types/streams.js";
34
+
35
+ /**
36
+ * Bulk Load Directory Members
37
+ *
38
+ * @remarks
39
+ * Update Directory Members in chunks of 100.
40
+ */
41
+ export function directoryDirectoryMemberBulkLoad(
42
+ client: SyllableSDKCore,
43
+ request: components.BodyDirectoryMemberBulkLoad,
44
+ options?: RequestOptions,
45
+ ): APIPromise<
46
+ Result<
47
+ any,
48
+ | errors.HTTPValidationError
49
+ | SyllableSDKError
50
+ | ResponseValidationError
51
+ | ConnectionError
52
+ | RequestAbortedError
53
+ | RequestTimeoutError
54
+ | InvalidRequestError
55
+ | UnexpectedClientError
56
+ | SDKValidationError
57
+ >
58
+ > {
59
+ return new APIPromise($do(
60
+ client,
61
+ request,
62
+ options,
63
+ ));
64
+ }
65
+
66
+ async function $do(
67
+ client: SyllableSDKCore,
68
+ request: components.BodyDirectoryMemberBulkLoad,
69
+ options?: RequestOptions,
70
+ ): Promise<
71
+ [
72
+ Result<
73
+ any,
74
+ | errors.HTTPValidationError
75
+ | SyllableSDKError
76
+ | ResponseValidationError
77
+ | ConnectionError
78
+ | RequestAbortedError
79
+ | RequestTimeoutError
80
+ | InvalidRequestError
81
+ | UnexpectedClientError
82
+ | SDKValidationError
83
+ >,
84
+ APICall,
85
+ ]
86
+ > {
87
+ const parsed = safeParse(
88
+ request,
89
+ (value) =>
90
+ components.BodyDirectoryMemberBulkLoad$outboundSchema.parse(value),
91
+ "Input validation failed",
92
+ );
93
+ if (!parsed.ok) {
94
+ return [parsed, { status: "invalid" }];
95
+ }
96
+ const payload = parsed.value;
97
+ const body = new FormData();
98
+
99
+ if (isBlobLike(payload.file)) {
100
+ appendForm(body, "file", payload.file);
101
+ } else if (isReadableStream(payload.file.content)) {
102
+ const buffer = await readableStreamToArrayBuffer(payload.file.content);
103
+ const contentType = getContentTypeFromFileName(payload.file.fileName)
104
+ || "application/octet-stream";
105
+ const blob = new Blob([buffer], { type: contentType });
106
+ appendForm(body, "file", blob, payload.file.fileName);
107
+ } else {
108
+ const contentType = getContentTypeFromFileName(payload.file.fileName)
109
+ || "application/octet-stream";
110
+ appendForm(
111
+ body,
112
+ "file",
113
+ new Blob([payload.file.content], { type: contentType }),
114
+ payload.file.fileName,
115
+ );
116
+ }
117
+
118
+ const path = pathToFunc("/api/v1/directory_members/upload/")();
119
+
120
+ const headers = new Headers(compactMap({
121
+ Accept: "application/json",
122
+ }));
123
+
124
+ const secConfig = await extractSecurity(client._options.apiKeyHeader);
125
+ const securityInput = secConfig == null ? {} : { apiKeyHeader: secConfig };
126
+ const requestSecurity = resolveGlobalSecurity(securityInput);
127
+
128
+ const context = {
129
+ options: client._options,
130
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
131
+ operationID: "directory_member_bulk_load",
132
+ oAuth2Scopes: null,
133
+
134
+ resolvedSecurity: requestSecurity,
135
+
136
+ securitySource: client._options.apiKeyHeader,
137
+ retryConfig: options?.retries
138
+ || client._options.retryConfig
139
+ || { strategy: "none" },
140
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
141
+ };
142
+
143
+ const requestRes = client._createRequest(context, {
144
+ security: requestSecurity,
145
+ method: "PUT",
146
+ baseURL: options?.serverURL,
147
+ path: path,
148
+ headers: headers,
149
+ body: body,
150
+ userAgent: client._options.userAgent,
151
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
152
+ }, options);
153
+ if (!requestRes.ok) {
154
+ return [requestRes, { status: "invalid" }];
155
+ }
156
+ const req = requestRes.value;
157
+
158
+ const doResult = await client._do(req, {
159
+ context,
160
+ errorCodes: ["400", "404", "412", "422", "4XX", "500", "5XX"],
161
+ retryConfig: context.retryConfig,
162
+ retryCodes: context.retryCodes,
163
+ });
164
+ if (!doResult.ok) {
165
+ return [doResult, { status: "request-error", request: req }];
166
+ }
167
+ const response = doResult.value;
168
+
169
+ const responseFields = {
170
+ HttpMeta: { Response: response, Request: req },
171
+ };
172
+
173
+ const [result] = await M.match<
174
+ any,
175
+ | errors.HTTPValidationError
176
+ | SyllableSDKError
177
+ | ResponseValidationError
178
+ | ConnectionError
179
+ | RequestAbortedError
180
+ | RequestTimeoutError
181
+ | InvalidRequestError
182
+ | UnexpectedClientError
183
+ | SDKValidationError
184
+ >(
185
+ M.json(200, z.any()),
186
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
187
+ M.fail([400, 404, 412, "4XX"]),
188
+ M.fail([500, "5XX"]),
189
+ )(response, req, { extraFields: responseFields });
190
+ if (!result.ok) {
191
+ return [result, { status: "complete", request: req, response }];
192
+ }
193
+
194
+ return [result, { status: "complete", request: req, response }];
195
+ }
@@ -0,0 +1,142 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { SyllableSDKCore } from "../core.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { RequestOptions } from "../lib/sdks.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import {
13
+ ConnectionError,
14
+ InvalidRequestError,
15
+ RequestAbortedError,
16
+ RequestTimeoutError,
17
+ UnexpectedClientError,
18
+ } from "../models/errors/httpclienterrors.js";
19
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import { SyllableSDKError } from "../models/errors/syllablesdkerror.js";
22
+ import { APICall, APIPromise } from "../types/async.js";
23
+ import { Result } from "../types/fp.js";
24
+
25
+ /**
26
+ * Download Directory Members
27
+ *
28
+ * @remarks
29
+ * Download the entire directory as a JSON file.
30
+ */
31
+ export function directoryDirectoryMemberDownload(
32
+ client: SyllableSDKCore,
33
+ options?: RequestOptions,
34
+ ): APIPromise<
35
+ Result<
36
+ any,
37
+ | SyllableSDKError
38
+ | ResponseValidationError
39
+ | ConnectionError
40
+ | RequestAbortedError
41
+ | RequestTimeoutError
42
+ | InvalidRequestError
43
+ | UnexpectedClientError
44
+ | SDKValidationError
45
+ >
46
+ > {
47
+ return new APIPromise($do(
48
+ client,
49
+ options,
50
+ ));
51
+ }
52
+
53
+ async function $do(
54
+ client: SyllableSDKCore,
55
+ options?: RequestOptions,
56
+ ): Promise<
57
+ [
58
+ Result<
59
+ any,
60
+ | SyllableSDKError
61
+ | ResponseValidationError
62
+ | ConnectionError
63
+ | RequestAbortedError
64
+ | RequestTimeoutError
65
+ | InvalidRequestError
66
+ | UnexpectedClientError
67
+ | SDKValidationError
68
+ >,
69
+ APICall,
70
+ ]
71
+ > {
72
+ const path = pathToFunc("/api/v1/directory_members/download/")();
73
+
74
+ const headers = new Headers(compactMap({
75
+ Accept: "application/json",
76
+ }));
77
+
78
+ const secConfig = await extractSecurity(client._options.apiKeyHeader);
79
+ const securityInput = secConfig == null ? {} : { apiKeyHeader: secConfig };
80
+ const requestSecurity = resolveGlobalSecurity(securityInput);
81
+
82
+ const context = {
83
+ options: client._options,
84
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
85
+ operationID: "directory_member_download",
86
+ oAuth2Scopes: null,
87
+
88
+ resolvedSecurity: requestSecurity,
89
+
90
+ securitySource: client._options.apiKeyHeader,
91
+ retryConfig: options?.retries
92
+ || client._options.retryConfig
93
+ || { strategy: "none" },
94
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
95
+ };
96
+
97
+ const requestRes = client._createRequest(context, {
98
+ security: requestSecurity,
99
+ method: "GET",
100
+ baseURL: options?.serverURL,
101
+ path: path,
102
+ headers: headers,
103
+ userAgent: client._options.userAgent,
104
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
105
+ }, options);
106
+ if (!requestRes.ok) {
107
+ return [requestRes, { status: "invalid" }];
108
+ }
109
+ const req = requestRes.value;
110
+
111
+ const doResult = await client._do(req, {
112
+ context,
113
+ errorCodes: ["4XX", "500", "5XX"],
114
+ retryConfig: context.retryConfig,
115
+ retryCodes: context.retryCodes,
116
+ });
117
+ if (!doResult.ok) {
118
+ return [doResult, { status: "request-error", request: req }];
119
+ }
120
+ const response = doResult.value;
121
+
122
+ const [result] = await M.match<
123
+ any,
124
+ | SyllableSDKError
125
+ | ResponseValidationError
126
+ | ConnectionError
127
+ | RequestAbortedError
128
+ | RequestTimeoutError
129
+ | InvalidRequestError
130
+ | UnexpectedClientError
131
+ | SDKValidationError
132
+ >(
133
+ M.json(200, z.any()),
134
+ M.fail("4XX"),
135
+ M.fail([500, "5XX"]),
136
+ )(response, req);
137
+ if (!result.ok) {
138
+ return [result, { status: "complete", request: req, response }];
139
+ }
140
+
141
+ return [result, { status: "complete", request: req, response }];
142
+ }