@cloudinary/asset-management-mcp 0.7.0 → 0.8.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 (188) hide show
  1. package/README.md +46 -2
  2. package/bin/mcp-server.js +6852 -5586
  3. package/bin/mcp-server.js.map +30 -25
  4. package/esm/funcs/foldersAssignFolderRoles.d.ts +19 -0
  5. package/esm/funcs/foldersAssignFolderRoles.d.ts.map +1 -0
  6. package/esm/funcs/foldersAssignFolderRoles.js +101 -0
  7. package/esm/funcs/foldersAssignFolderRoles.js.map +1 -0
  8. package/esm/funcs/foldersGetFolderRoles.d.ts +15 -0
  9. package/esm/funcs/foldersGetFolderRoles.d.ts.map +1 -0
  10. package/esm/funcs/foldersGetFolderRoles.js +99 -0
  11. package/esm/funcs/foldersGetFolderRoles.js.map +1 -0
  12. package/esm/funcs/peopleGetPerson.d.ts +16 -0
  13. package/esm/funcs/peopleGetPerson.d.ts.map +1 -0
  14. package/esm/funcs/peopleGetPerson.js +95 -0
  15. package/esm/funcs/peopleGetPerson.js.map +1 -0
  16. package/esm/funcs/peopleListPeople.d.ts +19 -0
  17. package/esm/funcs/peopleListPeople.d.ts.map +1 -0
  18. package/esm/funcs/peopleListPeople.js +107 -0
  19. package/esm/funcs/peopleListPeople.js.map +1 -0
  20. package/esm/funcs/peopleUpdatePerson.d.ts +18 -0
  21. package/esm/funcs/peopleUpdatePerson.d.ts.map +1 -0
  22. package/esm/funcs/peopleUpdatePerson.js +98 -0
  23. package/esm/funcs/peopleUpdatePerson.js.map +1 -0
  24. package/esm/funcs/videoAnalyticsGetVideoViews.d.ts +2 -2
  25. package/esm/funcs/videoAnalyticsGetVideoViews.d.ts.map +1 -1
  26. package/esm/funcs/videoAnalyticsGetVideoViews.js.map +1 -1
  27. package/esm/landing-page.js +1 -1
  28. package/esm/lib/config.d.ts +4 -4
  29. package/esm/lib/config.js +4 -4
  30. package/esm/lib/security.d.ts.map +1 -1
  31. package/esm/lib/security.js.map +1 -1
  32. package/esm/mcp-server/cli/serve/command.d.ts +2 -0
  33. package/esm/mcp-server/cli/serve/command.d.ts.map +1 -0
  34. package/esm/mcp-server/cli/serve/command.js +140 -0
  35. package/esm/mcp-server/cli/serve/command.js.map +1 -0
  36. package/esm/mcp-server/cli/serve/impl.d.ts +12 -0
  37. package/esm/mcp-server/cli/serve/impl.d.ts.map +1 -0
  38. package/esm/mcp-server/cli/serve/impl.js +85 -0
  39. package/esm/mcp-server/cli/serve/impl.js.map +1 -0
  40. package/esm/mcp-server/mcp-server.d.ts.map +1 -1
  41. package/esm/mcp-server/mcp-server.js +3 -1
  42. package/esm/mcp-server/mcp-server.js.map +1 -1
  43. package/esm/mcp-server/server.js +1 -1
  44. package/esm/mcp-server/tools.d.ts +4 -0
  45. package/esm/mcp-server/tools.d.ts.map +1 -1
  46. package/esm/mcp-server/tools.js +40 -0
  47. package/esm/mcp-server/tools.js.map +1 -1
  48. package/esm/models/assignfolderrolesop.d.ts +16 -0
  49. package/esm/models/assignfolderrolesop.d.ts.map +1 -0
  50. package/esm/models/assignfolderrolesop.js +20 -0
  51. package/esm/models/assignfolderrolesop.js.map +1 -0
  52. package/esm/models/assignfolderrolesrequest.d.ts +33 -0
  53. package/esm/models/assignfolderrolesrequest.d.ts.map +1 -0
  54. package/esm/models/assignfolderrolesrequest.js +26 -0
  55. package/esm/models/assignfolderrolesrequest.js.map +1 -0
  56. package/esm/models/destroyassetop.d.ts +5 -3
  57. package/esm/models/destroyassetop.d.ts.map +1 -1
  58. package/esm/models/destroyassetop.js +5 -3
  59. package/esm/models/destroyassetop.js.map +1 -1
  60. package/esm/models/explicitassetop.d.ts +1 -67
  61. package/esm/models/explicitassetop.d.ts.map +1 -1
  62. package/esm/models/explicitassetop.js +1 -44
  63. package/esm/models/explicitassetop.js.map +1 -1
  64. package/esm/models/folderrole.d.ts +9 -0
  65. package/esm/models/folderrole.d.ts.map +1 -0
  66. package/esm/models/folderrole.js +11 -0
  67. package/esm/models/folderrole.js.map +1 -0
  68. package/esm/models/folderroleassignment.d.ts +11 -0
  69. package/esm/models/folderroleassignment.d.ts.map +1 -0
  70. package/esm/models/folderroleassignment.js +14 -0
  71. package/esm/models/folderroleassignment.js.map +1 -0
  72. package/esm/models/folderrolesresponse.d.ts +9 -0
  73. package/esm/models/folderrolesresponse.d.ts.map +1 -0
  74. package/esm/models/folderrolesresponse.js +12 -0
  75. package/esm/models/folderrolesresponse.js.map +1 -0
  76. package/esm/models/getfolderrolesop.d.ts +15 -0
  77. package/esm/models/getfolderrolesop.d.ts.map +1 -0
  78. package/esm/models/getfolderrolesop.js +18 -0
  79. package/esm/models/getfolderrolesop.js.map +1 -0
  80. package/esm/models/getpersonop.d.ts +21 -0
  81. package/esm/models/getpersonop.d.ts.map +1 -0
  82. package/esm/models/getpersonop.js +21 -0
  83. package/esm/models/getpersonop.js.map +1 -0
  84. package/esm/models/getvideoviewsop.d.ts +4 -4
  85. package/esm/models/getvideoviewsop.d.ts.map +1 -1
  86. package/esm/models/getvideoviewsop.js +3 -3
  87. package/esm/models/getvideoviewsop.js.map +1 -1
  88. package/esm/models/info.d.ts +25 -12
  89. package/esm/models/info.d.ts.map +1 -1
  90. package/esm/models/info.js +26 -8
  91. package/esm/models/info.js.map +1 -1
  92. package/esm/models/listpeopleop.d.ts +69 -0
  93. package/esm/models/listpeopleop.d.ts.map +1 -0
  94. package/esm/models/listpeopleop.js +60 -0
  95. package/esm/models/listpeopleop.js.map +1 -0
  96. package/esm/models/listresourcesbymoderationkindandstatusop.d.ts +1 -1
  97. package/esm/models/parametersdirection.d.ts +18 -0
  98. package/esm/models/parametersdirection.d.ts.map +1 -0
  99. package/esm/models/parametersdirection.js +16 -0
  100. package/esm/models/parametersdirection.js.map +1 -0
  101. package/esm/models/permittedrole.d.ts +8 -0
  102. package/esm/models/permittedrole.d.ts.map +1 -0
  103. package/esm/models/permittedrole.js +10 -0
  104. package/esm/models/permittedrole.js.map +1 -0
  105. package/esm/models/persondetails.d.ts +16 -0
  106. package/esm/models/persondetails.d.ts.map +1 -0
  107. package/esm/models/persondetails.js +15 -0
  108. package/esm/models/persondetails.js.map +1 -0
  109. package/esm/models/personstatus.d.ts +18 -0
  110. package/esm/models/personstatus.d.ts.map +1 -0
  111. package/esm/models/personstatus.js +16 -0
  112. package/esm/models/personstatus.js.map +1 -0
  113. package/esm/models/principaltype.d.ts +20 -0
  114. package/esm/models/principaltype.d.ts.map +1 -0
  115. package/esm/models/principaltype.js +18 -0
  116. package/esm/models/principaltype.js.map +1 -0
  117. package/esm/models/resourceupdaterequest.d.ts +4 -68
  118. package/esm/models/resourceupdaterequest.d.ts.map +1 -1
  119. package/esm/models/resourceupdaterequest.js +4 -53
  120. package/esm/models/resourceupdaterequest.js.map +1 -1
  121. package/esm/models/searchparameters.d.ts +1 -1
  122. package/esm/models/searchresponse.d.ts +4 -0
  123. package/esm/models/searchresponse.d.ts.map +1 -1
  124. package/esm/models/searchresponse.js +4 -0
  125. package/esm/models/searchresponse.js.map +1 -1
  126. package/esm/models/successresponse.d.ts +6 -0
  127. package/esm/models/successresponse.d.ts.map +1 -0
  128. package/esm/models/successresponse.js +8 -0
  129. package/esm/models/successresponse.js.map +1 -0
  130. package/esm/models/textop.d.ts +15 -15
  131. package/esm/models/textop.d.ts.map +1 -1
  132. package/esm/models/textop.js +15 -15
  133. package/esm/models/textop.js.map +1 -1
  134. package/esm/models/thumbnail.d.ts +15 -0
  135. package/esm/models/thumbnail.d.ts.map +1 -0
  136. package/esm/models/thumbnail.js +14 -0
  137. package/esm/models/thumbnail.js.map +1 -0
  138. package/esm/models/updatepersonop.d.ts +30 -0
  139. package/esm/models/updatepersonop.d.ts.map +1 -0
  140. package/esm/models/updatepersonop.js +31 -0
  141. package/esm/models/updatepersonop.js.map +1 -0
  142. package/esm/models/uploadrequest.d.ts +4 -136
  143. package/esm/models/uploadrequest.d.ts.map +1 -1
  144. package/esm/models/uploadrequest.js +4 -96
  145. package/esm/models/uploadrequest.js.map +1 -1
  146. package/package.json +1 -1
  147. package/src/funcs/foldersAssignFolderRoles.ts +173 -0
  148. package/src/funcs/foldersGetFolderRoles.ts +170 -0
  149. package/src/funcs/peopleGetPerson.ts +161 -0
  150. package/src/funcs/peopleListPeople.ts +195 -0
  151. package/src/funcs/peopleUpdatePerson.ts +168 -0
  152. package/src/funcs/videoAnalyticsGetVideoViews.ts +3 -3
  153. package/src/landing-page.ts +1 -1
  154. package/src/lib/config.ts +4 -4
  155. package/src/lib/security.ts +4 -1
  156. package/src/mcp-server/cli/serve/command.ts +147 -0
  157. package/src/mcp-server/cli/serve/impl.ts +114 -0
  158. package/src/mcp-server/mcp-server.ts +3 -1
  159. package/src/mcp-server/server.ts +1 -1
  160. package/src/mcp-server/tools.ts +89 -0
  161. package/src/models/assignfolderrolesop.ts +46 -0
  162. package/src/models/assignfolderrolesrequest.ts +52 -0
  163. package/src/models/destroyassetop.ts +7 -5
  164. package/src/models/explicitassetop.ts +2 -74
  165. package/src/models/folderrole.ts +19 -0
  166. package/src/models/folderroleassignment.ts +22 -0
  167. package/src/models/folderrolesresponse.ts +21 -0
  168. package/src/models/getfolderrolesop.ts +43 -0
  169. package/src/models/getpersonop.ts +43 -0
  170. package/src/models/getvideoviewsop.ts +5 -5
  171. package/src/models/info.ts +53 -17
  172. package/src/models/listpeopleop.ts +114 -0
  173. package/src/models/parametersdirection.ts +23 -0
  174. package/src/models/permittedrole.ts +13 -0
  175. package/src/models/persondetails.ts +28 -0
  176. package/src/models/personstatus.ts +23 -0
  177. package/src/models/principaltype.ts +25 -0
  178. package/src/models/resourceupdaterequest.ts +8 -87
  179. package/src/models/searchresponse.ts +4 -0
  180. package/src/models/successresponse.ts +11 -0
  181. package/src/models/textop.ts +30 -30
  182. package/src/models/thumbnail.ts +28 -0
  183. package/src/models/updatepersonop.ts +66 -0
  184. package/src/models/uploadrequest.ts +8 -162
  185. package/_speakeasy/.github/action-inputs-config.json +0 -53
  186. package/_speakeasy/.github/action-security-config.json +0 -88
  187. package/manifest.json +0 -169
  188. package/tsconfig.json +0 -35
@@ -0,0 +1,170 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CloudinaryAssetMgmtCore } from "../core.js";
6
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { safeParse } from "../lib/schemas.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 { APIError } from "../models/errors/apierror.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import {
22
+ GetFolderRolesRequest,
23
+ GetFolderRolesRequest$zodSchema,
24
+ } from "../models/getfolderrolesop.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Get folder roles
30
+ *
31
+ * @remarks
32
+ * Lists the principals (users, groups, or API keys) and their role assignments on a specific folder, including roles inherited from ancestor folders.
33
+ */
34
+ export function foldersGetFolderRoles(
35
+ client$: CloudinaryAssetMgmtCore,
36
+ folder_id: string,
37
+ permitted_roles?: boolean | undefined,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ folder_id,
54
+ permitted_roles,
55
+ options,
56
+ ));
57
+ }
58
+
59
+ async function $do(
60
+ client$: CloudinaryAssetMgmtCore,
61
+ folder_id: string,
62
+ permitted_roles?: boolean | undefined,
63
+ options?: RequestOptions,
64
+ ): Promise<
65
+ [
66
+ Result<
67
+ Response,
68
+ | APIError
69
+ | SDKValidationError
70
+ | UnexpectedClientError
71
+ | InvalidRequestError
72
+ | RequestAbortedError
73
+ | RequestTimeoutError
74
+ | ConnectionError
75
+ >,
76
+ APICall,
77
+ ]
78
+ > {
79
+ const input$: GetFolderRolesRequest = {
80
+ folder_id: folder_id,
81
+ permitted_roles: permitted_roles,
82
+ };
83
+
84
+ const parsed$ = safeParse(
85
+ input$,
86
+ (value$) => GetFolderRolesRequest$zodSchema.parse(value$),
87
+ "Input validation failed",
88
+ );
89
+ if (!parsed$.ok) {
90
+ return [parsed$, { status: "invalid" }];
91
+ }
92
+ const payload$ = parsed$.value;
93
+ const body$ = null;
94
+
95
+ const pathParams$ = {
96
+ cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
97
+ explode: false,
98
+ charEncoding: "percent",
99
+ }),
100
+ folder_id: encodeSimple("folder_id", payload$.folder_id, {
101
+ explode: false,
102
+ charEncoding: "percent",
103
+ }),
104
+ };
105
+ const path$ = pathToFunc(
106
+ "/v1_1/{cloud_name}/folder_operations/invite/{folder_id}",
107
+ )(
108
+ pathParams$,
109
+ );
110
+ const query$ = encodeFormQuery({
111
+ "permitted_roles": payload$.permitted_roles,
112
+ });
113
+
114
+ const headers$ = new Headers(compactMap({
115
+ Accept: "application/json",
116
+ }));
117
+ const securityInput = await extractSecurity(client$._options.security);
118
+ const requestSecurity = resolveGlobalSecurity(securityInput);
119
+
120
+ const context = {
121
+ options: client$._options,
122
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
123
+ operationID: "getFolderRoles",
124
+ oAuth2Scopes: null,
125
+ resolvedSecurity: requestSecurity,
126
+ securitySource: client$._options.security,
127
+ retryConfig: options?.retries
128
+ || client$._options.retryConfig
129
+ || { strategy: "none" },
130
+ retryCodes: options?.retryCodes || [
131
+ "429",
132
+ "500",
133
+ "502",
134
+ "503",
135
+ "504",
136
+ ],
137
+ };
138
+
139
+ const requestRes = client$._createRequest(context, {
140
+ security: requestSecurity,
141
+ method: "GET",
142
+ baseURL: options?.serverURL,
143
+ path: path$,
144
+ headers: headers$,
145
+ query: query$,
146
+ body: body$,
147
+ userAgent: client$._options.userAgent,
148
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
149
+ || -1,
150
+ }, options);
151
+ if (!requestRes.ok) {
152
+ return [requestRes, { status: "invalid" }];
153
+ }
154
+ const req$ = requestRes.value;
155
+
156
+ const doResult = await client$._do(req$, {
157
+ context,
158
+ errorCodes: [],
159
+ retryConfig: context.retryConfig,
160
+ retryCodes: context.retryCodes,
161
+ });
162
+ if (!doResult.ok) {
163
+ return [doResult, { status: "request-error", request: req$ }];
164
+ }
165
+ return [doResult, {
166
+ status: "complete",
167
+ "request": req$,
168
+ response: doResult.value,
169
+ }];
170
+ }
@@ -0,0 +1,161 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CloudinaryAssetMgmtCore } from "../core.js";
6
+ import { encodeSimple } from "../lib/encodings.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { safeParse } from "../lib/schemas.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 { APIError } from "../models/errors/apierror.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import {
22
+ GetPersonRequest,
23
+ GetPersonRequest$zodSchema,
24
+ } from "../models/getpersonop.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Get person details
30
+ *
31
+ * @remarks
32
+ * Returns details of a specific recognized person.
33
+ * People Search must be enabled for this product environment.
34
+ */
35
+ export function peopleGetPerson(
36
+ client$: CloudinaryAssetMgmtCore,
37
+ person_id: string,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ person_id,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: CloudinaryAssetMgmtCore,
60
+ person_id: string,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const input$: GetPersonRequest = {
78
+ person_id: person_id,
79
+ };
80
+
81
+ const parsed$ = safeParse(
82
+ input$,
83
+ (value$) => GetPersonRequest$zodSchema.parse(value$),
84
+ "Input validation failed",
85
+ );
86
+ if (!parsed$.ok) {
87
+ return [parsed$, { status: "invalid" }];
88
+ }
89
+ const payload$ = parsed$.value;
90
+ const body$ = null;
91
+
92
+ const pathParams$ = {
93
+ cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
94
+ explode: false,
95
+ charEncoding: "percent",
96
+ }),
97
+ person_id: encodeSimple("person_id", payload$.person_id, {
98
+ explode: false,
99
+ charEncoding: "percent",
100
+ }),
101
+ };
102
+ const path$ = pathToFunc("/v1_1/{cloud_name}/people/{person_id}")(
103
+ pathParams$,
104
+ );
105
+
106
+ const headers$ = new Headers(compactMap({
107
+ Accept: "application/json",
108
+ }));
109
+ const securityInput = await extractSecurity(client$._options.security);
110
+ const requestSecurity = resolveGlobalSecurity(securityInput);
111
+
112
+ const context = {
113
+ options: client$._options,
114
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
115
+ operationID: "getPerson",
116
+ oAuth2Scopes: null,
117
+ resolvedSecurity: requestSecurity,
118
+ securitySource: client$._options.security,
119
+ retryConfig: options?.retries
120
+ || client$._options.retryConfig
121
+ || { strategy: "none" },
122
+ retryCodes: options?.retryCodes || [
123
+ "429",
124
+ "500",
125
+ "502",
126
+ "503",
127
+ "504",
128
+ ],
129
+ };
130
+
131
+ const requestRes = client$._createRequest(context, {
132
+ security: requestSecurity,
133
+ method: "GET",
134
+ baseURL: options?.serverURL,
135
+ path: path$,
136
+ headers: headers$,
137
+ body: body$,
138
+ userAgent: client$._options.userAgent,
139
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
140
+ || -1,
141
+ }, options);
142
+ if (!requestRes.ok) {
143
+ return [requestRes, { status: "invalid" }];
144
+ }
145
+ const req$ = requestRes.value;
146
+
147
+ const doResult = await client$._do(req$, {
148
+ context,
149
+ errorCodes: [],
150
+ retryConfig: context.retryConfig,
151
+ retryCodes: context.retryCodes,
152
+ });
153
+ if (!doResult.ok) {
154
+ return [doResult, { status: "request-error", request: req$ }];
155
+ }
156
+ return [doResult, {
157
+ status: "complete",
158
+ "request": req$,
159
+ response: doResult.value,
160
+ }];
161
+ }
@@ -0,0 +1,195 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CloudinaryAssetMgmtCore } from "../core.js";
6
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { safeParse } from "../lib/schemas.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 { APIError } from "../models/errors/apierror.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import {
22
+ ListPeopleRequest,
23
+ ListPeopleRequest$zodSchema,
24
+ ListPeopleSortBy,
25
+ NameStatus,
26
+ } from "../models/listpeopleop.js";
27
+ import { ParametersDirection } from "../models/parametersdirection.js";
28
+ import { PersonStatus } from "../models/personstatus.js";
29
+ import { APICall, APIPromise } from "../types/async.js";
30
+ import { Result } from "../types/fp.js";
31
+
32
+ /**
33
+ * List recognized people
34
+ *
35
+ * @remarks
36
+ * Returns a list of all recognized people in your product environment.
37
+ * People Search must be enabled for this product environment.
38
+ */
39
+ export function peopleListPeople(
40
+ client$: CloudinaryAssetMgmtCore,
41
+ max_results?: number | undefined,
42
+ next_cursor?: string | undefined,
43
+ name_status?: NameStatus | undefined,
44
+ name_prefix?: string | undefined,
45
+ status?: PersonStatus | undefined,
46
+ sort_by?: ListPeopleSortBy | undefined,
47
+ direction?: ParametersDirection | undefined,
48
+ options?: RequestOptions,
49
+ ): APIPromise<
50
+ Result<
51
+ Response,
52
+ | APIError
53
+ | SDKValidationError
54
+ | UnexpectedClientError
55
+ | InvalidRequestError
56
+ | RequestAbortedError
57
+ | RequestTimeoutError
58
+ | ConnectionError
59
+ >
60
+ > {
61
+ return new APIPromise($do(
62
+ client$,
63
+ max_results,
64
+ next_cursor,
65
+ name_status,
66
+ name_prefix,
67
+ status,
68
+ sort_by,
69
+ direction,
70
+ options,
71
+ ));
72
+ }
73
+
74
+ async function $do(
75
+ client$: CloudinaryAssetMgmtCore,
76
+ max_results?: number | undefined,
77
+ next_cursor?: string | undefined,
78
+ name_status?: NameStatus | undefined,
79
+ name_prefix?: string | undefined,
80
+ status?: PersonStatus | undefined,
81
+ sort_by?: ListPeopleSortBy | undefined,
82
+ direction?: ParametersDirection | undefined,
83
+ options?: RequestOptions,
84
+ ): Promise<
85
+ [
86
+ Result<
87
+ Response,
88
+ | APIError
89
+ | SDKValidationError
90
+ | UnexpectedClientError
91
+ | InvalidRequestError
92
+ | RequestAbortedError
93
+ | RequestTimeoutError
94
+ | ConnectionError
95
+ >,
96
+ APICall,
97
+ ]
98
+ > {
99
+ const input$: ListPeopleRequest | undefined = {
100
+ max_results: max_results,
101
+ next_cursor: next_cursor,
102
+ name_status: name_status,
103
+ name_prefix: name_prefix,
104
+ status: status,
105
+ sort_by: sort_by,
106
+ direction: direction,
107
+ };
108
+
109
+ const parsed$ = safeParse(
110
+ input$,
111
+ (value$) => ListPeopleRequest$zodSchema.optional().parse(value$),
112
+ "Input validation failed",
113
+ );
114
+ if (!parsed$.ok) {
115
+ return [parsed$, { status: "invalid" }];
116
+ }
117
+ const payload$ = parsed$.value;
118
+ const body$ = null;
119
+
120
+ const pathParams$ = {
121
+ cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
122
+ explode: false,
123
+ charEncoding: "percent",
124
+ }),
125
+ };
126
+ const path$ = pathToFunc("/v1_1/{cloud_name}/people")(
127
+ pathParams$,
128
+ );
129
+ const query$ = encodeFormQuery({
130
+ "direction": payload$?.direction,
131
+ "max_results": payload$?.max_results,
132
+ "name_prefix": payload$?.name_prefix,
133
+ "name_status": payload$?.name_status,
134
+ "next_cursor": payload$?.next_cursor,
135
+ "sort_by": payload$?.sort_by,
136
+ "status": payload$?.status,
137
+ });
138
+
139
+ const headers$ = new Headers(compactMap({
140
+ Accept: "application/json",
141
+ }));
142
+ const securityInput = await extractSecurity(client$._options.security);
143
+ const requestSecurity = resolveGlobalSecurity(securityInput);
144
+
145
+ const context = {
146
+ options: client$._options,
147
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
148
+ operationID: "listPeople",
149
+ oAuth2Scopes: null,
150
+ resolvedSecurity: requestSecurity,
151
+ securitySource: client$._options.security,
152
+ retryConfig: options?.retries
153
+ || client$._options.retryConfig
154
+ || { strategy: "none" },
155
+ retryCodes: options?.retryCodes || [
156
+ "429",
157
+ "500",
158
+ "502",
159
+ "503",
160
+ "504",
161
+ ],
162
+ };
163
+
164
+ const requestRes = client$._createRequest(context, {
165
+ security: requestSecurity,
166
+ method: "GET",
167
+ baseURL: options?.serverURL,
168
+ path: path$,
169
+ headers: headers$,
170
+ query: query$,
171
+ body: body$,
172
+ userAgent: client$._options.userAgent,
173
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
174
+ || -1,
175
+ }, options);
176
+ if (!requestRes.ok) {
177
+ return [requestRes, { status: "invalid" }];
178
+ }
179
+ const req$ = requestRes.value;
180
+
181
+ const doResult = await client$._do(req$, {
182
+ context,
183
+ errorCodes: [],
184
+ retryConfig: context.retryConfig,
185
+ retryCodes: context.retryCodes,
186
+ });
187
+ if (!doResult.ok) {
188
+ return [doResult, { status: "request-error", request: req$ }];
189
+ }
190
+ return [doResult, {
191
+ status: "complete",
192
+ "request": req$,
193
+ response: doResult.value,
194
+ }];
195
+ }
@@ -0,0 +1,168 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CloudinaryAssetMgmtCore } from "../core.js";
6
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { safeParse } from "../lib/schemas.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 { APIError } from "../models/errors/apierror.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import {
22
+ UpdatePersonRequest,
23
+ UpdatePersonRequest$zodSchema,
24
+ UpdatePersonRequestBody,
25
+ } from "../models/updatepersonop.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Update a person
31
+ *
32
+ * @remarks
33
+ * Updates a recognized person's name, status, or thumbnail image.
34
+ * At least one of name, status, or thumbnail_asset_id must be provided.
35
+ * People Search must be enabled for this product environment.
36
+ */
37
+ export function peopleUpdatePerson(
38
+ client$: CloudinaryAssetMgmtCore,
39
+ person_id: string,
40
+ RequestBody: UpdatePersonRequestBody,
41
+ options?: RequestOptions,
42
+ ): APIPromise<
43
+ Result<
44
+ Response,
45
+ | APIError
46
+ | SDKValidationError
47
+ | UnexpectedClientError
48
+ | InvalidRequestError
49
+ | RequestAbortedError
50
+ | RequestTimeoutError
51
+ | ConnectionError
52
+ >
53
+ > {
54
+ return new APIPromise($do(
55
+ client$,
56
+ person_id,
57
+ RequestBody,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client$: CloudinaryAssetMgmtCore,
64
+ person_id: string,
65
+ RequestBody: UpdatePersonRequestBody,
66
+ options?: RequestOptions,
67
+ ): Promise<
68
+ [
69
+ Result<
70
+ Response,
71
+ | APIError
72
+ | SDKValidationError
73
+ | UnexpectedClientError
74
+ | InvalidRequestError
75
+ | RequestAbortedError
76
+ | RequestTimeoutError
77
+ | ConnectionError
78
+ >,
79
+ APICall,
80
+ ]
81
+ > {
82
+ const input$: UpdatePersonRequest = {
83
+ person_id: person_id,
84
+ RequestBody: RequestBody,
85
+ };
86
+
87
+ const parsed$ = safeParse(
88
+ input$,
89
+ (value$) => UpdatePersonRequest$zodSchema.parse(value$),
90
+ "Input validation failed",
91
+ );
92
+ if (!parsed$.ok) {
93
+ return [parsed$, { status: "invalid" }];
94
+ }
95
+ const payload$ = parsed$.value;
96
+ const body$ = encodeJSON("body", payload$.RequestBody, { explode: true });
97
+
98
+ const pathParams$ = {
99
+ cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
100
+ explode: false,
101
+ charEncoding: "percent",
102
+ }),
103
+ person_id: encodeSimple("person_id", payload$.person_id, {
104
+ explode: false,
105
+ charEncoding: "percent",
106
+ }),
107
+ };
108
+ const path$ = pathToFunc("/v1_1/{cloud_name}/people/{person_id}")(
109
+ pathParams$,
110
+ );
111
+
112
+ const headers$ = new Headers(compactMap({
113
+ "Content-Type": "application/json",
114
+ Accept: "application/json",
115
+ }));
116
+ const securityInput = await extractSecurity(client$._options.security);
117
+ const requestSecurity = resolveGlobalSecurity(securityInput);
118
+
119
+ const context = {
120
+ options: client$._options,
121
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
122
+ operationID: "updatePerson",
123
+ oAuth2Scopes: null,
124
+ resolvedSecurity: requestSecurity,
125
+ securitySource: client$._options.security,
126
+ retryConfig: options?.retries
127
+ || client$._options.retryConfig
128
+ || { strategy: "none" },
129
+ retryCodes: options?.retryCodes || [
130
+ "429",
131
+ "500",
132
+ "502",
133
+ "503",
134
+ "504",
135
+ ],
136
+ };
137
+
138
+ const requestRes = client$._createRequest(context, {
139
+ security: requestSecurity,
140
+ method: "PUT",
141
+ baseURL: options?.serverURL,
142
+ path: path$,
143
+ headers: headers$,
144
+ body: body$,
145
+ userAgent: client$._options.userAgent,
146
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
147
+ || -1,
148
+ }, options);
149
+ if (!requestRes.ok) {
150
+ return [requestRes, { status: "invalid" }];
151
+ }
152
+ const req$ = requestRes.value;
153
+
154
+ const doResult = await client$._do(req$, {
155
+ context,
156
+ errorCodes: [],
157
+ retryConfig: context.retryConfig,
158
+ retryCodes: context.retryCodes,
159
+ });
160
+ if (!doResult.ok) {
161
+ return [doResult, { status: "request-error", request: req$ }];
162
+ }
163
+ return [doResult, {
164
+ status: "complete",
165
+ "request": req$,
166
+ response: doResult.value,
167
+ }];
168
+ }