@satorijs/adapter-lark 3.4.1 → 3.5.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.
package/lib/index.cjs ADDED
@@ -0,0 +1,3210 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ Feishu: () => types_exports,
34
+ FeishuBot: () => LarkBot,
35
+ Lark: () => types_exports,
36
+ LarkBot: () => LarkBot,
37
+ default: () => src_default
38
+ });
39
+ module.exports = __toCommonJS(src_exports);
40
+
41
+ // src/bot.ts
42
+ var import_core5 = require("@satorijs/core");
43
+
44
+ // src/http.ts
45
+ var import_node_stream = require("node:stream");
46
+ var import_core2 = require("@satorijs/core");
47
+
48
+ // src/utils.ts
49
+ var import_crypto = __toESM(require("crypto"), 1);
50
+ var import_core = require("@satorijs/core");
51
+ function adaptSender(sender, session) {
52
+ let userId;
53
+ if ("sender_id" in sender) {
54
+ userId = sender.sender_id.open_id;
55
+ } else {
56
+ userId = sender.id;
57
+ }
58
+ session.userId = userId;
59
+ return session;
60
+ }
61
+ __name(adaptSender, "adaptSender");
62
+ async function adaptMessage(bot, data, session, details = true) {
63
+ const json = JSON.parse(data.message.content);
64
+ const assetEndpoint = (0, import_core.trimSlash)(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + "/assets";
65
+ const content = [];
66
+ switch (data.message.message_type) {
67
+ case "text": {
68
+ const text = json.text;
69
+ if (!data.message.mentions?.length) {
70
+ content.push(text);
71
+ break;
72
+ }
73
+ text.split(" ").forEach((word) => {
74
+ if (word.startsWith("@")) {
75
+ const mention = data.message.mentions.find((mention2) => mention2.key === word);
76
+ content.push(import_core.h.at(mention.id.open_id, { name: mention.name }));
77
+ } else {
78
+ content.push(word);
79
+ }
80
+ });
81
+ break;
82
+ }
83
+ case "image":
84
+ content.push(import_core.h.image(`${assetEndpoint}/image/${data.message.message_id}/${json.image_key}?self_id=${bot.selfId}`));
85
+ break;
86
+ case "audio":
87
+ content.push(import_core.h.audio(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`));
88
+ break;
89
+ case "media":
90
+ content.push(import_core.h.video(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key));
91
+ break;
92
+ case "file":
93
+ content.push(import_core.h.file(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`));
94
+ break;
95
+ }
96
+ session.timestamp = +data.message.create_time;
97
+ session.messageId = data.message.message_id;
98
+ session.channelId = data.message.chat_id;
99
+ session.guildId = data.message.chat_id;
100
+ session.content = content.map((c) => c.toString()).join(" ");
101
+ if (data.message.parent_id && details) {
102
+ session.quote = await bot.getMessage(session.channelId, data.message.parent_id, false);
103
+ }
104
+ return session;
105
+ }
106
+ __name(adaptMessage, "adaptMessage");
107
+ async function adaptSession(bot, body) {
108
+ const session = bot.session();
109
+ session.setInternal("lark", body);
110
+ switch (body.type) {
111
+ case "im.message.receive_v1":
112
+ session.type = "message";
113
+ session.subtype = body.event.message.chat_id;
114
+ if (session.subtype === "p2p")
115
+ session.subtype = "private";
116
+ session.isDirect = session.subtype === "private";
117
+ adaptSender(body.event.sender, session);
118
+ await adaptMessage(bot, body.event, session);
119
+ break;
120
+ }
121
+ return session;
122
+ }
123
+ __name(adaptSession, "adaptSession");
124
+ async function decodeMessage(bot, body, details = true) {
125
+ const json = JSON.parse(body.body.content);
126
+ const assetEndpoint = (0, import_core.trimSlash)(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + "/assets";
127
+ const content = [];
128
+ switch (body.msg_type) {
129
+ case "text": {
130
+ const text = json.text;
131
+ if (!body.mentions?.length) {
132
+ content.push(import_core.h.text(text));
133
+ break;
134
+ }
135
+ text.split(" ").forEach((word) => {
136
+ if (word.startsWith("@")) {
137
+ const mention = body.mentions.find((mention2) => mention2.key === word);
138
+ content.push(import_core.h.at(mention.id, { name: mention.name }));
139
+ } else {
140
+ content.push(import_core.h.text(word));
141
+ }
142
+ });
143
+ break;
144
+ }
145
+ case "image":
146
+ content.push(import_core.h.image(`${assetEndpoint}/image/${body.message_id}/${json.image_key}?self_id=${bot.selfId}`));
147
+ break;
148
+ case "audio":
149
+ content.push(import_core.h.audio(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`));
150
+ break;
151
+ case "media":
152
+ content.push(import_core.h.video(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key));
153
+ break;
154
+ case "file":
155
+ content.push(import_core.h.file(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`));
156
+ break;
157
+ }
158
+ return {
159
+ timestamp: +body.update_time,
160
+ createdAt: +body.create_time,
161
+ updatedAt: +body.update_time,
162
+ id: body.message_id,
163
+ messageId: body.message_id,
164
+ user: {
165
+ id: body.sender.id
166
+ },
167
+ channel: {
168
+ id: body.chat_id,
169
+ type: import_core.Universal.Channel.Type.TEXT
170
+ },
171
+ content: content.map((c) => c.toString()).join(" "),
172
+ elements: content,
173
+ quote: body.upper_message_id && details ? await bot.getMessage(body.chat_id, body.upper_message_id, false) : void 0
174
+ };
175
+ }
176
+ __name(decodeMessage, "decodeMessage");
177
+ function extractIdType(id) {
178
+ if (id.startsWith("ou"))
179
+ return "open_id";
180
+ if (id.startsWith("on"))
181
+ return "union_id";
182
+ if (id.startsWith("oc"))
183
+ return "chat_id";
184
+ if (id.includes("@"))
185
+ return "email";
186
+ return "user_id";
187
+ }
188
+ __name(extractIdType, "extractIdType");
189
+ function decodeChannel(channelId, guild) {
190
+ return {
191
+ id: channelId,
192
+ type: import_core.Universal.Channel.Type.TEXT,
193
+ name: guild.name,
194
+ parentId: channelId
195
+ };
196
+ }
197
+ __name(decodeChannel, "decodeChannel");
198
+ function decodeGuild(guild) {
199
+ return {
200
+ id: guild.chat_id,
201
+ name: guild.name,
202
+ avatar: guild.avatar
203
+ };
204
+ }
205
+ __name(decodeGuild, "decodeGuild");
206
+ function decodeUser(user) {
207
+ return {
208
+ id: user.open_id,
209
+ avatar: user.avatar?.avatar_origin,
210
+ isBot: false,
211
+ name: user.name
212
+ };
213
+ }
214
+ __name(decodeUser, "decodeUser");
215
+ var Cipher = class {
216
+ static {
217
+ __name(this, "Cipher");
218
+ }
219
+ encryptKey;
220
+ key;
221
+ constructor(key) {
222
+ this.encryptKey = key;
223
+ const hash = import_crypto.default.createHash("sha256");
224
+ hash.update(key);
225
+ this.key = hash.digest();
226
+ }
227
+ decrypt(encrypt) {
228
+ const encryptBuffer = Buffer.from(encrypt, "base64");
229
+ const decipher = import_crypto.default.createDecipheriv("aes-256-cbc", this.key, encryptBuffer.slice(0, 16));
230
+ let decrypted = decipher.update(encryptBuffer.slice(16).toString("hex"), "hex", "utf8");
231
+ decrypted += decipher.final("utf8");
232
+ return decrypted;
233
+ }
234
+ calculateSignature(timestamp, nonce, body) {
235
+ const content = timestamp + nonce + this.encryptKey + body;
236
+ const sign = import_crypto.default.createHash("sha256").update(content).digest("hex");
237
+ return sign;
238
+ }
239
+ };
240
+
241
+ // src/http.ts
242
+ var HttpServer = class extends import_core2.Adapter {
243
+ static {
244
+ __name(this, "HttpServer");
245
+ }
246
+ static inject = ["server"];
247
+ logger;
248
+ ciphers = {};
249
+ constructor(ctx, bot) {
250
+ super(ctx);
251
+ this.logger = ctx.logger("lark");
252
+ }
253
+ fork(ctx, bot) {
254
+ super.fork(ctx, bot);
255
+ this._refreshCipher();
256
+ return bot.initialize();
257
+ }
258
+ async connect(bot) {
259
+ const { path } = bot.config;
260
+ bot.ctx.server.post(path, (ctx) => {
261
+ this._refreshCipher();
262
+ const signature = ctx.get("X-Lark-Signature");
263
+ const enabledSignatureVerify = this.bots.filter((bot2) => bot2.config.verifySignature);
264
+ if (signature && enabledSignatureVerify.length) {
265
+ const result = enabledSignatureVerify.some((bot2) => {
266
+ const timestamp = ctx.get("X-Lark-Request-Timestamp");
267
+ const nonce = ctx.get("X-Lark-Request-Nonce");
268
+ const body2 = ctx.request.rawBody;
269
+ const actualSignature = this.ciphers[bot2.config.appId]?.calculateSignature(timestamp, nonce, body2);
270
+ if (actualSignature === signature)
271
+ return true;
272
+ else
273
+ return false;
274
+ });
275
+ if (!result)
276
+ return ctx.status = 403;
277
+ }
278
+ const body = this._tryDecryptBody(ctx.request.body);
279
+ if (body?.type === "url_verification" && body?.challenge && typeof body.challenge === "string") {
280
+ ctx.response.body = { challenge: body.challenge };
281
+ return;
282
+ }
283
+ const enabledVerifyTokenVerify = this.bots.filter((bot2) => bot2.config.verifyToken && bot2.config.verificationToken);
284
+ if (enabledVerifyTokenVerify.length) {
285
+ const token = ctx.request.body?.token;
286
+ if (token) {
287
+ const result = enabledVerifyTokenVerify.some((bot2) => {
288
+ if (token === bot2.config.verificationToken)
289
+ return true;
290
+ else
291
+ return false;
292
+ });
293
+ if (!result)
294
+ return ctx.status = 403;
295
+ }
296
+ }
297
+ bot.logger.debug("received decryped event: %o", body);
298
+ this.dispatchSession(body);
299
+ return ctx.status = 200;
300
+ });
301
+ bot.ctx.server.get(path + "/assets/:type/:message_id/:key", async (ctx) => {
302
+ const type = ctx.params.type === "image" ? "image" : "file";
303
+ const key = ctx.params.key;
304
+ const messageId = ctx.params.message_id;
305
+ const selfId = ctx.request.query.self_id;
306
+ const bot2 = this.bots.find((bot3) => bot3.selfId === selfId);
307
+ if (!bot2)
308
+ return ctx.status = 404;
309
+ const resp = await bot2.http(`/im/v1/messages/${messageId}/resources/${key}`, {
310
+ method: "GET",
311
+ params: { type },
312
+ responseType: "stream"
313
+ });
314
+ ctx.set("content-type", resp.headers.get("content-type"));
315
+ ctx.status = 200;
316
+ ctx.response.body = import_node_stream.Readable.fromWeb(resp.data);
317
+ });
318
+ }
319
+ async dispatchSession(body) {
320
+ const { header } = body;
321
+ if (!header)
322
+ return;
323
+ const { app_id, event_type } = header;
324
+ body.type = event_type;
325
+ const bot = this.bots.find((bot2) => bot2.appId === app_id);
326
+ const session = await adaptSession(bot, body);
327
+ bot.dispatch(session);
328
+ }
329
+ _tryDecryptBody(body) {
330
+ this._refreshCipher();
331
+ const ciphers = Object.values(this.ciphers);
332
+ if (ciphers.length && typeof body.encrypt === "string") {
333
+ for (const cipher of ciphers) {
334
+ try {
335
+ return JSON.parse(cipher.decrypt(body.encrypt));
336
+ } catch {
337
+ }
338
+ }
339
+ this.logger.warn("failed to decrypt message: %o", body);
340
+ }
341
+ if (typeof body.encrypt === "string" && !ciphers.length) {
342
+ this.logger.warn("encryptKey is not set, but received encrypted message: %o", body);
343
+ }
344
+ return body;
345
+ }
346
+ _refreshCipher() {
347
+ const ciphers = Object.keys(this.ciphers);
348
+ const bots = this.bots.map((bot) => bot.config.appId);
349
+ if (bots.length === ciphers.length && bots.every((bot) => ciphers.includes(bot)))
350
+ return;
351
+ this.ciphers = {};
352
+ for (const bot of this.bots) {
353
+ this.ciphers[bot.config.appId] = new Cipher(bot.config.encryptKey);
354
+ }
355
+ }
356
+ };
357
+ ((HttpServer2) => {
358
+ HttpServer2.createConfig = /* @__PURE__ */ __name((path) => import_core2.Schema.object({
359
+ path: import_core2.Schema.string().role("url").description("要连接的服务器地址。").default(path),
360
+ selfUrl: import_core2.Schema.string().role("link").description("服务器暴露在公网的地址。缺省时将使用全局配置。"),
361
+ verifyToken: import_core2.Schema.boolean().description("是否验证令牌。"),
362
+ verifySignature: import_core2.Schema.boolean().description("是否验证签名。")
363
+ }).description("服务端设置"), "createConfig");
364
+ })(HttpServer || (HttpServer = {}));
365
+
366
+ // src/message.ts
367
+ var import_core3 = require("@satorijs/core");
368
+ var LarkMessageEncoder = class extends import_core3.MessageEncoder {
369
+ static {
370
+ __name(this, "LarkMessageEncoder");
371
+ }
372
+ quote;
373
+ content = "";
374
+ addition;
375
+ // TODO: currently not used, would be supported in the future
376
+ richText;
377
+ async post(data) {
378
+ try {
379
+ let resp;
380
+ if (this.quote) {
381
+ resp = await this.bot.internal.replyImMessage(this.quote, data);
382
+ } else {
383
+ data.receive_id = this.channelId;
384
+ resp = await this.bot.internal?.createImMessage(data, {
385
+ receive_id_type: extractIdType(this.channelId)
386
+ });
387
+ }
388
+ const session = this.bot.session();
389
+ session.messageId = resp.data.message_id;
390
+ session.timestamp = Number(resp.data.create_time) * 1e3;
391
+ session.userId = resp.data.sender.id;
392
+ session.channelId = this.channelId;
393
+ session.guildId = this.guildId;
394
+ session.app.emit(session, "send", session);
395
+ this.results.push(session.event.message);
396
+ } catch (e) {
397
+ if (this.bot.http.isError(e)) {
398
+ if (e.response?.data?.code) {
399
+ const generalErrorMsg = `Check error code at https://open.larksuite.com/document/server-docs/getting-started/server-error-codes`;
400
+ e.message += ` (Lark error code ${e.response.data.code}: ${e.response.data.msg ?? generalErrorMsg})`;
401
+ }
402
+ }
403
+ this.errors.push(e);
404
+ }
405
+ }
406
+ async flush() {
407
+ if (this.content === "" && !this.addition && !this.richText)
408
+ return;
409
+ let message;
410
+ if (this.addition) {
411
+ message = {
412
+ ...message,
413
+ ...this.addition.file
414
+ };
415
+ }
416
+ if (this.richText) {
417
+ message = { zh_cn: this.richText };
418
+ }
419
+ if (this.content) {
420
+ message = { text: this.content };
421
+ }
422
+ await this.post({
423
+ msg_type: this.richText ? "post" : this.addition ? this.addition.type : "text",
424
+ content: JSON.stringify(message)
425
+ });
426
+ this.quote = void 0;
427
+ this.content = "";
428
+ this.addition = void 0;
429
+ this.richText = void 0;
430
+ }
431
+ async sendFile(type, url) {
432
+ const payload = new FormData();
433
+ const assetKey = type === "img" || type === "image" ? "image" : "file";
434
+ const { filename, mime, data } = await this.bot.assetsQuester.file(url);
435
+ payload.append(assetKey, new Blob([data], { type: mime }), filename);
436
+ if (type === "img" || type === "image") {
437
+ payload.append("image_type", "message");
438
+ const { data: data2 } = await this.bot.internal.createImImage(payload);
439
+ return {
440
+ type: "image",
441
+ file: {
442
+ image_key: data2.image_key
443
+ }
444
+ };
445
+ } else {
446
+ let msgType = "file";
447
+ if (type === "audio") {
448
+ payload.append("file_type", "opus");
449
+ msgType = "audio";
450
+ } else if (type === "video") {
451
+ payload.append("file_type", "mp4");
452
+ msgType = "media";
453
+ } else {
454
+ const ext = filename.split(".").pop();
455
+ if (["xls", "ppt", "pdf"].includes(ext)) {
456
+ payload.append("file_type", ext);
457
+ } else {
458
+ payload.append("file_type", "stream");
459
+ }
460
+ }
461
+ payload.append("file_name", filename);
462
+ const { data: data2 } = await this.bot.internal.createImFile(payload);
463
+ return {
464
+ type: msgType,
465
+ file: {
466
+ file_key: data2.file_key
467
+ }
468
+ };
469
+ }
470
+ }
471
+ async visit(element) {
472
+ const { type, attrs, children } = element;
473
+ switch (type) {
474
+ case "text":
475
+ this.content += attrs.content;
476
+ break;
477
+ case "at": {
478
+ if (attrs.type === "all") {
479
+ this.content += `<at user_id="all">${attrs.name ?? "所有人"}</at>`;
480
+ } else {
481
+ this.content += `<at user_id="${attrs.id}">${attrs.name}</at>`;
482
+ }
483
+ break;
484
+ }
485
+ case "a":
486
+ await this.render(children);
487
+ if (attrs.href)
488
+ this.content += ` (${attrs.href})`;
489
+ break;
490
+ case "p":
491
+ if (!this.content.endsWith("\n"))
492
+ this.content += "\n";
493
+ await this.render(children);
494
+ if (!this.content.endsWith("\n"))
495
+ this.content += "\n";
496
+ break;
497
+ case "br":
498
+ this.content += "\n";
499
+ break;
500
+ case "sharp":
501
+ break;
502
+ case "quote":
503
+ await this.flush();
504
+ this.quote = attrs.id;
505
+ break;
506
+ case "img":
507
+ case "image":
508
+ case "video":
509
+ case "audio":
510
+ case "file":
511
+ if (attrs.src || attrs.url) {
512
+ await this.flush();
513
+ this.addition = await this.sendFile(type, attrs.src || attrs.url);
514
+ await this.flush();
515
+ }
516
+ break;
517
+ case "figure":
518
+ case "message":
519
+ await this.flush();
520
+ await this.render(children, true);
521
+ break;
522
+ default:
523
+ await this.render(children);
524
+ }
525
+ }
526
+ };
527
+
528
+ // src/types/index.ts
529
+ var types_exports = {};
530
+ __export(types_exports, {
531
+ Internal: () => Internal
532
+ });
533
+
534
+ // src/types/internal.ts
535
+ var import_core4 = require("@satorijs/core");
536
+ var Internal = class _Internal {
537
+ constructor(bot) {
538
+ this.bot = bot;
539
+ }
540
+ static {
541
+ __name(this, "Internal");
542
+ }
543
+ processReponse(response) {
544
+ const { code, msg } = response;
545
+ if (code === 0) {
546
+ return response;
547
+ } else {
548
+ this.bot.logger.debug("response: %o", response);
549
+ throw new Error(`HTTP response with non-zero status (${code}) with message "${msg}"`);
550
+ }
551
+ }
552
+ static define(routes) {
553
+ for (const path in routes) {
554
+ for (const key in routes[path]) {
555
+ const method = key;
556
+ for (const name of (0, import_core4.makeArray)(routes[path][method])) {
557
+ _Internal.prototype[name] = async function(...args) {
558
+ const raw = args.join(", ");
559
+ const url = path.replace(/\{([^}]+)\}/g, () => {
560
+ if (!args.length)
561
+ throw new Error(`too few arguments for ${path}, received ${raw}`);
562
+ return args.shift();
563
+ });
564
+ const config = {};
565
+ if (args.length === 1) {
566
+ if (method === "GET" || method === "DELETE") {
567
+ config.params = args[0];
568
+ } else {
569
+ config.data = args[0];
570
+ }
571
+ } else if (args.length === 2 && method !== "GET" && method !== "DELETE") {
572
+ config.data = args[0];
573
+ config.params = args[1];
574
+ } else if (args.length > 1) {
575
+ throw new Error(`too many arguments for ${path}, received ${raw}`);
576
+ }
577
+ return this.processReponse((await this.bot.http(method, url, config)).data);
578
+ };
579
+ }
580
+ }
581
+ }
582
+ }
583
+ };
584
+
585
+ // src/types/api.ts
586
+ Internal.define({
587
+ "/event/v1/outbound_ip": {
588
+ GET: "listEventOutboundIp"
589
+ },
590
+ "/auth/v3/tenant_access_token/internal": {
591
+ POST: "tenantAccessTokenInternalAuth"
592
+ },
593
+ "/auth/v3/app_access_token/internal": {
594
+ POST: "appAccessTokenInternalAuth"
595
+ },
596
+ "/auth/v3/app_access_token": {
597
+ POST: "appAccessTokenAuth"
598
+ },
599
+ "/auth/v3/tenant_access_token": {
600
+ POST: "tenantAccessTokenAuth"
601
+ },
602
+ "/authen/v1/oidc/access_token": {
603
+ POST: "createAuthenOidcAccessToken"
604
+ },
605
+ "/authen/v1/oidc/refresh_access_token": {
606
+ POST: "createAuthenOidcRefreshAccessToken"
607
+ },
608
+ "/auth/v3/app_ticket/resend": {
609
+ POST: "appTicketResendAuth"
610
+ },
611
+ "/authen/v1/user_info": {
612
+ GET: "getAuthenUserInfo"
613
+ },
614
+ "/passport/v1/sessions/query": {
615
+ POST: "queryPassportSession"
616
+ },
617
+ "/contact/v3/scopes": {
618
+ GET: "listContactScope"
619
+ },
620
+ "/contact/v3/users": {
621
+ POST: "createContactUser",
622
+ GET: "listContactUser"
623
+ },
624
+ "/contact/v3/users/{user_id}": {
625
+ DELETE: "deleteContactUser",
626
+ PATCH: "patchContactUser",
627
+ GET: "getContactUser",
628
+ PUT: "updateContactUser"
629
+ },
630
+ "/contact/v3/users/{user_id}/resurrect": {
631
+ POST: "resurrectContactUser"
632
+ },
633
+ "/contact/v3/users/batch": {
634
+ GET: "batchContactUser"
635
+ },
636
+ "/contact/v3/users/find_by_department": {
637
+ GET: "findByDepartmentContactUser"
638
+ },
639
+ "/contact/v3/users/batch_get_id": {
640
+ POST: "batchGetIdContactUser"
641
+ },
642
+ "/contact/v3/users/{user_id}/update_user_id": {
643
+ PATCH: "updateUserIdContactUser"
644
+ },
645
+ "/contact/v3/group": {
646
+ POST: "createContactGroup"
647
+ },
648
+ "/contact/v3/group/{group_id}": {
649
+ DELETE: "deleteContactGroup",
650
+ PATCH: "patchContactGroup",
651
+ GET: "getContactGroup"
652
+ },
653
+ "/contact/v3/group/simplelist": {
654
+ GET: "simplelistContactGroup"
655
+ },
656
+ "/contact/v3/group/member_belong": {
657
+ GET: "memberBelongContactGroup"
658
+ },
659
+ "/contact/v3/custom_attrs": {
660
+ GET: "listContactCustomAttr"
661
+ },
662
+ "/contact/v3/employee_type_enums": {
663
+ POST: "createContactEmployeeTypeEnum",
664
+ GET: "listContactEmployeeTypeEnum"
665
+ },
666
+ "/contact/v3/employee_type_enums/{enum_id}": {
667
+ DELETE: "deleteContactEmployeeTypeEnum",
668
+ PUT: "updateContactEmployeeTypeEnum"
669
+ },
670
+ "/contact/v3/departments": {
671
+ POST: "createContactDepartment",
672
+ GET: "listContactDepartment"
673
+ },
674
+ "/contact/v3/departments/{department_id}": {
675
+ DELETE: "deleteContactDepartment",
676
+ PATCH: "patchContactDepartment",
677
+ PUT: "updateContactDepartment",
678
+ GET: "getContactDepartment"
679
+ },
680
+ "/contact/v3/departments/unbind_department_chat": {
681
+ POST: "unbindDepartmentChatContactDepartment"
682
+ },
683
+ "/contact/v3/departments/batch": {
684
+ GET: "batchContactDepartment"
685
+ },
686
+ "/contact/v3/departments/{department_id}/children": {
687
+ GET: "childrenContactDepartment"
688
+ },
689
+ "/contact/v3/departments/parent": {
690
+ GET: "parentContactDepartment"
691
+ },
692
+ "/contact/v3/departments/search": {
693
+ POST: "searchContactDepartment"
694
+ },
695
+ "/contact/v3/departments/{department_id}/update_department_id": {
696
+ PATCH: "updateDepartmentIdContactDepartment"
697
+ },
698
+ "/contact/v3/unit": {
699
+ POST: "createContactUnit",
700
+ GET: "listContactUnit"
701
+ },
702
+ "/contact/v3/unit/{unit_id}": {
703
+ DELETE: "deleteContactUnit",
704
+ PATCH: "patchContactUnit",
705
+ GET: "getContactUnit"
706
+ },
707
+ "/contact/v3/unit/bind_department": {
708
+ POST: "bindDepartmentContactUnit"
709
+ },
710
+ "/contact/v3/unit/unbind_department": {
711
+ POST: "unbindDepartmentContactUnit"
712
+ },
713
+ "/contact/v3/unit/list_department": {
714
+ GET: "listDepartmentContactUnit"
715
+ },
716
+ "/contact/v3/group/{group_id}/member/add": {
717
+ POST: "addContactGroupMember"
718
+ },
719
+ "/contact/v3/group/{group_id}/member/batch_add": {
720
+ POST: "batchAddContactGroupMember"
721
+ },
722
+ "/contact/v3/group/{group_id}/member/remove": {
723
+ POST: "removeContactGroupMember"
724
+ },
725
+ "/contact/v3/group/{group_id}/member/batch_remove": {
726
+ POST: "batchRemoveContactGroupMember"
727
+ },
728
+ "/contact/v3/group/{group_id}/member/simplelist": {
729
+ GET: "simplelistContactGroupMember"
730
+ },
731
+ "/contact/v3/functional_roles": {
732
+ POST: "createContactFunctionalRole"
733
+ },
734
+ "/contact/v3/functional_roles/{role_id}": {
735
+ DELETE: "deleteContactFunctionalRole",
736
+ PUT: "updateContactFunctionalRole"
737
+ },
738
+ "/contact/v3/functional_roles/{role_id}/members/batch_create": {
739
+ POST: "batchCreateContactFunctionalRoleMember"
740
+ },
741
+ "/contact/v3/functional_roles/{role_id}/members/batch_delete": {
742
+ PATCH: "batchDeleteContactFunctionalRoleMember"
743
+ },
744
+ "/contact/v3/functional_roles/{role_id}/members/scopes": {
745
+ PATCH: "scopesContactFunctionalRoleMember"
746
+ },
747
+ "/contact/v3/functional_roles/{role_id}/members/{member_id}": {
748
+ GET: "getContactFunctionalRoleMember"
749
+ },
750
+ "/contact/v3/functional_roles/{role_id}/members": {
751
+ GET: "listContactFunctionalRoleMember"
752
+ },
753
+ "/contact/v3/job_levels": {
754
+ POST: "createContactJobLevel",
755
+ GET: "listContactJobLevel"
756
+ },
757
+ "/contact/v3/job_levels/{job_level_id}": {
758
+ DELETE: "deleteContactJobLevel",
759
+ PUT: "updateContactJobLevel",
760
+ GET: "getContactJobLevel"
761
+ },
762
+ "/contact/v3/job_families": {
763
+ POST: "createContactJobFamily",
764
+ GET: "listContactJobFamily"
765
+ },
766
+ "/contact/v3/job_families/{job_family_id}": {
767
+ DELETE: "deleteContactJobFamily",
768
+ PUT: "updateContactJobFamily",
769
+ GET: "getContactJobFamily"
770
+ },
771
+ "/contact/v3/job_titles/{job_title_id}": {
772
+ GET: "getContactJobTitle"
773
+ },
774
+ "/contact/v3/job_titles": {
775
+ GET: "listContactJobTitle"
776
+ },
777
+ "/contact/v3/work_cities/{work_city_id}": {
778
+ GET: "getContactWorkCity"
779
+ },
780
+ "/contact/v3/work_cities": {
781
+ GET: "listContactWorkCity"
782
+ },
783
+ "/im/v1/messages": {
784
+ POST: "createImMessage",
785
+ GET: "listImMessage"
786
+ },
787
+ "/im/v1/messages/{message_id}/reply": {
788
+ POST: "replyImMessage"
789
+ },
790
+ "/im/v1/messages/{message_id}": {
791
+ PUT: "updateImMessage",
792
+ DELETE: "deleteImMessage",
793
+ GET: "getImMessage",
794
+ PATCH: "patchImMessage"
795
+ },
796
+ "/im/v1/messages/{message_id}/forward": {
797
+ POST: "forwardImMessage"
798
+ },
799
+ "/im/v1/messages/merge_forward": {
800
+ POST: "mergeForwardImMessage"
801
+ },
802
+ "/im/v1/threads/{thread_id}/forward": {
803
+ POST: "forwardImThread"
804
+ },
805
+ "/im/v1/messages/{message_id}/read_users": {
806
+ GET: "readUsersImMessage"
807
+ },
808
+ "/im/v1/messages/{message_id}/resources/{file_key}": {
809
+ GET: "getImMessageResource"
810
+ },
811
+ "/im/v1/messages/{message_id}/urgent_app": {
812
+ PATCH: "urgentAppImMessage"
813
+ },
814
+ "/im/v1/messages/{message_id}/urgent_sms": {
815
+ PATCH: "urgentSmsImMessage"
816
+ },
817
+ "/im/v1/messages/{message_id}/urgent_phone": {
818
+ PATCH: "urgentPhoneImMessage"
819
+ },
820
+ "/im/v1/batch_messages/{batch_message_id}": {
821
+ DELETE: "deleteImBatchMessage"
822
+ },
823
+ "/im/v1/batch_messages/{batch_message_id}/read_user": {
824
+ GET: "readUserImBatchMessage"
825
+ },
826
+ "/im/v1/batch_messages/{batch_message_id}/get_progress": {
827
+ GET: "getProgressImBatchMessage"
828
+ },
829
+ "/im/v1/images": {
830
+ POST: "createImImage"
831
+ },
832
+ "/im/v1/images/{image_key}": {
833
+ GET: "getImImage"
834
+ },
835
+ "/im/v1/files": {
836
+ POST: "createImFile"
837
+ },
838
+ "/im/v1/files/{file_key}": {
839
+ GET: "getImFile"
840
+ },
841
+ "/im/v1/messages/{message_id}/reactions": {
842
+ POST: "createImMessageReaction",
843
+ GET: "listImMessageReaction"
844
+ },
845
+ "/im/v1/messages/{message_id}/reactions/{reaction_id}": {
846
+ DELETE: "deleteImMessageReaction"
847
+ },
848
+ "/im/v1/pins": {
849
+ POST: "createImPin",
850
+ GET: "listImPin"
851
+ },
852
+ "/im/v1/pins/{message_id}": {
853
+ DELETE: "deleteImPin"
854
+ },
855
+ "/im/v1/chats": {
856
+ POST: "createImChat",
857
+ GET: "listImChat"
858
+ },
859
+ "/im/v1/chats/{chat_id}": {
860
+ DELETE: "deleteImChat",
861
+ PUT: "updateImChat",
862
+ GET: "getImChat"
863
+ },
864
+ "/im/v1/chats/{chat_id}/moderation": {
865
+ PUT: "updateImChatModeration",
866
+ GET: "getImChatModeration"
867
+ },
868
+ "/im/v1/chats/{chat_id}/top_notice/put_top_notice": {
869
+ POST: "putTopNoticeImChatTopNotice"
870
+ },
871
+ "/im/v1/chats/{chat_id}/top_notice/delete_top_notice": {
872
+ POST: "deleteTopNoticeImChatTopNotice"
873
+ },
874
+ "/im/v1/chats/search": {
875
+ GET: "searchImChat"
876
+ },
877
+ "/im/v1/chats/{chat_id}/link": {
878
+ POST: "linkImChat"
879
+ },
880
+ "/im/v1/chats/{chat_id}/managers/add_managers": {
881
+ POST: "addManagersImChatManagers"
882
+ },
883
+ "/im/v1/chats/{chat_id}/managers/delete_managers": {
884
+ POST: "deleteManagersImChatManagers"
885
+ },
886
+ "/im/v1/chats/{chat_id}/members": {
887
+ POST: "createImChatMembers",
888
+ DELETE: "deleteImChatMembers",
889
+ GET: "getImChatMembers"
890
+ },
891
+ "/im/v1/chats/{chat_id}/members/me_join": {
892
+ PATCH: "meJoinImChatMembers"
893
+ },
894
+ "/im/v1/chats/{chat_id}/members/is_in_chat": {
895
+ GET: "isInChatImChatMembers"
896
+ },
897
+ "/im/v1/chats/{chat_id}/announcement": {
898
+ PATCH: "patchImChatAnnouncement",
899
+ GET: "getImChatAnnouncement"
900
+ },
901
+ "/im/v1/chats/{chat_id}/chat_tabs": {
902
+ POST: "createImChatTab"
903
+ },
904
+ "/im/v1/chats/{chat_id}/chat_tabs/delete_tabs": {
905
+ DELETE: "deleteTabsImChatTab"
906
+ },
907
+ "/im/v1/chats/{chat_id}/chat_tabs/update_tabs": {
908
+ POST: "updateTabsImChatTab"
909
+ },
910
+ "/im/v1/chats/{chat_id}/chat_tabs/sort_tabs": {
911
+ POST: "sortTabsImChatTab"
912
+ },
913
+ "/im/v1/chats/{chat_id}/chat_tabs/list_tabs": {
914
+ GET: "listTabsImChatTab"
915
+ },
916
+ "/im/v1/chats/{chat_id}/menu_tree": {
917
+ POST: "createImChatMenuTree",
918
+ DELETE: "deleteImChatMenuTree",
919
+ GET: "getImChatMenuTree"
920
+ },
921
+ "/im/v1/chats/{chat_id}/menu_items/{menu_item_id}": {
922
+ PATCH: "patchImChatMenuItem"
923
+ },
924
+ "/im/v1/chats/{chat_id}/menu_tree/sort": {
925
+ POST: "sortImChatMenuTree"
926
+ },
927
+ "/drive/v1/files": {
928
+ GET: "listDrivev1File"
929
+ },
930
+ "/drive/v1/files/create_folder": {
931
+ POST: "createFolderDrivev1File"
932
+ },
933
+ "/drive/v1/metas/batch_query": {
934
+ POST: "batchQueryDrivev1Meta"
935
+ },
936
+ "/drive/v1/files/{file_token}/statistics": {
937
+ GET: "getDrivev1FileStatistics"
938
+ },
939
+ "/drive/v1/files/{file_token}/copy": {
940
+ POST: "copyDrivev1File"
941
+ },
942
+ "/drive/v1/files/{file_token}/move": {
943
+ POST: "moveDrivev1File"
944
+ },
945
+ "/drive/v1/files/{file_token}": {
946
+ DELETE: "deleteDrivev1File"
947
+ },
948
+ "/drive/v1/files/create_shortcut": {
949
+ POST: "createShortcutDrivev1File"
950
+ },
951
+ "/drive/v1/files/task_check": {
952
+ GET: "taskCheckDrivev1File"
953
+ },
954
+ "/drive/v1/medias/upload_all": {
955
+ POST: "uploadAllDrivev1Media"
956
+ },
957
+ "/drive/v1/medias/{file_token}/download": {
958
+ GET: "downloadDrivev1Media"
959
+ },
960
+ "/drive/v1/medias/batch_get_tmp_download_url": {
961
+ GET: "batchGetTmpDownloadUrlDrivev1Media"
962
+ },
963
+ "/drive/v1/medias/upload_prepare": {
964
+ POST: "uploadPrepareDrivev1Media"
965
+ },
966
+ "/drive/v1/medias/upload_part": {
967
+ POST: "uploadPartDrivev1Media"
968
+ },
969
+ "/drive/v1/medias/upload_finish": {
970
+ POST: "uploadFinishDrivev1Media"
971
+ },
972
+ "/drive/v1/files/{file_token}/subscribe": {
973
+ POST: "subscribeDrivev1File"
974
+ },
975
+ "/drive/v1/files/{file_token}/delete_subscribe": {
976
+ DELETE: "deleteSubscribeDrivev1File"
977
+ },
978
+ "/drive/v1/files/{file_token}/get_subscribe": {
979
+ GET: "getSubscribeDrivev1File"
980
+ },
981
+ "/drive/v1/files/upload_all": {
982
+ POST: "uploadAllDrivev1File"
983
+ },
984
+ "/drive/v1/files/upload_prepare": {
985
+ POST: "uploadPrepareDrivev1File"
986
+ },
987
+ "/drive/v1/files/upload_part": {
988
+ POST: "uploadPartDrivev1File"
989
+ },
990
+ "/drive/v1/files/upload_finish": {
991
+ POST: "uploadFinishDrivev1File"
992
+ },
993
+ "/drive/v1/files/{file_token}/download": {
994
+ GET: "downloadDrivev1File"
995
+ },
996
+ "/drive/v1/import_tasks": {
997
+ POST: "createDrivev1ImportTask"
998
+ },
999
+ "/drive/v1/import_tasks/{ticket}": {
1000
+ GET: "getDrivev1ImportTask"
1001
+ },
1002
+ "/drive/v1/export_tasks": {
1003
+ POST: "createDrivev1ExportTask"
1004
+ },
1005
+ "/drive/v1/export_tasks/{ticket}": {
1006
+ GET: "getDrivev1ExportTask"
1007
+ },
1008
+ "/drive/v1/export_tasks/file/{file_token}/download": {
1009
+ GET: "downloadDrivev1ExportTask"
1010
+ },
1011
+ "/drive/v1/files/{file_token}/view_records": {
1012
+ GET: "listDrivev1FileViewRecord"
1013
+ },
1014
+ "/drive/v1/files/{file_token}/versions": {
1015
+ POST: "createDrivev1FileVersion",
1016
+ GET: "listDrivev1FileVersion"
1017
+ },
1018
+ "/drive/v1/files/{file_token}/versions/{version_id}": {
1019
+ DELETE: "deleteDrivev1FileVersion",
1020
+ GET: "getDrivev1FileVersion"
1021
+ },
1022
+ "/drive/v1/permissions/{token}/members/transfer_owner": {
1023
+ POST: "transferOwnerDrivev1PermissionMember"
1024
+ },
1025
+ "/drive/v1/permissions/{token}/members/auth": {
1026
+ GET: "authDrivev1PermissionMember"
1027
+ },
1028
+ "/drive/v1/permissions/{token}/members": {
1029
+ GET: "listDrivev1PermissionMember",
1030
+ POST: "createDrivev1PermissionMember"
1031
+ },
1032
+ "/drive/v1/permissions/{token}/members/{member_id}": {
1033
+ PUT: "updateDrivev1PermissionMember",
1034
+ DELETE: "deleteDrivev1PermissionMember"
1035
+ },
1036
+ "/drive/v1/permissions/{token}/public/password": {
1037
+ POST: "createDrivev1PermissionPublicPassword",
1038
+ PUT: "updateDrivev1PermissionPublicPassword",
1039
+ DELETE: "deleteDrivev1PermissionPublicPassword"
1040
+ },
1041
+ "/drive/v1/permissions/{token}/public": {
1042
+ GET: "getDrivev1PermissionPublic",
1043
+ PATCH: "patchDrivev1PermissionPublic"
1044
+ },
1045
+ "/drive/v2/permissions/{token}/public": {
1046
+ GET: "getDrivev2PermissionPublic",
1047
+ PATCH: "patchDrivev2PermissionPublic"
1048
+ },
1049
+ "/drive/v1/files/{file_token}/comments": {
1050
+ GET: "listDrivev1FileComment",
1051
+ POST: "createDrivev1FileComment"
1052
+ },
1053
+ "/drive/v1/files/{file_token}/comments/batch_query": {
1054
+ POST: "batchQueryDrivev1FileComment"
1055
+ },
1056
+ "/drive/v1/files/{file_token}/comments/{comment_id}": {
1057
+ PATCH: "patchDrivev1FileComment",
1058
+ GET: "getDrivev1FileComment"
1059
+ },
1060
+ "/drive/v1/files/{file_token}/comments/{comment_id}/replies": {
1061
+ GET: "listDrivev1FileCommentReply"
1062
+ },
1063
+ "/drive/v1/files/{file_token}/comments/{comment_id}/replies/{reply_id}": {
1064
+ PUT: "updateDrivev1FileCommentReply",
1065
+ DELETE: "deleteDrivev1FileCommentReply"
1066
+ },
1067
+ "/docx/v1/documents/{document_id}": {
1068
+ GET: "getDocxDocument"
1069
+ },
1070
+ "/docx/v1/documents/{document_id}/raw_content": {
1071
+ GET: "rawContentDocxDocument"
1072
+ },
1073
+ "/docx/v1/documents/{document_id}/blocks": {
1074
+ GET: "listDocxDocumentBlock"
1075
+ },
1076
+ "/docx/v1/documents": {
1077
+ POST: "createDocxDocument"
1078
+ },
1079
+ "/docx/v1/documents/{document_id}/blocks/{block_id}": {
1080
+ GET: "getDocxDocumentBlock",
1081
+ PATCH: "patchDocxDocumentBlock"
1082
+ },
1083
+ "/docx/v1/documents/{document_id}/blocks/{block_id}/children": {
1084
+ GET: "getDocxDocumentBlockChildren",
1085
+ POST: "createDocxDocumentBlockChildren"
1086
+ },
1087
+ "/docx/v1/documents/{document_id}/blocks/batch_update": {
1088
+ PATCH: "batchUpdateDocxDocumentBlock"
1089
+ },
1090
+ "/docx/v1/documents/{document_id}/blocks/{block_id}/children/batch_delete": {
1091
+ DELETE: "batchDeleteDocxDocumentBlockChildren"
1092
+ },
1093
+ "/board/v1/whiteboards/{whiteboard_id}/nodes": {
1094
+ GET: "listBoardWhiteboardNode"
1095
+ },
1096
+ "/sheets/v3/spreadsheets/{spreadsheet_token}": {
1097
+ PATCH: "patchSheetsSpreadsheet",
1098
+ GET: "getSheetsSpreadsheet"
1099
+ },
1100
+ "/sheets/v3/spreadsheets": {
1101
+ POST: "createSheetsSpreadsheet"
1102
+ },
1103
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}": {
1104
+ GET: "getSheetsSpreadsheetSheet"
1105
+ },
1106
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/query": {
1107
+ GET: "querySheetsSpreadsheetSheet"
1108
+ },
1109
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/move_dimension": {
1110
+ POST: "moveDimensionSheetsSpreadsheetSheet"
1111
+ },
1112
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/find": {
1113
+ POST: "findSheetsSpreadsheetSheet"
1114
+ },
1115
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/replace": {
1116
+ POST: "replaceSheetsSpreadsheetSheet"
1117
+ },
1118
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter": {
1119
+ GET: "getSheetsSpreadsheetSheetFilter",
1120
+ POST: "createSheetsSpreadsheetSheetFilter",
1121
+ PUT: "updateSheetsSpreadsheetSheetFilter",
1122
+ DELETE: "deleteSheetsSpreadsheetSheetFilter"
1123
+ },
1124
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}": {
1125
+ GET: "getSheetsSpreadsheetSheetFilterView",
1126
+ PATCH: "patchSheetsSpreadsheetSheetFilterView",
1127
+ DELETE: "deleteSheetsSpreadsheetSheetFilterView"
1128
+ },
1129
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/query": {
1130
+ GET: "querySheetsSpreadsheetSheetFilterView"
1131
+ },
1132
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views": {
1133
+ POST: "createSheetsSpreadsheetSheetFilterView"
1134
+ },
1135
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/{condition_id}": {
1136
+ GET: "getSheetsSpreadsheetSheetFilterViewCondition",
1137
+ PUT: "updateSheetsSpreadsheetSheetFilterViewCondition",
1138
+ DELETE: "deleteSheetsSpreadsheetSheetFilterViewCondition"
1139
+ },
1140
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/query": {
1141
+ GET: "querySheetsSpreadsheetSheetFilterViewCondition"
1142
+ },
1143
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions": {
1144
+ POST: "createSheetsSpreadsheetSheetFilterViewCondition"
1145
+ },
1146
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/{float_image_id}": {
1147
+ GET: "getSheetsSpreadsheetSheetFloatImage",
1148
+ PATCH: "patchSheetsSpreadsheetSheetFloatImage",
1149
+ DELETE: "deleteSheetsSpreadsheetSheetFloatImage"
1150
+ },
1151
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/query": {
1152
+ GET: "querySheetsSpreadsheetSheetFloatImage"
1153
+ },
1154
+ "/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images": {
1155
+ POST: "createSheetsSpreadsheetSheetFloatImage"
1156
+ },
1157
+ "/bitable/v1/apps/{app_token}/copy": {
1158
+ POST: "copyBitableApp"
1159
+ },
1160
+ "/bitable/v1/apps": {
1161
+ POST: "createBitableApp"
1162
+ },
1163
+ "/bitable/v1/apps/{app_token}": {
1164
+ GET: "getBitableApp",
1165
+ PUT: "updateBitableApp"
1166
+ },
1167
+ "/bitable/v1/apps/{app_token}/tables": {
1168
+ POST: "createBitableAppTable",
1169
+ GET: "listBitableAppTable"
1170
+ },
1171
+ "/bitable/v1/apps/{app_token}/tables/batch_create": {
1172
+ POST: "batchCreateBitableAppTable"
1173
+ },
1174
+ "/bitable/v1/apps/{app_token}/tables/{table_id}": {
1175
+ DELETE: "deleteBitableAppTable",
1176
+ PATCH: "patchBitableAppTable"
1177
+ },
1178
+ "/bitable/v1/apps/{app_token}/tables/batch_delete": {
1179
+ POST: "batchDeleteBitableAppTable"
1180
+ },
1181
+ "/bitable/v1/apps/{app_token}/dashboards/{block_id}/copy": {
1182
+ POST: "copyBitableAppDashboard"
1183
+ },
1184
+ "/bitable/v1/apps/{app_token}/dashboards": {
1185
+ GET: "listBitableAppDashboard"
1186
+ },
1187
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}": {
1188
+ PATCH: "patchBitableAppTableView",
1189
+ GET: "getBitableAppTableView",
1190
+ DELETE: "deleteBitableAppTableView"
1191
+ },
1192
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/views": {
1193
+ GET: "listBitableAppTableView",
1194
+ POST: "createBitableAppTableView"
1195
+ },
1196
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}": {
1197
+ PATCH: "patchBitableAppTableForm",
1198
+ GET: "getBitableAppTableForm"
1199
+ },
1200
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}/fields/{field_id}": {
1201
+ PATCH: "patchBitableAppTableFormField"
1202
+ },
1203
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}/fields": {
1204
+ GET: "listBitableAppTableFormField"
1205
+ },
1206
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}": {
1207
+ GET: "getBitableAppTableRecord",
1208
+ PUT: "updateBitableAppTableRecord",
1209
+ DELETE: "deleteBitableAppTableRecord"
1210
+ },
1211
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records/search": {
1212
+ POST: "searchBitableAppTableRecord"
1213
+ },
1214
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records": {
1215
+ POST: "createBitableAppTableRecord",
1216
+ GET: "listBitableAppTableRecord"
1217
+ },
1218
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_create": {
1219
+ POST: "batchCreateBitableAppTableRecord"
1220
+ },
1221
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_update": {
1222
+ POST: "batchUpdateBitableAppTableRecord"
1223
+ },
1224
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_delete": {
1225
+ POST: "batchDeleteBitableAppTableRecord"
1226
+ },
1227
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/fields": {
1228
+ GET: "listBitableAppTableField",
1229
+ POST: "createBitableAppTableField"
1230
+ },
1231
+ "/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}": {
1232
+ PUT: "updateBitableAppTableField",
1233
+ DELETE: "deleteBitableAppTableField"
1234
+ },
1235
+ "/bitable/v1/apps/{app_token}/roles": {
1236
+ GET: "listBitableAppRole",
1237
+ POST: "createBitableAppRole"
1238
+ },
1239
+ "/bitable/v1/apps/{app_token}/roles/{role_id}": {
1240
+ DELETE: "deleteBitableAppRole",
1241
+ PUT: "updateBitableAppRole"
1242
+ },
1243
+ "/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_delete": {
1244
+ POST: "batchDeleteBitableAppRoleMember"
1245
+ },
1246
+ "/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_create": {
1247
+ POST: "batchCreateBitableAppRoleMember"
1248
+ },
1249
+ "/bitable/v1/apps/{app_token}/roles/{role_id}/members": {
1250
+ GET: "listBitableAppRoleMember",
1251
+ POST: "createBitableAppRoleMember"
1252
+ },
1253
+ "/bitable/v1/apps/{app_token}/roles/{role_id}/members/{member_id}": {
1254
+ DELETE: "deleteBitableAppRoleMember"
1255
+ },
1256
+ "/wiki/v2/spaces": {
1257
+ GET: "listWikiSpace",
1258
+ POST: "createWikiSpace"
1259
+ },
1260
+ "/wiki/v2/spaces/{space_id}": {
1261
+ GET: "getWikiSpace"
1262
+ },
1263
+ "/wiki/v2/spaces/{space_id}/members": {
1264
+ POST: "createWikiSpaceMember"
1265
+ },
1266
+ "/wiki/v2/spaces/{space_id}/members/{member_id}": {
1267
+ DELETE: "deleteWikiSpaceMember"
1268
+ },
1269
+ "/wiki/v2/spaces/{space_id}/setting": {
1270
+ PUT: "updateWikiSpaceSetting"
1271
+ },
1272
+ "/wiki/v2/spaces/{space_id}/nodes": {
1273
+ POST: "createWikiSpaceNode",
1274
+ GET: "listWikiSpaceNode"
1275
+ },
1276
+ "/wiki/v2/spaces/get_node": {
1277
+ GET: "getNodeWikiSpace"
1278
+ },
1279
+ "/wiki/v2/spaces/{space_id}/nodes/{node_token}/move": {
1280
+ POST: "moveWikiSpaceNode"
1281
+ },
1282
+ "/wiki/v2/spaces/{space_id}/nodes/{node_token}/update_title": {
1283
+ POST: "updateTitleWikiSpaceNode"
1284
+ },
1285
+ "/wiki/v2/spaces/{space_id}/nodes/{node_token}/copy": {
1286
+ POST: "copyWikiSpaceNode"
1287
+ },
1288
+ "/wiki/v2/spaces/{space_id}/nodes/move_docs_to_wiki": {
1289
+ POST: "moveDocsToWikiWikiSpaceNode"
1290
+ },
1291
+ "/wiki/v2/tasks/{task_id}": {
1292
+ GET: "getWikiTask"
1293
+ },
1294
+ "/wiki/v1/nodes/search": {
1295
+ POST: "searchWikiNode"
1296
+ },
1297
+ "/drive/v1/files/{file_token}/subscriptions/{subscription_id}": {
1298
+ GET: "getDrivev1FileSubscription",
1299
+ PATCH: "patchDrivev1FileSubscription"
1300
+ },
1301
+ "/drive/v1/files/{file_token}/subscriptions": {
1302
+ POST: "createDrivev1FileSubscription"
1303
+ },
1304
+ "/calendar/v4/calendars": {
1305
+ POST: "createCalendar",
1306
+ GET: "listCalendar"
1307
+ },
1308
+ "/calendar/v4/calendars/{calendar_id}": {
1309
+ DELETE: "deleteCalendar",
1310
+ GET: "getCalendar",
1311
+ PATCH: "patchCalendar"
1312
+ },
1313
+ "/calendar/v4/calendars/primary": {
1314
+ POST: "primaryCalendar"
1315
+ },
1316
+ "/calendar/v4/freebusy/list": {
1317
+ POST: "listCalendarFreebusy"
1318
+ },
1319
+ "/calendar/v4/calendars/search": {
1320
+ POST: "searchCalendar"
1321
+ },
1322
+ "/calendar/v4/calendars/{calendar_id}/subscribe": {
1323
+ POST: "subscribeCalendar"
1324
+ },
1325
+ "/calendar/v4/calendars/{calendar_id}/unsubscribe": {
1326
+ POST: "unsubscribeCalendar"
1327
+ },
1328
+ "/calendar/v4/calendars/subscription": {
1329
+ POST: "subscriptionCalendar"
1330
+ },
1331
+ "/calendar/v4/calendars/unsubscription": {
1332
+ POST: "unsubscriptionCalendar"
1333
+ },
1334
+ "/calendar/v4/calendars/{calendar_id}/acls": {
1335
+ POST: "createCalendarCalendarAcl",
1336
+ GET: "listCalendarCalendarAcl"
1337
+ },
1338
+ "/calendar/v4/calendars/{calendar_id}/acls/{acl_id}": {
1339
+ DELETE: "deleteCalendarCalendarAcl"
1340
+ },
1341
+ "/calendar/v4/calendars/{calendar_id}/acls/subscription": {
1342
+ POST: "subscriptionCalendarCalendarAcl"
1343
+ },
1344
+ "/calendar/v4/calendars/{calendar_id}/acls/unsubscription": {
1345
+ POST: "unsubscriptionCalendarCalendarAcl"
1346
+ },
1347
+ "/calendar/v4/calendars/{calendar_id}/events": {
1348
+ POST: "createCalendarCalendarEvent",
1349
+ GET: "listCalendarCalendarEvent"
1350
+ },
1351
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}": {
1352
+ DELETE: "deleteCalendarCalendarEvent",
1353
+ PATCH: "patchCalendarCalendarEvent",
1354
+ GET: "getCalendarCalendarEvent"
1355
+ },
1356
+ "/calendar/v4/calendars/{calendar_id}/events/search": {
1357
+ POST: "searchCalendarCalendarEvent"
1358
+ },
1359
+ "/calendar/v4/calendars/{calendar_id}/events/subscription": {
1360
+ POST: "subscriptionCalendarCalendarEvent"
1361
+ },
1362
+ "/calendar/v4/calendars/{calendar_id}/events/unsubscription": {
1363
+ POST: "unsubscriptionCalendarCalendarEvent"
1364
+ },
1365
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/reply": {
1366
+ POST: "replyCalendarCalendarEvent"
1367
+ },
1368
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/instances": {
1369
+ GET: "instancesCalendarCalendarEvent"
1370
+ },
1371
+ "/calendar/v4/calendars/{calendar_id}/events/instance_view": {
1372
+ GET: "instanceViewCalendarCalendarEvent"
1373
+ },
1374
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/meeting_chat": {
1375
+ POST: "createCalendarCalendarEventMeetingChat",
1376
+ DELETE: "deleteCalendarCalendarEventMeetingChat"
1377
+ },
1378
+ "/calendar/v4/timeoff_events": {
1379
+ POST: "createCalendarTimeoffEvent"
1380
+ },
1381
+ "/calendar/v4/timeoff_events/{timeoff_event_id}": {
1382
+ DELETE: "deleteCalendarTimeoffEvent"
1383
+ },
1384
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/attendees": {
1385
+ POST: "createCalendarCalendarEventAttendee",
1386
+ GET: "listCalendarCalendarEventAttendee"
1387
+ },
1388
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/attendees/batch_delete": {
1389
+ POST: "batchDeleteCalendarCalendarEventAttendee"
1390
+ },
1391
+ "/calendar/v4/calendars/{calendar_id}/events/{event_id}/attendees/{attendee_id}/chat_members": {
1392
+ GET: "listCalendarCalendarEventAttendeeChatMember"
1393
+ },
1394
+ "/calendar/v4/settings/generate_caldav_conf": {
1395
+ POST: "generateCaldavConfCalendarSetting"
1396
+ },
1397
+ "/calendar/v4/exchange_bindings": {
1398
+ POST: "createCalendarExchangeBinding"
1399
+ },
1400
+ "/calendar/v4/exchange_bindings/{exchange_binding_id}": {
1401
+ DELETE: "deleteCalendarExchangeBinding",
1402
+ GET: "getCalendarExchangeBinding"
1403
+ },
1404
+ "/vc/v1/reserves/apply": {
1405
+ POST: "applyVcReserve"
1406
+ },
1407
+ "/vc/v1/reserves/{reserve_id}": {
1408
+ DELETE: "deleteVcReserve",
1409
+ PUT: "updateVcReserve",
1410
+ GET: "getVcReserve"
1411
+ },
1412
+ "/vc/v1/reserves/{reserve_id}/get_active_meeting": {
1413
+ GET: "getActiveMeetingVcReserve"
1414
+ },
1415
+ "/vc/v1/meetings/{meeting_id}/invite": {
1416
+ PATCH: "inviteVcMeeting"
1417
+ },
1418
+ "/vc/v1/meetings/{meeting_id}/kickout": {
1419
+ POST: "kickoutVcMeeting"
1420
+ },
1421
+ "/vc/v1/meetings/{meeting_id}/set_host": {
1422
+ PATCH: "setHostVcMeeting"
1423
+ },
1424
+ "/vc/v1/meetings/{meeting_id}/end": {
1425
+ PATCH: "endVcMeeting"
1426
+ },
1427
+ "/vc/v1/meetings/{meeting_id}": {
1428
+ GET: "getVcMeeting"
1429
+ },
1430
+ "/vc/v1/meetings/list_by_no": {
1431
+ GET: "listByNoVcMeeting"
1432
+ },
1433
+ "/vc/v1/meetings/{meeting_id}/recording/start": {
1434
+ PATCH: "startVcMeetingRecording"
1435
+ },
1436
+ "/vc/v1/meetings/{meeting_id}/recording/stop": {
1437
+ PATCH: "stopVcMeetingRecording"
1438
+ },
1439
+ "/vc/v1/meetings/{meeting_id}/recording": {
1440
+ GET: "getVcMeetingRecording"
1441
+ },
1442
+ "/vc/v1/meetings/{meeting_id}/recording/set_permission": {
1443
+ PATCH: "setPermissionVcMeetingRecording"
1444
+ },
1445
+ "/vc/v1/reports/get_daily": {
1446
+ GET: "getDailyVcReport"
1447
+ },
1448
+ "/vc/v1/reports/get_top_user": {
1449
+ GET: "getTopUserVcReport"
1450
+ },
1451
+ "/vc/v1/exports/meeting_list": {
1452
+ POST: "meetingListVcExport"
1453
+ },
1454
+ "/vc/v1/exports/participant_list": {
1455
+ POST: "participantListVcExport"
1456
+ },
1457
+ "/vc/v1/exports/participant_quality_list": {
1458
+ POST: "participantQualityListVcExport"
1459
+ },
1460
+ "/vc/v1/exports/resource_reservation_list": {
1461
+ POST: "resourceReservationListVcExport"
1462
+ },
1463
+ "/vc/v1/exports/{task_id}": {
1464
+ GET: "getVcExport"
1465
+ },
1466
+ "/vc/v1/exports/download": {
1467
+ GET: "downloadVcExport"
1468
+ },
1469
+ "/vc/v1/room_levels": {
1470
+ POST: "createVcRoomLevel",
1471
+ GET: "listVcRoomLevel"
1472
+ },
1473
+ "/vc/v1/room_levels/del": {
1474
+ POST: "delVcRoomLevel"
1475
+ },
1476
+ "/vc/v1/room_levels/{room_level_id}": {
1477
+ PATCH: "patchVcRoomLevel",
1478
+ GET: "getVcRoomLevel"
1479
+ },
1480
+ "/vc/v1/room_levels/mget": {
1481
+ POST: "mgetVcRoomLevel"
1482
+ },
1483
+ "/vc/v1/room_levels/search": {
1484
+ GET: "searchVcRoomLevel"
1485
+ },
1486
+ "/vc/v1/rooms": {
1487
+ POST: "createVcRoom",
1488
+ GET: "listVcRoom"
1489
+ },
1490
+ "/vc/v1/rooms/{room_id}": {
1491
+ DELETE: "deleteVcRoom",
1492
+ PATCH: "patchVcRoom",
1493
+ GET: "getVcRoom"
1494
+ },
1495
+ "/vc/v1/rooms/mget": {
1496
+ POST: "mgetVcRoom"
1497
+ },
1498
+ "/vc/v1/rooms/search": {
1499
+ POST: "searchVcRoom"
1500
+ },
1501
+ "/vc/v1/scope_config": {
1502
+ GET: "getVcScopeConfig",
1503
+ POST: "createVcScopeConfig"
1504
+ },
1505
+ "/vc/v1/reserve_configs/reserve_scope": {
1506
+ GET: "reserveScopeVcReserveConfig"
1507
+ },
1508
+ "/vc/v1/reserve_configs/{reserve_config_id}": {
1509
+ PATCH: "patchVcReserveConfig"
1510
+ },
1511
+ "/vc/v1/reserve_configs/{reserve_config_id}/form": {
1512
+ GET: "getVcReserveConfigForm",
1513
+ PATCH: "patchVcReserveConfigForm"
1514
+ },
1515
+ "/vc/v1/reserve_configs/{reserve_config_id}/admin": {
1516
+ GET: "getVcReserveConfigAdmin",
1517
+ PATCH: "patchVcReserveConfigAdmin"
1518
+ },
1519
+ "/vc/v1/reserve_configs/{reserve_config_id}/disable_inform": {
1520
+ GET: "getVcReserveConfigDisableInform",
1521
+ PATCH: "patchVcReserveConfigDisableInform"
1522
+ },
1523
+ "/vc/v1/meeting_list": {
1524
+ GET: "getVcMeetingList"
1525
+ },
1526
+ "/vc/v1/participant_list": {
1527
+ GET: "getVcParticipantList"
1528
+ },
1529
+ "/vc/v1/participant_quality_list": {
1530
+ GET: "getVcParticipantQualityList"
1531
+ },
1532
+ "/vc/v1/resource_reservation_list": {
1533
+ GET: "getVcResourceReservationList"
1534
+ },
1535
+ "/vc/v1/alerts": {
1536
+ GET: "listVcAlert"
1537
+ },
1538
+ "/attendance/v1/shifts": {
1539
+ POST: "createAttendanceShift",
1540
+ GET: "listAttendanceShift"
1541
+ },
1542
+ "/attendance/v1/shifts/{shift_id}": {
1543
+ DELETE: "deleteAttendanceShift",
1544
+ GET: "getAttendanceShift"
1545
+ },
1546
+ "/attendance/v1/shifts/query": {
1547
+ POST: "queryAttendanceShift"
1548
+ },
1549
+ "/attendance/v1/groups": {
1550
+ POST: "createAttendanceGroup",
1551
+ GET: "listAttendanceGroup"
1552
+ },
1553
+ "/attendance/v1/groups/{group_id}": {
1554
+ DELETE: "deleteAttendanceGroup",
1555
+ GET: "getAttendanceGroup"
1556
+ },
1557
+ "/attendance/v1/groups/search": {
1558
+ POST: "searchAttendanceGroup"
1559
+ },
1560
+ "/attendance/v1/user_daily_shifts/batch_create": {
1561
+ POST: "batchCreateAttendanceUserDailyShift"
1562
+ },
1563
+ "/attendance/v1/user_daily_shifts/query": {
1564
+ POST: "queryAttendanceUserDailyShift"
1565
+ },
1566
+ "/attendance/v1/user_stats_views/{user_stats_view_id}": {
1567
+ PUT: "updateAttendanceUserStatsView"
1568
+ },
1569
+ "/attendance/v1/user_stats_fields/query": {
1570
+ POST: "queryAttendanceUserStatsField"
1571
+ },
1572
+ "/attendance/v1/user_stats_views/query": {
1573
+ POST: "queryAttendanceUserStatsView"
1574
+ },
1575
+ "/attendance/v1/user_stats_datas/query": {
1576
+ POST: "queryAttendanceUserStatsData"
1577
+ },
1578
+ "/attendance/v1/user_approvals/query": {
1579
+ POST: "queryAttendanceUserApproval"
1580
+ },
1581
+ "/attendance/v1/user_approvals": {
1582
+ POST: "createAttendanceUserApproval"
1583
+ },
1584
+ "/attendance/v1/approval_infos/process": {
1585
+ POST: "processAttendanceApprovalInfo"
1586
+ },
1587
+ "/attendance/v1/user_task_remedys": {
1588
+ POST: "createAttendanceUserTaskRemedy"
1589
+ },
1590
+ "/attendance/v1/user_task_remedys/query_user_allowed_remedys": {
1591
+ POST: "queryUserAllowedRemedysAttendanceUserTaskRemedy"
1592
+ },
1593
+ "/attendance/v1/user_task_remedys/query": {
1594
+ POST: "queryAttendanceUserTaskRemedy"
1595
+ },
1596
+ "/attendance/v1/user_flows/batch_create": {
1597
+ POST: "batchCreateAttendanceUserFlow"
1598
+ },
1599
+ "/attendance/v1/user_flows/{user_flow_id}": {
1600
+ GET: "getAttendanceUserFlow"
1601
+ },
1602
+ "/attendance/v1/user_flows/query": {
1603
+ POST: "queryAttendanceUserFlow"
1604
+ },
1605
+ "/attendance/v1/user_tasks/query": {
1606
+ POST: "queryAttendanceUserTask"
1607
+ },
1608
+ "/attendance/v1/user_settings/modify": {
1609
+ POST: "modifyAttendanceUserSetting"
1610
+ },
1611
+ "/attendance/v1/user_settings/query": {
1612
+ GET: "queryAttendanceUserSetting"
1613
+ },
1614
+ "/attendance/v1/files/upload": {
1615
+ POST: "uploadAttendanceFile"
1616
+ },
1617
+ "/attendance/v1/files/{file_id}/download": {
1618
+ GET: "downloadAttendanceFile"
1619
+ },
1620
+ "/attendance/v1/leave_employ_expire_records/{leave_id}": {
1621
+ GET: "getAttendanceLeaveEmployExpireRecord"
1622
+ },
1623
+ "/attendance/v1/leave_accrual_record/{leave_id}": {
1624
+ PATCH: "patchAttendanceLeaveAccrualRecord"
1625
+ },
1626
+ "/approval/v4/approvals": {
1627
+ POST: "createApproval"
1628
+ },
1629
+ "/approval/v4/approvals/{approval_code}": {
1630
+ GET: "getApproval"
1631
+ },
1632
+ "/approval/v4/instances": {
1633
+ POST: "createApprovalInstance",
1634
+ GET: "listApprovalInstance"
1635
+ },
1636
+ "/approval/v4/instances/cancel": {
1637
+ POST: "cancelApprovalInstance"
1638
+ },
1639
+ "/approval/v4/instances/cc": {
1640
+ POST: "ccApprovalInstance"
1641
+ },
1642
+ "/approval/v4/instances/preview": {
1643
+ POST: "previewApprovalInstance"
1644
+ },
1645
+ "/approval/v4/instances/{instance_id}": {
1646
+ GET: "getApprovalInstance"
1647
+ },
1648
+ "/approval/v4/tasks/approve": {
1649
+ POST: "approveApprovalTask"
1650
+ },
1651
+ "/approval/v4/tasks/reject": {
1652
+ POST: "rejectApprovalTask"
1653
+ },
1654
+ "/approval/v4/tasks/transfer": {
1655
+ POST: "transferApprovalTask"
1656
+ },
1657
+ "/approval/v4/instances/specified_rollback": {
1658
+ POST: "specifiedRollbackApprovalInstance"
1659
+ },
1660
+ "/approval/v4/instances/add_sign": {
1661
+ POST: "addSignApprovalInstance"
1662
+ },
1663
+ "/approval/v4/tasks/resubmit": {
1664
+ POST: "resubmitApprovalTask"
1665
+ },
1666
+ "/approval/v4/instances/{instance_id}/comments": {
1667
+ POST: "createApprovalInstanceComment",
1668
+ GET: "listApprovalInstanceComment"
1669
+ },
1670
+ "/approval/v4/instances/{instance_id}/comments/{comment_id}": {
1671
+ DELETE: "deleteApprovalInstanceComment"
1672
+ },
1673
+ "/approval/v4/instances/{instance_id}/comments/remove": {
1674
+ POST: "removeApprovalInstanceComment"
1675
+ },
1676
+ "/approval/v4/external_approvals": {
1677
+ POST: "createApprovalExternalApproval"
1678
+ },
1679
+ "/approval/v4/external_approvals/{approval_code}": {
1680
+ GET: "getApprovalExternalApproval"
1681
+ },
1682
+ "/approval/v4/external_instances": {
1683
+ POST: "createApprovalExternalInstance"
1684
+ },
1685
+ "/approval/v4/external_instances/check": {
1686
+ POST: "checkApprovalExternalInstance"
1687
+ },
1688
+ "/approval/v4/external_tasks": {
1689
+ GET: "listApprovalExternalTask"
1690
+ },
1691
+ "/approval/v4/instances/query": {
1692
+ POST: "queryApprovalInstance"
1693
+ },
1694
+ "/approval/v4/instances/search_cc": {
1695
+ POST: "searchCcApprovalInstance"
1696
+ },
1697
+ "/approval/v4/tasks/search": {
1698
+ POST: "searchApprovalTask"
1699
+ },
1700
+ "/approval/v4/tasks/query": {
1701
+ GET: "queryApprovalTask"
1702
+ },
1703
+ "/approval/v4/approvals/{approval_code}/subscribe": {
1704
+ POST: "subscribeApproval"
1705
+ },
1706
+ "/approval/v4/approvals/{approval_code}/unsubscribe": {
1707
+ POST: "unsubscribeApproval"
1708
+ },
1709
+ "/helpdesk/v1/agents/{agent_id}": {
1710
+ PATCH: "patchHelpdeskAgent"
1711
+ },
1712
+ "/helpdesk/v1/agent_emails": {
1713
+ GET: "agentEmailHelpdeskAgent"
1714
+ },
1715
+ "/helpdesk/v1/agent_schedules": {
1716
+ POST: "createHelpdeskAgentSchedule",
1717
+ GET: "listHelpdeskAgentSchedule"
1718
+ },
1719
+ "/helpdesk/v1/agents/{agent_id}/schedules": {
1720
+ DELETE: "deleteHelpdeskAgentSchedules",
1721
+ PATCH: "patchHelpdeskAgentSchedules",
1722
+ GET: "getHelpdeskAgentSchedules"
1723
+ },
1724
+ "/helpdesk/v1/agent_skills": {
1725
+ POST: "createHelpdeskAgentSkill",
1726
+ GET: "listHelpdeskAgentSkill"
1727
+ },
1728
+ "/helpdesk/v1/agent_skills/{agent_skill_id}": {
1729
+ DELETE: "deleteHelpdeskAgentSkill",
1730
+ PATCH: "patchHelpdeskAgentSkill",
1731
+ GET: "getHelpdeskAgentSkill"
1732
+ },
1733
+ "/helpdesk/v1/agent_skill_rules": {
1734
+ GET: "listHelpdeskAgentSkillRule"
1735
+ },
1736
+ "/helpdesk/v1/start_service": {
1737
+ POST: "startServiceHelpdeskTicket"
1738
+ },
1739
+ "/helpdesk/v1/tickets/{ticket_id}": {
1740
+ GET: "getHelpdeskTicket",
1741
+ PUT: "updateHelpdeskTicket"
1742
+ },
1743
+ "/helpdesk/v1/tickets": {
1744
+ GET: "listHelpdeskTicket"
1745
+ },
1746
+ "/helpdesk/v1/ticket_images": {
1747
+ GET: "ticketImageHelpdeskTicket"
1748
+ },
1749
+ "/helpdesk/v1/tickets/{ticket_id}/answer_user_query": {
1750
+ POST: "answerUserQueryHelpdeskTicket"
1751
+ },
1752
+ "/helpdesk/v1/customized_fields": {
1753
+ GET: "customizedFieldsHelpdeskTicket"
1754
+ },
1755
+ "/helpdesk/v1/tickets/{ticket_id}/messages": {
1756
+ POST: "createHelpdeskTicketMessage",
1757
+ GET: "listHelpdeskTicketMessage"
1758
+ },
1759
+ "/helpdesk/v1/message": {
1760
+ POST: "createHelpdeskBotMessage"
1761
+ },
1762
+ "/helpdesk/v1/ticket_customized_fields": {
1763
+ POST: "createHelpdeskTicketCustomizedField",
1764
+ GET: "listHelpdeskTicketCustomizedField"
1765
+ },
1766
+ "/helpdesk/v1/ticket_customized_fields/{ticket_customized_field_id}": {
1767
+ DELETE: "deleteHelpdeskTicketCustomizedField",
1768
+ PATCH: "patchHelpdeskTicketCustomizedField",
1769
+ GET: "getHelpdeskTicketCustomizedField"
1770
+ },
1771
+ "/helpdesk/v1/faqs": {
1772
+ POST: "createHelpdeskFaq",
1773
+ GET: "listHelpdeskFaq"
1774
+ },
1775
+ "/helpdesk/v1/faqs/{id}": {
1776
+ DELETE: "deleteHelpdeskFaq",
1777
+ PATCH: "patchHelpdeskFaq",
1778
+ GET: "getHelpdeskFaq"
1779
+ },
1780
+ "/helpdesk/v1/faqs/{id}/image/{image_key}": {
1781
+ GET: "faqImageHelpdeskFaq"
1782
+ },
1783
+ "/helpdesk/v1/faqs/search": {
1784
+ GET: "searchHelpdeskFaq"
1785
+ },
1786
+ "/helpdesk/v1/categories": {
1787
+ POST: "createHelpdeskCategory",
1788
+ GET: "listHelpdeskCategory"
1789
+ },
1790
+ "/helpdesk/v1/categories/{id}": {
1791
+ GET: "getHelpdeskCategory",
1792
+ PATCH: "patchHelpdeskCategory",
1793
+ DELETE: "deleteHelpdeskCategory"
1794
+ },
1795
+ "/helpdesk/v1/notifications": {
1796
+ POST: "createHelpdeskNotification"
1797
+ },
1798
+ "/helpdesk/v1/notifications/{notification_id}": {
1799
+ PATCH: "patchHelpdeskNotification",
1800
+ GET: "getHelpdeskNotification"
1801
+ },
1802
+ "/helpdesk/v1/notifications/{notification_id}/preview": {
1803
+ POST: "previewHelpdeskNotification"
1804
+ },
1805
+ "/helpdesk/v1/notifications/{notification_id}/submit_approve": {
1806
+ POST: "submitApproveHelpdeskNotification"
1807
+ },
1808
+ "/helpdesk/v1/notifications/{notification_id}/cancel_approve": {
1809
+ POST: "cancelApproveHelpdeskNotification"
1810
+ },
1811
+ "/helpdesk/v1/notifications/{notification_id}/execute_send": {
1812
+ POST: "executeSendHelpdeskNotification"
1813
+ },
1814
+ "/helpdesk/v1/notifications/{notification_id}/cancel_send": {
1815
+ POST: "cancelSendHelpdeskNotification"
1816
+ },
1817
+ "/helpdesk/v1/events/subscribe": {
1818
+ POST: "subscribeHelpdeskEvent"
1819
+ },
1820
+ "/helpdesk/v1/events/unsubscribe": {
1821
+ POST: "unsubscribeHelpdeskEvent"
1822
+ },
1823
+ "/task/v1/tasks": {
1824
+ POST: "createTaskv1",
1825
+ GET: "listTaskv1"
1826
+ },
1827
+ "/task/v1/tasks/{task_id}": {
1828
+ DELETE: "deleteTaskv1",
1829
+ PATCH: "patchTaskv1",
1830
+ GET: "getTaskv1"
1831
+ },
1832
+ "/task/v1/tasks/{task_id}/complete": {
1833
+ POST: "completeTaskv1"
1834
+ },
1835
+ "/task/v1/tasks/{task_id}/uncomplete": {
1836
+ POST: "uncompleteTaskv1"
1837
+ },
1838
+ "/task/v1/tasks/{task_id}/reminders": {
1839
+ POST: "createTaskv1TaskReminder",
1840
+ GET: "listTaskv1TaskReminder"
1841
+ },
1842
+ "/task/v1/tasks/{task_id}/reminders/{reminder_id}": {
1843
+ DELETE: "deleteTaskv1TaskReminder"
1844
+ },
1845
+ "/task/v1/tasks/{task_id}/comments": {
1846
+ POST: "createTaskv1TaskComment",
1847
+ GET: "listTaskv1TaskComment"
1848
+ },
1849
+ "/task/v1/tasks/{task_id}/comments/{comment_id}": {
1850
+ DELETE: "deleteTaskv1TaskComment",
1851
+ PUT: "updateTaskv1TaskComment",
1852
+ GET: "getTaskv1TaskComment"
1853
+ },
1854
+ "/task/v1/tasks/{task_id}/followers": {
1855
+ POST: "createTaskv1TaskFollower",
1856
+ GET: "listTaskv1TaskFollower"
1857
+ },
1858
+ "/task/v1/tasks/{task_id}/followers/{follower_id}": {
1859
+ DELETE: "deleteTaskv1TaskFollower"
1860
+ },
1861
+ "/task/v1/tasks/{task_id}/batch_delete_follower": {
1862
+ POST: "batchDeleteFollowerTaskv1"
1863
+ },
1864
+ "/task/v1/tasks/{task_id}/collaborators": {
1865
+ POST: "createTaskv1TaskCollaborator",
1866
+ GET: "listTaskv1TaskCollaborator"
1867
+ },
1868
+ "/task/v1/tasks/{task_id}/collaborators/{collaborator_id}": {
1869
+ DELETE: "deleteTaskv1TaskCollaborator"
1870
+ },
1871
+ "/task/v1/tasks/{task_id}/batch_delete_collaborator": {
1872
+ POST: "batchDeleteCollaboratorTaskv1"
1873
+ },
1874
+ "/task/v2/tasks": {
1875
+ POST: "createTaskv2",
1876
+ GET: "listTaskv2"
1877
+ },
1878
+ "/task/v2/tasks/{task_guid}": {
1879
+ GET: "getTaskv2",
1880
+ PATCH: "patchTaskv2",
1881
+ DELETE: "deleteTaskv2"
1882
+ },
1883
+ "/task/v2/tasks/{task_guid}/add_members": {
1884
+ POST: "addMembersTaskv2"
1885
+ },
1886
+ "/task/v2/tasks/{task_guid}/remove_members": {
1887
+ POST: "removeMembersTaskv2"
1888
+ },
1889
+ "/task/v2/tasks/{task_guid}/tasklists": {
1890
+ GET: "tasklistsTaskv2"
1891
+ },
1892
+ "/task/v2/tasks/{task_guid}/add_tasklist": {
1893
+ POST: "addTasklistTaskv2"
1894
+ },
1895
+ "/task/v2/tasks/{task_guid}/remove_tasklist": {
1896
+ POST: "removeTasklistTaskv2"
1897
+ },
1898
+ "/task/v2/tasks/{task_guid}/add_reminders": {
1899
+ POST: "addRemindersTaskv2"
1900
+ },
1901
+ "/task/v2/tasks/{task_guid}/remove_reminders": {
1902
+ POST: "removeRemindersTaskv2"
1903
+ },
1904
+ "/task/v2/tasks/{task_guid}/add_dependencies": {
1905
+ POST: "addDependenciesTaskv2"
1906
+ },
1907
+ "/task/v2/tasks/{task_guid}/remove_dependencies": {
1908
+ POST: "removeDependenciesTaskv2"
1909
+ },
1910
+ "/task/v2/tasks/{task_guid}/subtasks": {
1911
+ POST: "createTaskv2TaskSubtask",
1912
+ GET: "listTaskv2TaskSubtask"
1913
+ },
1914
+ "/task/v2/tasklists": {
1915
+ POST: "createTaskv2Tasklist",
1916
+ GET: "listTaskv2Tasklist"
1917
+ },
1918
+ "/task/v2/tasklists/{tasklist_guid}": {
1919
+ GET: "getTaskv2Tasklist",
1920
+ PATCH: "patchTaskv2Tasklist",
1921
+ DELETE: "deleteTaskv2Tasklist"
1922
+ },
1923
+ "/task/v2/tasklists/{tasklist_guid}/add_members": {
1924
+ POST: "addMembersTaskv2Tasklist"
1925
+ },
1926
+ "/task/v2/tasklists/{tasklist_guid}/remove_members": {
1927
+ POST: "removeMembersTaskv2Tasklist"
1928
+ },
1929
+ "/task/v2/tasklists/{tasklist_guid}/tasks": {
1930
+ GET: "tasksTaskv2Tasklist"
1931
+ },
1932
+ "/task/v2/tasklists/{tasklist_guid}/activity_subscriptions": {
1933
+ POST: "createTaskv2TasklistActivitySubscription",
1934
+ GET: "listTaskv2TasklistActivitySubscription"
1935
+ },
1936
+ "/task/v2/tasklists/{tasklist_guid}/activity_subscriptions/{activity_subscription_guid}": {
1937
+ GET: "getTaskv2TasklistActivitySubscription",
1938
+ PATCH: "patchTaskv2TasklistActivitySubscription",
1939
+ DELETE: "deleteTaskv2TasklistActivitySubscription"
1940
+ },
1941
+ "/task/v2/comments": {
1942
+ POST: "createTaskv2Comment",
1943
+ GET: "listTaskv2Comment"
1944
+ },
1945
+ "/task/v2/comments/{comment_id}": {
1946
+ GET: "getTaskv2Comment",
1947
+ PATCH: "patchTaskv2Comment",
1948
+ DELETE: "deleteTaskv2Comment"
1949
+ },
1950
+ "/task/v2/attachments/upload": {
1951
+ POST: "uploadTaskv2Attachment"
1952
+ },
1953
+ "/task/v2/attachments": {
1954
+ GET: "listTaskv2Attachment"
1955
+ },
1956
+ "/task/v2/attachments/{attachment_guid}": {
1957
+ GET: "getTaskv2Attachment",
1958
+ DELETE: "deleteTaskv2Attachment"
1959
+ },
1960
+ "/task/v2/sections": {
1961
+ POST: "createTaskv2Section",
1962
+ GET: "listTaskv2Section"
1963
+ },
1964
+ "/task/v2/sections/{section_guid}": {
1965
+ GET: "getTaskv2Section",
1966
+ PATCH: "patchTaskv2Section",
1967
+ DELETE: "deleteTaskv2Section"
1968
+ },
1969
+ "/task/v2/sections/{section_guid}/tasks": {
1970
+ GET: "tasksTaskv2Section"
1971
+ },
1972
+ "/task/v2/custom_fields": {
1973
+ POST: "createTaskv2CustomField",
1974
+ GET: "listTaskv2CustomField"
1975
+ },
1976
+ "/task/v2/custom_fields/{custom_field_guid}": {
1977
+ GET: "getTaskv2CustomField",
1978
+ PATCH: "patchTaskv2CustomField"
1979
+ },
1980
+ "/task/v2/custom_fields/{custom_field_guid}/add": {
1981
+ POST: "addTaskv2CustomField"
1982
+ },
1983
+ "/task/v2/custom_fields/{custom_field_guid}/remove": {
1984
+ POST: "removeTaskv2CustomField"
1985
+ },
1986
+ "/task/v2/custom_fields/{custom_field_guid}/options": {
1987
+ POST: "createTaskv2CustomFieldOption"
1988
+ },
1989
+ "/task/v2/custom_fields/{custom_field_guid}/options/{option_guid}": {
1990
+ PATCH: "patchTaskv2CustomFieldOption"
1991
+ },
1992
+ "/mail/v1/mailgroups": {
1993
+ POST: "createMailMailgroup",
1994
+ GET: "listMailMailgroup"
1995
+ },
1996
+ "/mail/v1/mailgroups/{mailgroup_id}": {
1997
+ DELETE: "deleteMailMailgroup",
1998
+ PATCH: "patchMailMailgroup",
1999
+ PUT: "updateMailMailgroup",
2000
+ GET: "getMailMailgroup"
2001
+ },
2002
+ "/mail/v1/mailgroups/{mailgroup_id}/managers/batch_create": {
2003
+ POST: "batchCreateMailMailgroupManager"
2004
+ },
2005
+ "/mail/v1/mailgroups/{mailgroup_id}/managers/batch_delete": {
2006
+ POST: "batchDeleteMailMailgroupManager"
2007
+ },
2008
+ "/mail/v1/mailgroups/{mailgroup_id}/managers": {
2009
+ GET: "listMailMailgroupManager"
2010
+ },
2011
+ "/mail/v1/mailgroups/{mailgroup_id}/members": {
2012
+ POST: "createMailMailgroupMember",
2013
+ GET: "listMailMailgroupMember"
2014
+ },
2015
+ "/mail/v1/mailgroups/{mailgroup_id}/members/{member_id}": {
2016
+ DELETE: "deleteMailMailgroupMember",
2017
+ GET: "getMailMailgroupMember"
2018
+ },
2019
+ "/mail/v1/mailgroups/{mailgroup_id}/members/batch_create": {
2020
+ POST: "batchCreateMailMailgroupMember"
2021
+ },
2022
+ "/mail/v1/mailgroups/{mailgroup_id}/members/batch_delete": {
2023
+ DELETE: "batchDeleteMailMailgroupMember"
2024
+ },
2025
+ "/mail/v1/mailgroups/{mailgroup_id}/aliases": {
2026
+ POST: "createMailMailgroupAlias",
2027
+ GET: "listMailMailgroupAlias"
2028
+ },
2029
+ "/mail/v1/mailgroups/{mailgroup_id}/aliases/{alias_id}": {
2030
+ DELETE: "deleteMailMailgroupAlias"
2031
+ },
2032
+ "/mail/v1/mailgroups/{mailgroup_id}/permission_members": {
2033
+ POST: "createMailMailgroupPermissionMember",
2034
+ GET: "listMailMailgroupPermissionMember"
2035
+ },
2036
+ "/mail/v1/mailgroups/{mailgroup_id}/permission_members/{permission_member_id}": {
2037
+ DELETE: "deleteMailMailgroupPermissionMember",
2038
+ GET: "getMailMailgroupPermissionMember"
2039
+ },
2040
+ "/mail/v1/mailgroups/{mailgroup_id}/permission_members/batch_create": {
2041
+ POST: "batchCreateMailMailgroupPermissionMember"
2042
+ },
2043
+ "/mail/v1/mailgroups/{mailgroup_id}/permission_members/batch_delete": {
2044
+ DELETE: "batchDeleteMailMailgroupPermissionMember"
2045
+ },
2046
+ "/mail/v1/public_mailboxes": {
2047
+ POST: "createMailPublicMailbox",
2048
+ GET: "listMailPublicMailbox"
2049
+ },
2050
+ "/mail/v1/public_mailboxes/{public_mailbox_id}": {
2051
+ PATCH: "patchMailPublicMailbox",
2052
+ PUT: "updateMailPublicMailbox",
2053
+ GET: "getMailPublicMailbox",
2054
+ DELETE: "deleteMailPublicMailbox"
2055
+ },
2056
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/members": {
2057
+ POST: "createMailPublicMailboxMember",
2058
+ GET: "listMailPublicMailboxMember"
2059
+ },
2060
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/members/{member_id}": {
2061
+ DELETE: "deleteMailPublicMailboxMember",
2062
+ GET: "getMailPublicMailboxMember"
2063
+ },
2064
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/members/clear": {
2065
+ POST: "clearMailPublicMailboxMember"
2066
+ },
2067
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/members/batch_create": {
2068
+ POST: "batchCreateMailPublicMailboxMember"
2069
+ },
2070
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/members/batch_delete": {
2071
+ DELETE: "batchDeleteMailPublicMailboxMember"
2072
+ },
2073
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/aliases": {
2074
+ POST: "createMailPublicMailboxAlias",
2075
+ GET: "listMailPublicMailboxAlias"
2076
+ },
2077
+ "/mail/v1/public_mailboxes/{public_mailbox_id}/aliases/{alias_id}": {
2078
+ DELETE: "deleteMailPublicMailboxAlias"
2079
+ },
2080
+ "/mail/v1/user_mailboxes/{user_mailbox_id}": {
2081
+ DELETE: "deleteMailUserMailbox"
2082
+ },
2083
+ "/mail/v1/user_mailboxes/{user_mailbox_id}/aliases": {
2084
+ POST: "createMailUserMailboxAlias",
2085
+ GET: "listMailUserMailboxAlias"
2086
+ },
2087
+ "/mail/v1/user_mailboxes/{user_mailbox_id}/aliases/{alias_id}": {
2088
+ DELETE: "deleteMailUserMailboxAlias"
2089
+ },
2090
+ "/mail/v1/users/query": {
2091
+ POST: "queryMailUser"
2092
+ },
2093
+ "/application/v6/applications/{app_id}": {
2094
+ GET: "getApplication",
2095
+ PATCH: "patchApplication"
2096
+ },
2097
+ "/application/v6/applications/{app_id}/app_versions/{version_id}": {
2098
+ GET: "getApplicationApplicationAppVersion",
2099
+ PATCH: "patchApplicationApplicationAppVersion"
2100
+ },
2101
+ "/application/v6/applications/{app_id}/app_versions": {
2102
+ GET: "listApplicationApplicationAppVersion"
2103
+ },
2104
+ "/application/v6/applications/{app_id}/app_versions/{version_id}/contacts_range_suggest": {
2105
+ GET: "contactsRangeSuggestApplicationApplicationAppVersion"
2106
+ },
2107
+ "/application/v6/applications/underauditlist": {
2108
+ GET: "underauditlistApplication"
2109
+ },
2110
+ "/application/v6/applications/{app_id}/contacts_range_configuration": {
2111
+ GET: "contactsRangeConfigurationApplication"
2112
+ },
2113
+ "/application/v6/applications/{app_id}/contacts_range": {
2114
+ PATCH: "patchApplicationApplicationContactsRange"
2115
+ },
2116
+ "/application/v6/applications/{app_id}/visibility/check_white_black_list": {
2117
+ POST: "checkWhiteBlackListApplicationApplicationVisibility"
2118
+ },
2119
+ "/application/v6/applications/{app_id}/visibility": {
2120
+ PATCH: "patchApplicationApplicationVisibility"
2121
+ },
2122
+ "/application/v6/applications/{app_id}/management": {
2123
+ PUT: "updateApplicationApplicationManagement"
2124
+ },
2125
+ "/application/v6/applications/{app_id}/app_usage/department_overview": {
2126
+ POST: "departmentOverviewApplicationApplicationAppUsage"
2127
+ },
2128
+ "/application/v6/applications/{app_id}/app_usage/overview": {
2129
+ POST: "overviewApplicationApplicationAppUsage"
2130
+ },
2131
+ "/application/v6/applications/{app_id}/feedbacks/{feedback_id}": {
2132
+ PATCH: "patchApplicationApplicationFeedback"
2133
+ },
2134
+ "/application/v6/applications/{app_id}/feedbacks": {
2135
+ GET: "listApplicationApplicationFeedback"
2136
+ },
2137
+ "/application/v6/app_badge/set": {
2138
+ POST: "setApplicationAppBadge"
2139
+ },
2140
+ "/tenant/v2/tenant/assign_info_list/query": {
2141
+ GET: "queryTenantTenantProductAssignInfo"
2142
+ },
2143
+ "/tenant/v2/tenant/query": {
2144
+ GET: "queryTenant"
2145
+ },
2146
+ "/verification/v1/verification": {
2147
+ GET: "getVerification"
2148
+ },
2149
+ "/personal_settings/v1/system_statuses": {
2150
+ POST: "createPersonalSettingsSystemStatus",
2151
+ GET: "listPersonalSettingsSystemStatus"
2152
+ },
2153
+ "/personal_settings/v1/system_statuses/{system_status_id}": {
2154
+ DELETE: "deletePersonalSettingsSystemStatus",
2155
+ PATCH: "patchPersonalSettingsSystemStatus"
2156
+ },
2157
+ "/personal_settings/v1/system_statuses/{system_status_id}/batch_open": {
2158
+ POST: "batchOpenPersonalSettingsSystemStatus"
2159
+ },
2160
+ "/personal_settings/v1/system_statuses/{system_status_id}/batch_close": {
2161
+ POST: "batchClosePersonalSettingsSystemStatus"
2162
+ },
2163
+ "/search/v2/message": {
2164
+ POST: "createSearchMessage"
2165
+ },
2166
+ "/search/v2/app": {
2167
+ POST: "createSearchApp"
2168
+ },
2169
+ "/search/v2/data_sources": {
2170
+ POST: "createSearchDataSource",
2171
+ GET: "listSearchDataSource"
2172
+ },
2173
+ "/search/v2/data_sources/{data_source_id}": {
2174
+ DELETE: "deleteSearchDataSource",
2175
+ PATCH: "patchSearchDataSource",
2176
+ GET: "getSearchDataSource"
2177
+ },
2178
+ "/search/v2/data_sources/{data_source_id}/items": {
2179
+ POST: "createSearchDataSourceItem"
2180
+ },
2181
+ "/search/v2/data_sources/{data_source_id}/items/{item_id}": {
2182
+ DELETE: "deleteSearchDataSourceItem",
2183
+ GET: "getSearchDataSourceItem"
2184
+ },
2185
+ "/search/v2/schemas": {
2186
+ POST: "createSearchSchema"
2187
+ },
2188
+ "/search/v2/schemas/{schema_id}": {
2189
+ DELETE: "deleteSearchSchema",
2190
+ PATCH: "patchSearchSchema",
2191
+ GET: "getSearchSchema"
2192
+ },
2193
+ "/document_ai/v1/resume/parse": {
2194
+ POST: "parseDocumentAiResume"
2195
+ },
2196
+ "/document_ai/v1/vehicle_invoice/recognize": {
2197
+ POST: "recognizeDocumentAiVehicleInvoice"
2198
+ },
2199
+ "/document_ai/v1/health_certificate/recognize": {
2200
+ POST: "recognizeDocumentAiHealthCertificate"
2201
+ },
2202
+ "/document_ai/v1/hkm_mainland_travel_permit/recognize": {
2203
+ POST: "recognizeDocumentAiHkmMainlandTravelPermit"
2204
+ },
2205
+ "/document_ai/v1/tw_mainland_travel_permit/recognize": {
2206
+ POST: "recognizeDocumentAiTwMainlandTravelPermit"
2207
+ },
2208
+ "/document_ai/v1/chinese_passport/recognize": {
2209
+ POST: "recognizeDocumentAiChinesePassport"
2210
+ },
2211
+ "/document_ai/v1/bank_card/recognize": {
2212
+ POST: "recognizeDocumentAiBankCard"
2213
+ },
2214
+ "/document_ai/v1/vehicle_license/recognize": {
2215
+ POST: "recognizeDocumentAiVehicleLicense"
2216
+ },
2217
+ "/document_ai/v1/train_invoice/recognize": {
2218
+ POST: "recognizeDocumentAiTrainInvoice"
2219
+ },
2220
+ "/document_ai/v1/taxi_invoice/recognize": {
2221
+ POST: "recognizeDocumentAiTaxiInvoice"
2222
+ },
2223
+ "/document_ai/v1/id_card/recognize": {
2224
+ POST: "recognizeDocumentAiIdCard"
2225
+ },
2226
+ "/document_ai/v1/food_produce_license/recognize": {
2227
+ POST: "recognizeDocumentAiFoodProduceLicense"
2228
+ },
2229
+ "/document_ai/v1/food_manage_license/recognize": {
2230
+ POST: "recognizeDocumentAiFoodManageLicense"
2231
+ },
2232
+ "/document_ai/v1/driving_license/recognize": {
2233
+ POST: "recognizeDocumentAiDrivingLicense"
2234
+ },
2235
+ "/document_ai/v1/vat_invoice/recognize": {
2236
+ POST: "recognizeDocumentAiVatInvoice"
2237
+ },
2238
+ "/document_ai/v1/business_license/recognize": {
2239
+ POST: "recognizeDocumentAiBusinessLicense"
2240
+ },
2241
+ "/document_ai/v1/contract/field_extraction": {
2242
+ POST: "fieldExtractionDocumentAiContract"
2243
+ },
2244
+ "/document_ai/v1/business_card/recognize": {
2245
+ POST: "recognizeDocumentAiBusinessCard"
2246
+ },
2247
+ "/optical_char_recognition/v1/image/basic_recognize": {
2248
+ POST: "basicRecognizeOpticalCharRecognitionImage"
2249
+ },
2250
+ "/speech_to_text/v1/speech/file_recognize": {
2251
+ POST: "fileRecognizeSpeechToTextSpeech"
2252
+ },
2253
+ "/speech_to_text/v1/speech/stream_recognize": {
2254
+ POST: "streamRecognizeSpeechToTextSpeech"
2255
+ },
2256
+ "/translation/v1/text/detect": {
2257
+ POST: "detectTranslationText"
2258
+ },
2259
+ "/translation/v1/text/translate": {
2260
+ POST: "translateTranslationText"
2261
+ },
2262
+ "/apaas/v1/approval_tasks/{approval_task_id}/agree": {
2263
+ POST: "agreeApaasApprovalTask"
2264
+ },
2265
+ "/apaas/v1/approval_tasks/{approval_task_id}/reject": {
2266
+ POST: "rejectApaasApprovalTask"
2267
+ },
2268
+ "/apaas/v1/approval_tasks/{approval_task_id}/transfer": {
2269
+ POST: "transferApaasApprovalTask"
2270
+ },
2271
+ "/apaas/v1/approval_tasks/{approval_task_id}/add_assignee": {
2272
+ POST: "addAssigneeApaasApprovalTask"
2273
+ },
2274
+ "/admin/v1/password/reset": {
2275
+ POST: "resetAdminPassword"
2276
+ },
2277
+ "/admin/v1/admin_dept_stats": {
2278
+ GET: "listAdminAdminDeptStat"
2279
+ },
2280
+ "/admin/v1/admin_user_stats": {
2281
+ GET: "listAdminAdminUserStat"
2282
+ },
2283
+ "/admin/v1/badges": {
2284
+ POST: "createAdminBadge",
2285
+ GET: "listAdminBadge"
2286
+ },
2287
+ "/admin/v1/badges/{badge_id}": {
2288
+ PUT: "updateAdminBadge",
2289
+ GET: "getAdminBadge"
2290
+ },
2291
+ "/admin/v1/badge_images": {
2292
+ POST: "createAdminBadgeImage"
2293
+ },
2294
+ "/admin/v1/badges/{badge_id}/grants": {
2295
+ POST: "createAdminBadgeGrant",
2296
+ GET: "listAdminBadgeGrant"
2297
+ },
2298
+ "/admin/v1/badges/{badge_id}/grants/{grant_id}": {
2299
+ DELETE: "deleteAdminBadgeGrant",
2300
+ PUT: "updateAdminBadgeGrant",
2301
+ GET: "getAdminBadgeGrant"
2302
+ },
2303
+ "/ehr/v1/employees": {
2304
+ GET: "listEhrEmployee"
2305
+ },
2306
+ "/ehr/v1/attachments/{token}": {
2307
+ GET: "getEhrAttachment"
2308
+ },
2309
+ "/corehr/v2/basic_info/nationalities/search": {
2310
+ POST: "searchCorehrBasicInfoNationality"
2311
+ },
2312
+ "/corehr/v2/basic_info/banks/search": {
2313
+ POST: "searchCorehrBasicInfoBank"
2314
+ },
2315
+ "/corehr/v2/basic_info/bank_branchs/search": {
2316
+ POST: "searchCorehrBasicInfoBankBranch"
2317
+ },
2318
+ "/corehr/v1/custom_fields/get_by_param": {
2319
+ GET: "getByParamCorehrCustomField"
2320
+ },
2321
+ "/corehr/v1/custom_fields/query": {
2322
+ GET: "queryCorehrCustomField"
2323
+ },
2324
+ "/corehr/v1/custom_fields/list_object_api_name": {
2325
+ GET: "listObjectApiNameCorehrCustomField"
2326
+ },
2327
+ "/corehr/v2/basic_info/country_regions/search": {
2328
+ POST: "searchCorehrBasicInfoCountryRegion"
2329
+ },
2330
+ "/corehr/v2/basic_info/country_region_subdivisions/search": {
2331
+ POST: "searchCorehrBasicInfoCountryRegionSubdivision"
2332
+ },
2333
+ "/corehr/v2/basic_info/cities/search": {
2334
+ POST: "searchCorehrBasicInfoCity"
2335
+ },
2336
+ "/corehr/v2/basic_info/districts/search": {
2337
+ POST: "searchCorehrBasicInfoDistrict"
2338
+ },
2339
+ "/corehr/v1/employee_types": {
2340
+ POST: "createCorehrEmployeeType",
2341
+ GET: "listCorehrEmployeeType"
2342
+ },
2343
+ "/corehr/v1/employee_types/{employee_type_id}": {
2344
+ DELETE: "deleteCorehrEmployeeType",
2345
+ PATCH: "patchCorehrEmployeeType",
2346
+ GET: "getCorehrEmployeeType"
2347
+ },
2348
+ "/corehr/v1/national_id_types": {
2349
+ POST: "createCorehrNationalIdType",
2350
+ GET: "listCorehrNationalIdType"
2351
+ },
2352
+ "/corehr/v1/national_id_types/{national_id_type_id}": {
2353
+ DELETE: "deleteCorehrNationalIdType",
2354
+ PATCH: "patchCorehrNationalIdType",
2355
+ GET: "getCorehrNationalIdType"
2356
+ },
2357
+ "/corehr/v1/working_hours_types": {
2358
+ POST: "createCorehrWorkingHoursType",
2359
+ GET: "listCorehrWorkingHoursType"
2360
+ },
2361
+ "/corehr/v1/working_hours_types/{working_hours_type_id}": {
2362
+ DELETE: "deleteCorehrWorkingHoursType",
2363
+ PATCH: "patchCorehrWorkingHoursType",
2364
+ GET: "getCorehrWorkingHoursType"
2365
+ },
2366
+ "/corehr/v2/basic_info/currencies/search": {
2367
+ POST: "searchCorehrBasicInfoCurrency"
2368
+ },
2369
+ "/corehr/v2/employees/batch_get": {
2370
+ POST: "batchGetCorehrEmployee"
2371
+ },
2372
+ "/corehr/v2/employees/search": {
2373
+ POST: "searchCorehrEmployee"
2374
+ },
2375
+ "/corehr/v1/employments": {
2376
+ POST: "createCorehrEmployment"
2377
+ },
2378
+ "/corehr/v1/employments/{employment_id}": {
2379
+ PATCH: "patchCorehrEmployment",
2380
+ DELETE: "deleteCorehrEmployment"
2381
+ },
2382
+ "/corehr/v2/persons": {
2383
+ POST: "createCorehrPerson"
2384
+ },
2385
+ "/corehr/v2/persons/{person_id}": {
2386
+ PATCH: "patchCorehrPerson"
2387
+ },
2388
+ "/corehr/v1/persons/{person_id}": {
2389
+ DELETE: "deleteCorehrPerson",
2390
+ GET: "getCorehrPerson"
2391
+ },
2392
+ "/corehr/v1/persons/upload": {
2393
+ POST: "uploadCorehrPerson"
2394
+ },
2395
+ "/corehr/v1/files/{id}": {
2396
+ GET: "getCorehrFile"
2397
+ },
2398
+ "/corehr/v1/job_datas": {
2399
+ POST: "createCorehrJobData",
2400
+ GET: "listCorehrJobData"
2401
+ },
2402
+ "/corehr/v1/job_datas/{job_data_id}": {
2403
+ DELETE: "deleteCorehrJobData",
2404
+ PATCH: "patchCorehrJobData",
2405
+ GET: "getCorehrJobData"
2406
+ },
2407
+ "/corehr/v2/employees/job_datas/query": {
2408
+ POST: "queryCorehrEmployeesJobData"
2409
+ },
2410
+ "/corehr/v2/employees/job_datas/batch_get": {
2411
+ POST: "batchGetCorehrEmployeesJobData"
2412
+ },
2413
+ "/corehr/v2/departments/parents": {
2414
+ POST: "parentsCorehrDepartment"
2415
+ },
2416
+ "/corehr/v2/departments/search": {
2417
+ POST: "searchCorehrDepartment"
2418
+ },
2419
+ "/corehr/v1/departments": {
2420
+ POST: "createCorehrDepartment",
2421
+ GET: "listCorehrDepartment"
2422
+ },
2423
+ "/corehr/v1/departments/{department_id}": {
2424
+ PATCH: "patchCorehrDepartment",
2425
+ DELETE: "deleteCorehrDepartment",
2426
+ GET: "getCorehrDepartment"
2427
+ },
2428
+ "/corehr/v2/departments/batch_get": {
2429
+ POST: "batchGetCorehrDepartment"
2430
+ },
2431
+ "/corehr/v2/locations/batch_get": {
2432
+ POST: "batchGetCorehrLocation"
2433
+ },
2434
+ "/corehr/v1/locations": {
2435
+ POST: "createCorehrLocation",
2436
+ GET: "listCorehrLocation"
2437
+ },
2438
+ "/corehr/v1/locations/{location_id}": {
2439
+ DELETE: "deleteCorehrLocation",
2440
+ GET: "getCorehrLocation"
2441
+ },
2442
+ "/corehr/v1/companies/{company_id}": {
2443
+ GET: "getCorehrCompany",
2444
+ PATCH: "patchCorehrCompany",
2445
+ DELETE: "deleteCorehrCompany"
2446
+ },
2447
+ "/corehr/v1/companies": {
2448
+ GET: "listCorehrCompany",
2449
+ POST: "createCorehrCompany"
2450
+ },
2451
+ "/corehr/v2/companies/batch_get": {
2452
+ POST: "batchGetCorehrCompany"
2453
+ },
2454
+ "/corehr/v2/cost_centers": {
2455
+ POST: "createCorehrCostCenter"
2456
+ },
2457
+ "/corehr/v2/cost_centers/{cost_center_id}": {
2458
+ PATCH: "patchCorehrCostCenter",
2459
+ DELETE: "deleteCorehrCostCenter"
2460
+ },
2461
+ "/corehr/v2/cost_centers/search": {
2462
+ POST: "searchCorehrCostCenter"
2463
+ },
2464
+ "/corehr/v2/cost_centers/{cost_center_id}/versions": {
2465
+ POST: "createCorehrCostCenterVersion"
2466
+ },
2467
+ "/corehr/v2/cost_centers/{cost_center_id}/versions/{version_id}": {
2468
+ PATCH: "patchCorehrCostCenterVersion",
2469
+ DELETE: "deleteCorehrCostCenterVersion"
2470
+ },
2471
+ "/corehr/v2/job_levels/batch_get": {
2472
+ POST: "batchGetCorehrJobLevel"
2473
+ },
2474
+ "/corehr/v1/job_levels": {
2475
+ POST: "createCorehrJobLevel",
2476
+ GET: "listCorehrJobLevel"
2477
+ },
2478
+ "/corehr/v1/job_levels/{job_level_id}": {
2479
+ DELETE: "deleteCorehrJobLevel",
2480
+ PATCH: "patchCorehrJobLevel",
2481
+ GET: "getCorehrJobLevel"
2482
+ },
2483
+ "/corehr/v2/job_families/batch_get": {
2484
+ POST: "batchGetCorehrJobFamily"
2485
+ },
2486
+ "/corehr/v1/job_families": {
2487
+ POST: "createCorehrJobFamily",
2488
+ GET: "listCorehrJobFamily"
2489
+ },
2490
+ "/corehr/v1/job_families/{job_family_id}": {
2491
+ DELETE: "deleteCorehrJobFamily",
2492
+ PATCH: "patchCorehrJobFamily",
2493
+ GET: "getCorehrJobFamily"
2494
+ },
2495
+ "/corehr/v1/jobs": {
2496
+ POST: "createCorehrJob",
2497
+ GET: "listCorehrJob"
2498
+ },
2499
+ "/corehr/v1/jobs/{job_id}": {
2500
+ DELETE: "deleteCorehrJob",
2501
+ PATCH: "patchCorehrJob",
2502
+ GET: "getCorehrJob"
2503
+ },
2504
+ "/corehr/v2/jobs/{job_id}": {
2505
+ GET: "getCorehrJob"
2506
+ },
2507
+ "/corehr/v2/jobs": {
2508
+ GET: "listCorehrJob"
2509
+ },
2510
+ "/corehr/v2/pre_hires": {
2511
+ POST: "createCorehrPreHire"
2512
+ },
2513
+ "/corehr/v1/pre_hires/{pre_hire_id}": {
2514
+ PATCH: "patchCorehrPreHire",
2515
+ DELETE: "deleteCorehrPreHire",
2516
+ GET: "getCorehrPreHire"
2517
+ },
2518
+ "/corehr/v1/pre_hires": {
2519
+ GET: "listCorehrPreHire"
2520
+ },
2521
+ "/corehr/v2/contracts/search": {
2522
+ POST: "searchCorehrContract"
2523
+ },
2524
+ "/corehr/v1/contracts": {
2525
+ POST: "createCorehrContract",
2526
+ GET: "listCorehrContract"
2527
+ },
2528
+ "/corehr/v1/contracts/{contract_id}": {
2529
+ DELETE: "deleteCorehrContract",
2530
+ PATCH: "patchCorehrContract",
2531
+ GET: "getCorehrContract"
2532
+ },
2533
+ "/corehr/v2/probation/search": {
2534
+ POST: "searchCorehrProbation"
2535
+ },
2536
+ "/corehr/v2/probation/enable_disable_assessment": {
2537
+ POST: "enableDisableAssessmentCorehrProbation"
2538
+ },
2539
+ "/corehr/v2/probation/assessments": {
2540
+ POST: "createCorehrProbationAssessment"
2541
+ },
2542
+ "/corehr/v2/probation/assessments/{assessment_id}": {
2543
+ PATCH: "patchCorehrProbationAssessment",
2544
+ DELETE: "deleteCorehrProbationAssessment"
2545
+ },
2546
+ "/corehr/v1/transfer_reasons/query": {
2547
+ GET: "queryCorehrTransferReason"
2548
+ },
2549
+ "/corehr/v1/transfer_types/query": {
2550
+ GET: "queryCorehrTransferType"
2551
+ },
2552
+ "/corehr/v1/job_changes": {
2553
+ POST: "createCorehrJobChange"
2554
+ },
2555
+ "/corehr/v2/job_changes/search": {
2556
+ POST: "searchCorehrJobChange"
2557
+ },
2558
+ "/corehr/v1/offboardings/query": {
2559
+ POST: "queryCorehrOffboarding"
2560
+ },
2561
+ "/corehr/v1/offboardings/submit": {
2562
+ POST: "submitCorehrOffboarding"
2563
+ },
2564
+ "/corehr/v1/offboardings/search": {
2565
+ POST: "searchCorehrOffboarding"
2566
+ },
2567
+ "/corehr/v1/leave_granting_records": {
2568
+ POST: "createCorehrLeaveGrantingRecord"
2569
+ },
2570
+ "/corehr/v1/leave_granting_records/{leave_granting_record_id}": {
2571
+ DELETE: "deleteCorehrLeaveGrantingRecord"
2572
+ },
2573
+ "/corehr/v1/leaves/leave_types": {
2574
+ GET: "leaveTypesCorehrLeave"
2575
+ },
2576
+ "/corehr/v1/leaves/leave_balances": {
2577
+ GET: "leaveBalancesCorehrLeave"
2578
+ },
2579
+ "/corehr/v1/leaves/leave_request_history": {
2580
+ GET: "leaveRequestHistoryCorehrLeave"
2581
+ },
2582
+ "/corehr/v2/employees/bps/batch_get": {
2583
+ POST: "batchGetCorehrEmployeesBp"
2584
+ },
2585
+ "/corehr/v2/bps/get_by_department": {
2586
+ POST: "getByDepartmentCorehrBp"
2587
+ },
2588
+ "/corehr/v2/bps": {
2589
+ GET: "listCorehrBp"
2590
+ },
2591
+ "/corehr/v1/security_groups/query": {
2592
+ POST: "queryCorehrSecurityGroup"
2593
+ },
2594
+ "/corehr/v1/assigned_users/search": {
2595
+ POST: "searchCorehrAssignedUser"
2596
+ },
2597
+ "/corehr/v1/security_groups": {
2598
+ GET: "listCorehrSecurityGroup"
2599
+ },
2600
+ "/corehr/v2/processes": {
2601
+ GET: "listCorehrProcess"
2602
+ },
2603
+ "/corehr/v2/processes/{process_id}": {
2604
+ GET: "getCorehrProcess"
2605
+ },
2606
+ "/corehr/v1/processes/{process_id}/form_variable_data": {
2607
+ GET: "getCorehrProcessFormVariableData"
2608
+ },
2609
+ "/corehr/v1/compensation_standards/match": {
2610
+ GET: "matchCorehrCompensationStandard"
2611
+ },
2612
+ "/hire/v1/jobs/combined_create": {
2613
+ POST: "combinedCreateHireJob"
2614
+ },
2615
+ "/hire/v1/jobs/{job_id}": {
2616
+ GET: "getHireJob"
2617
+ },
2618
+ "/hire/v1/jobs/{job_id}/config": {
2619
+ GET: "configHireJob"
2620
+ },
2621
+ "/hire/v1/jobs": {
2622
+ GET: "listHireJob"
2623
+ },
2624
+ "/hire/v1/jobs/{job_id}/combined_update": {
2625
+ POST: "combinedUpdateHireJob"
2626
+ },
2627
+ "/hire/v1/jobs/{job_id}/update_config": {
2628
+ POST: "updateConfigHireJob"
2629
+ },
2630
+ "/hire/v1/job_types": {
2631
+ GET: "listHireJobType"
2632
+ },
2633
+ "/hire/v1/jobs/{job_id}/recruiter": {
2634
+ GET: "recruiterHireJob"
2635
+ },
2636
+ "/hire/v1/job_requirements": {
2637
+ POST: "createHireJobRequirement",
2638
+ GET: "listHireJobRequirement"
2639
+ },
2640
+ "/hire/v1/job_requirements/search": {
2641
+ POST: "listByIdHireJobRequirement"
2642
+ },
2643
+ "/hire/v1/job_requirements/{job_requirement_id}": {
2644
+ PUT: "updateHireJobRequirement",
2645
+ DELETE: "deleteHireJobRequirement"
2646
+ },
2647
+ "/hire/v1/job_requirement_schemas": {
2648
+ GET: "listHireJobRequirementSchema"
2649
+ },
2650
+ "/hire/v1/job_processes": {
2651
+ GET: "listHireJobProcess"
2652
+ },
2653
+ "/hire/v1/registration_schemas": {
2654
+ GET: "listHireRegistrationSchema"
2655
+ },
2656
+ "/hire/v1/referral_websites/job_posts": {
2657
+ GET: "listHireReferralWebsiteJobPost"
2658
+ },
2659
+ "/hire/v1/referral_websites/job_posts/{job_post_id}": {
2660
+ GET: "getHireReferralWebsiteJobPost"
2661
+ },
2662
+ "/hire/v1/referrals/get_by_application": {
2663
+ GET: "getByApplicationHireReferral"
2664
+ },
2665
+ "/hire/v1/external_applications": {
2666
+ POST: "createHireExternalApplication"
2667
+ },
2668
+ "/hire/v1/external_applications/{external_application_id}": {
2669
+ PUT: "updateHireExternalApplication",
2670
+ DELETE: "deleteHireExternalApplication"
2671
+ },
2672
+ "/hire/v1/external_interviews": {
2673
+ POST: "createHireExternalInterview"
2674
+ },
2675
+ "/hire/v1/external_interview_assessments": {
2676
+ POST: "createHireExternalInterviewAssessment"
2677
+ },
2678
+ "/hire/v1/external_background_checks": {
2679
+ POST: "createHireExternalBackgroundCheck"
2680
+ },
2681
+ "/hire/v1/talents/add_to_folder": {
2682
+ POST: "addToFolderHireTalent"
2683
+ },
2684
+ "/hire/v1/talent_folders": {
2685
+ GET: "listHireTalentFolder"
2686
+ },
2687
+ "/hire/v1/talents/batch_get_id": {
2688
+ POST: "batchGetIdHireTalent"
2689
+ },
2690
+ "/hire/v1/talents": {
2691
+ GET: "listHireTalent"
2692
+ },
2693
+ "/hire/v1/talent_objects/query": {
2694
+ GET: "queryHireTalentObject"
2695
+ },
2696
+ "/hire/v1/talents/{talent_id}": {
2697
+ GET: "getHireTalent"
2698
+ },
2699
+ "/hire/v1/applications": {
2700
+ POST: "createHireApplication",
2701
+ GET: "listHireApplication"
2702
+ },
2703
+ "/hire/v1/applications/{application_id}/terminate": {
2704
+ POST: "terminateHireApplication"
2705
+ },
2706
+ "/hire/v1/applications/{application_id}": {
2707
+ GET: "getHireApplication"
2708
+ },
2709
+ "/hire/v1/evaluations": {
2710
+ GET: "listHireEvaluation"
2711
+ },
2712
+ "/hire/v1/questionnaires": {
2713
+ GET: "listHireQuestionnaire"
2714
+ },
2715
+ "/hire/v1/interviews": {
2716
+ GET: "listHireInterview"
2717
+ },
2718
+ "/hire/v1/offers": {
2719
+ POST: "createHireOffer",
2720
+ GET: "listHireOffer"
2721
+ },
2722
+ "/hire/v1/offers/{offer_id}": {
2723
+ PUT: "updateHireOffer",
2724
+ GET: "getHireOffer"
2725
+ },
2726
+ "/hire/v1/applications/{application_id}/offer": {
2727
+ GET: "offerHireApplication"
2728
+ },
2729
+ "/hire/v1/offers/{offer_id}/offer_status": {
2730
+ PATCH: "offerStatusHireOffer"
2731
+ },
2732
+ "/hire/v1/offers/{offer_id}/intern_offer_status": {
2733
+ POST: "internOfferStatusHireOffer"
2734
+ },
2735
+ "/hire/v1/ehr_import_tasks/{ehr_import_task_id}": {
2736
+ PATCH: "patchHireEhrImportTask"
2737
+ },
2738
+ "/hire/v1/applications/{application_id}/transfer_onboard": {
2739
+ POST: "transferOnboardHireApplication"
2740
+ },
2741
+ "/hire/v1/employees/{employee_id}": {
2742
+ PATCH: "patchHireEmployee",
2743
+ GET: "getHireEmployee"
2744
+ },
2745
+ "/hire/v1/employees/get_by_application": {
2746
+ GET: "getByApplicationHireEmployee"
2747
+ },
2748
+ "/hire/v1/notes": {
2749
+ POST: "createHireNote",
2750
+ GET: "listHireNote"
2751
+ },
2752
+ "/hire/v1/notes/{note_id}": {
2753
+ PATCH: "patchHireNote",
2754
+ GET: "getHireNote"
2755
+ },
2756
+ "/hire/v1/resume_sources": {
2757
+ GET: "listHireResumeSource"
2758
+ },
2759
+ "/hire/v1/eco_account_custom_fields": {
2760
+ POST: "createHireEcoAccountCustomField"
2761
+ },
2762
+ "/hire/v1/eco_account_custom_fields/batch_update": {
2763
+ PATCH: "batchUpdateHireEcoAccountCustomField"
2764
+ },
2765
+ "/hire/v1/eco_account_custom_fields/batch_delete": {
2766
+ POST: "batchDeleteHireEcoAccountCustomField"
2767
+ },
2768
+ "/hire/v1/eco_background_check_custom_fields": {
2769
+ POST: "createHireEcoBackgroundCheckCustomField"
2770
+ },
2771
+ "/hire/v1/eco_background_check_custom_fields/batch_update": {
2772
+ PATCH: "batchUpdateHireEcoBackgroundCheckCustomField"
2773
+ },
2774
+ "/hire/v1/eco_background_check_custom_fields/batch_delete": {
2775
+ POST: "batchDeleteHireEcoBackgroundCheckCustomField"
2776
+ },
2777
+ "/hire/v1/eco_background_check_packages": {
2778
+ POST: "createHireEcoBackgroundCheckPackage"
2779
+ },
2780
+ "/hire/v1/eco_background_check_packages/batch_update": {
2781
+ PATCH: "batchUpdateHireEcoBackgroundCheckPackage"
2782
+ },
2783
+ "/hire/v1/eco_background_check_packages/batch_delete": {
2784
+ POST: "batchDeleteHireEcoBackgroundCheckPackage"
2785
+ },
2786
+ "/hire/v1/eco_background_checks/update_progress": {
2787
+ POST: "updateProgressHireEcoBackgroundCheck"
2788
+ },
2789
+ "/hire/v1/eco_background_checks/update_result": {
2790
+ POST: "updateResultHireEcoBackgroundCheck"
2791
+ },
2792
+ "/hire/v1/eco_background_checks/cancel": {
2793
+ POST: "cancelHireEcoBackgroundCheck"
2794
+ },
2795
+ "/hire/v1/eco_exam_papers": {
2796
+ POST: "createHireEcoExamPaper"
2797
+ },
2798
+ "/hire/v1/eco_exam_papers/batch_update": {
2799
+ PATCH: "batchUpdateHireEcoExamPaper"
2800
+ },
2801
+ "/hire/v1/eco_exam_papers/batch_delete": {
2802
+ POST: "batchDeleteHireEcoExamPaper"
2803
+ },
2804
+ "/hire/v1/eco_exams/{exam_id}/login_info": {
2805
+ POST: "loginInfoHireEcoExam"
2806
+ },
2807
+ "/hire/v1/eco_exams/{exam_id}/update_result": {
2808
+ POST: "updateResultHireEcoExam"
2809
+ },
2810
+ "/hire/v1/referral_account": {
2811
+ POST: "createHireReferralAccount"
2812
+ },
2813
+ "/hire/v1/referral_account/{referral_account_id}/deactivate": {
2814
+ POST: "deactivateHireReferralAccount"
2815
+ },
2816
+ "/hire/v1/referral_account/{referral_account_id}/withdraw": {
2817
+ POST: "withdrawHireReferralAccount"
2818
+ },
2819
+ "/hire/v1/referral_account/reconciliation": {
2820
+ POST: "reconciliationHireReferralAccount"
2821
+ },
2822
+ "/hire/v1/attachments/{attachment_id}": {
2823
+ GET: "getHireAttachment"
2824
+ },
2825
+ "/hire/v1/attachments/{attachment_id}/preview": {
2826
+ GET: "previewHireAttachment"
2827
+ },
2828
+ "/okr/v1/periods": {
2829
+ POST: "createOkrPeriod",
2830
+ GET: "listOkrPeriod"
2831
+ },
2832
+ "/okr/v1/periods/{period_id}": {
2833
+ PATCH: "patchOkrPeriod"
2834
+ },
2835
+ "/okr/v1/period_rules": {
2836
+ GET: "listOkrPeriodRule"
2837
+ },
2838
+ "/okr/v1/users/{user_id}/okrs": {
2839
+ GET: "listOkrUserOkr"
2840
+ },
2841
+ "/okr/v1/okrs/batch_get": {
2842
+ GET: "batchGetOkr"
2843
+ },
2844
+ "/okr/v1/progress_records": {
2845
+ POST: "createOkrProgressRecord"
2846
+ },
2847
+ "/okr/v1/progress_records/{progress_id}": {
2848
+ DELETE: "deleteOkrProgressRecord",
2849
+ PUT: "updateOkrProgressRecord",
2850
+ GET: "getOkrProgressRecord"
2851
+ },
2852
+ "/okr/v1/images/upload": {
2853
+ POST: "uploadOkrImage"
2854
+ },
2855
+ "/human_authentication/v1/identities": {
2856
+ POST: "createHumanAuthenticationIdentity"
2857
+ },
2858
+ "/acs/v1/visitors/{visitor_id}": {
2859
+ DELETE: "deleteAcsVisitor"
2860
+ },
2861
+ "/acs/v1/visitors": {
2862
+ POST: "createAcsVisitor"
2863
+ },
2864
+ "/acs/v1/rule_external/device_bind": {
2865
+ POST: "deviceBindAcsRuleExternal"
2866
+ },
2867
+ "/acs/v1/rule_external": {
2868
+ GET: "getAcsRuleExternal",
2869
+ DELETE: "deleteAcsRuleExternal",
2870
+ POST: "createAcsRuleExternal"
2871
+ },
2872
+ "/acs/v1/users/{user_id}": {
2873
+ PATCH: "patchAcsUser",
2874
+ GET: "getAcsUser"
2875
+ },
2876
+ "/acs/v1/users": {
2877
+ GET: "listAcsUser"
2878
+ },
2879
+ "/acs/v1/users/{user_id}/face": {
2880
+ PUT: "updateAcsUserFace",
2881
+ GET: "getAcsUserFace"
2882
+ },
2883
+ "/acs/v1/devices": {
2884
+ GET: "listAcsDevice"
2885
+ },
2886
+ "/acs/v1/access_records": {
2887
+ GET: "listAcsAccessRecord"
2888
+ },
2889
+ "/acs/v1/access_records/{access_record_id}/access_photo": {
2890
+ GET: "getAcsAccessRecordAccessPhoto"
2891
+ },
2892
+ "/performance/v1/semesters": {
2893
+ GET: "listPerformanceSemester"
2894
+ },
2895
+ "/performance/v1/stage_tasks/find_by_user_list": {
2896
+ POST: "findByUserListPerformanceStageTask"
2897
+ },
2898
+ "/performance/v1/stage_tasks/find_by_page": {
2899
+ POST: "findByPagePerformanceStageTask"
2900
+ },
2901
+ "/performance/v1/review_datas/query": {
2902
+ POST: "queryPerformanceReviewData"
2903
+ },
2904
+ "/lingo/v1/drafts": {
2905
+ POST: "createLingoDraft"
2906
+ },
2907
+ "/lingo/v1/drafts/{draft_id}": {
2908
+ PUT: "updateLingoDraft"
2909
+ },
2910
+ "/lingo/v1/entities": {
2911
+ POST: "createLingoEntity",
2912
+ GET: "listLingoEntity"
2913
+ },
2914
+ "/lingo/v1/entities/{entity_id}": {
2915
+ PUT: "updateLingoEntity",
2916
+ DELETE: "deleteLingoEntity",
2917
+ GET: "getLingoEntity"
2918
+ },
2919
+ "/lingo/v1/entities/match": {
2920
+ POST: "matchLingoEntity"
2921
+ },
2922
+ "/lingo/v1/entities/search": {
2923
+ POST: "searchLingoEntity"
2924
+ },
2925
+ "/lingo/v1/entities/highlight": {
2926
+ POST: "highlightLingoEntity"
2927
+ },
2928
+ "/lingo/v1/classifications": {
2929
+ GET: "listLingoClassification"
2930
+ },
2931
+ "/lingo/v1/repos": {
2932
+ GET: "listLingoRepo"
2933
+ },
2934
+ "/lingo/v1/files/upload": {
2935
+ POST: "uploadLingoFile"
2936
+ },
2937
+ "/lingo/v1/files/{file_token}/download": {
2938
+ GET: "downloadLingoFile"
2939
+ },
2940
+ "/security_and_compliance/v1/openapi_logs/list_data": {
2941
+ POST: "listDataSecurityAndComplianceOpenapiLog"
2942
+ },
2943
+ "/admin/v1/audit_infos": {
2944
+ GET: "listAdminAuditInfo"
2945
+ },
2946
+ "/minutes/v1/minutes/{minute_token}/statistics": {
2947
+ GET: "getMinutesMinuteStatistics"
2948
+ },
2949
+ "/minutes/v1/minutes/{minute_token}": {
2950
+ GET: "getMinutesMinute"
2951
+ },
2952
+ "/workplace/v1/workplace_access_data/search": {
2953
+ POST: "searchWorkplaceWorkplaceAccessData"
2954
+ },
2955
+ "/workplace/v1/custom_workplace_access_data/search": {
2956
+ POST: "searchWorkplaceCustomWorkplaceAccessData"
2957
+ },
2958
+ "/workplace/v1/workplace_block_access_data/search": {
2959
+ POST: "searchWorkplaceWorkplaceBlockAccessData"
2960
+ },
2961
+ "/application/v5/applications/favourite": {
2962
+ GET: "favouriteApplication"
2963
+ },
2964
+ "/application/v5/applications/recommend": {
2965
+ GET: "recommendApplication"
2966
+ },
2967
+ "/application/v6/app_recommend_rules": {
2968
+ GET: "listApplicationAppRecommendRule"
2969
+ },
2970
+ "/mdm/v1/user_auth_data_relations/bind": {
2971
+ POST: "bindMdmUserAuthDataRelation"
2972
+ },
2973
+ "/mdm/v1/user_auth_data_relations/unbind": {
2974
+ POST: "unbindMdmUserAuthDataRelation"
2975
+ },
2976
+ "/report/v1/rules/query": {
2977
+ GET: "queryReportRule"
2978
+ },
2979
+ "/report/v1/rules/{rule_id}/views/remove": {
2980
+ POST: "removeReportRuleView"
2981
+ },
2982
+ "/report/v1/tasks/query": {
2983
+ POST: "queryReportTask"
2984
+ },
2985
+ "/authen/v1/access_token": {
2986
+ POST: "createAuthenAccessToken"
2987
+ },
2988
+ "/authen/v1/refresh_access_token": {
2989
+ POST: "createAuthenRefreshAccessToken"
2990
+ },
2991
+ "/baike/v1/drafts": {
2992
+ POST: "createBaikeDraft"
2993
+ },
2994
+ "/baike/v1/drafts/{draft_id}": {
2995
+ PUT: "updateBaikeDraft"
2996
+ },
2997
+ "/baike/v1/entities": {
2998
+ POST: "createBaikeEntity",
2999
+ GET: "listBaikeEntity"
3000
+ },
3001
+ "/baike/v1/entities/{entity_id}": {
3002
+ PUT: "updateBaikeEntity",
3003
+ GET: "getBaikeEntity"
3004
+ },
3005
+ "/baike/v1/entities/match": {
3006
+ POST: "matchBaikeEntity"
3007
+ },
3008
+ "/baike/v1/entities/search": {
3009
+ POST: "searchBaikeEntity"
3010
+ },
3011
+ "/baike/v1/entities/highlight": {
3012
+ POST: "highlightBaikeEntity"
3013
+ },
3014
+ "/baike/v1/entities/extract": {
3015
+ POST: "extractBaikeEntity"
3016
+ },
3017
+ "/baike/v1/classifications": {
3018
+ GET: "listBaikeClassification"
3019
+ },
3020
+ "/baike/v1/files/upload": {
3021
+ POST: "uploadBaikeFile"
3022
+ },
3023
+ "/baike/v1/files/{file_token}/download": {
3024
+ GET: "downloadBaikeFile"
3025
+ },
3026
+ "/hire/v1/applications/{application_id}/interviews": {
3027
+ GET: "listHireApplicationInterview"
3028
+ },
3029
+ "/hire/v1/jobs/{job_id}/managers/{manager_id}": {
3030
+ GET: "getHireJobManager"
3031
+ },
3032
+ "/hire/v1/offer_schemas/{offer_schema_id}": {
3033
+ GET: "getHireOfferSchema"
3034
+ },
3035
+ "/corehr/v1/subregions": {
3036
+ GET: "listCorehrSubregion"
3037
+ },
3038
+ "/corehr/v1/subregions/{subregion_id}": {
3039
+ GET: "getCorehrSubregion"
3040
+ },
3041
+ "/corehr/v1/subdivisions": {
3042
+ GET: "listCorehrSubdivision"
3043
+ },
3044
+ "/corehr/v1/subdivisions/{subdivision_id}": {
3045
+ GET: "getCorehrSubdivision"
3046
+ },
3047
+ "/corehr/v1/country_regions": {
3048
+ GET: "listCorehrCountryRegion"
3049
+ },
3050
+ "/corehr/v1/country_regions/{country_region_id}": {
3051
+ GET: "getCorehrCountryRegion"
3052
+ },
3053
+ "/corehr/v1/currencies": {
3054
+ GET: "listCorehrCurrency"
3055
+ },
3056
+ "/corehr/v1/currencies/{currency_id}": {
3057
+ GET: "getCorehrCurrency"
3058
+ },
3059
+ "/vc/v1/room_configs/set_checkboard_access_code": {
3060
+ POST: "setCheckboardAccessCodeVcRoomConfig"
3061
+ },
3062
+ "/vc/v1/room_configs/set_room_access_code": {
3063
+ POST: "setRoomAccessCodeVcRoomConfig"
3064
+ },
3065
+ "/vc/v1/room_configs/query": {
3066
+ GET: "queryVcRoomConfig"
3067
+ },
3068
+ "/vc/v1/room_configs/set": {
3069
+ POST: "setVcRoomConfig"
3070
+ }
3071
+ });
3072
+
3073
+ // src/bot.ts
3074
+ var LarkBot = class extends import_core5.Bot {
3075
+ static {
3076
+ __name(this, "LarkBot");
3077
+ }
3078
+ static inject = ["server", "http"];
3079
+ static MessageEncoder = LarkMessageEncoder;
3080
+ _token;
3081
+ _refresher;
3082
+ http;
3083
+ assetsQuester;
3084
+ internal;
3085
+ constructor(ctx, config) {
3086
+ super(ctx, config, "lark");
3087
+ if (!config.selfUrl && !ctx.server.config.selfUrl) {
3088
+ this.logger.warn("selfUrl is not set, some features may not work");
3089
+ }
3090
+ this.http = ctx.http.extend({
3091
+ endpoint: config.endpoint
3092
+ });
3093
+ this.assetsQuester = ctx.http;
3094
+ this.internal = new Internal(this);
3095
+ ctx.plugin(HttpServer, this);
3096
+ }
3097
+ get appId() {
3098
+ return this.config.appId;
3099
+ }
3100
+ async initialize() {
3101
+ await this.refreshToken();
3102
+ const { bot } = await this.http.get("/bot/v3/info");
3103
+ this.selfId = bot.open_id;
3104
+ this.user.avatar = bot.avatar_url;
3105
+ this.user.name = bot.app_name;
3106
+ this.online();
3107
+ }
3108
+ async refreshToken() {
3109
+ const { tenant_access_token: token } = await this.internal.tenantAccessTokenInternalAuth({
3110
+ app_id: this.config.appId,
3111
+ app_secret: this.config.appSecret
3112
+ });
3113
+ this.logger.debug("refreshed token %s", token);
3114
+ this.token = token;
3115
+ if (this._refresher)
3116
+ clearTimeout(this._refresher);
3117
+ this._refresher = setTimeout(() => this.refreshToken(), 3600 * 1e3);
3118
+ this.online();
3119
+ }
3120
+ get token() {
3121
+ return this._token;
3122
+ }
3123
+ set token(v) {
3124
+ this._token = v;
3125
+ this.http.config.headers.Authorization = `Bearer ${v}`;
3126
+ }
3127
+ async editMessage(channelId, messageId, content) {
3128
+ await this.internal.updateImMessage(messageId, {
3129
+ content: import_core5.h.normalize(content).join(""),
3130
+ msg_type: "text"
3131
+ });
3132
+ }
3133
+ async deleteMessage(channelId, messageId) {
3134
+ await this.internal.deleteImMessage(messageId);
3135
+ }
3136
+ async getMessage(channelId, messageId, recursive = true) {
3137
+ const data = await this.internal.getImMessage(messageId);
3138
+ const message = await decodeMessage(this, data.data.items[0], recursive);
3139
+ const im = await this.internal.getImChat(channelId);
3140
+ message.channel.type = im.data.chat_mode === "p2p" ? import_core5.Universal.Channel.Type.DIRECT : import_core5.Universal.Channel.Type.TEXT;
3141
+ return message;
3142
+ }
3143
+ async getMessageList(channelId, before) {
3144
+ const { data: messages } = await this.internal.listImMessage({ container_id_type: "chat", container_id: channelId, page_token: before });
3145
+ const data = await Promise.all(messages.items.reverse().map((data2) => decodeMessage(this, data2)));
3146
+ return { data, next: data[0]?.id };
3147
+ }
3148
+ async getUser(userId, guildId) {
3149
+ const data = await this.internal.getContactUser(userId);
3150
+ return decodeUser(data.data.user);
3151
+ }
3152
+ async getChannel(channelId) {
3153
+ const { data } = await this.internal.getImChat(channelId);
3154
+ return decodeChannel(channelId, data);
3155
+ }
3156
+ async getChannelList(guildId) {
3157
+ return { data: [await this.getChannel(guildId)] };
3158
+ }
3159
+ async getGuild(guildId) {
3160
+ const { data } = await this.internal.getImChat(guildId);
3161
+ return decodeGuild(data);
3162
+ }
3163
+ async getGuildList(after) {
3164
+ const { data: guilds } = await this.internal.listImChat({ page_token: after });
3165
+ return { data: guilds.items.map(decodeGuild), next: guilds.page_token };
3166
+ }
3167
+ async getGuildMemberList(guildId, after) {
3168
+ const { data: users } = await this.internal.getImChatMembers(guildId, { page_token: after });
3169
+ const data = users.items.map((v) => ({ user: { id: v.member_id, name: v.name }, name: v.name }));
3170
+ return { data, next: users.page_token };
3171
+ }
3172
+ };
3173
+ ((LarkBot2) => {
3174
+ LarkBot2.Config = import_core5.Schema.intersect([
3175
+ import_core5.Schema.object({
3176
+ platform: import_core5.Schema.union(["feishu", "lark"]).required().description("平台名称。"),
3177
+ appId: import_core5.Schema.string().required().description("机器人的应用 ID。"),
3178
+ appSecret: import_core5.Schema.string().role("secret").required().description("机器人的应用密钥。"),
3179
+ encryptKey: import_core5.Schema.string().role("secret").description("机器人的 Encrypt Key。"),
3180
+ verificationToken: import_core5.Schema.string().description("事件推送的验证令牌。")
3181
+ }),
3182
+ import_core5.Schema.union([
3183
+ import_core5.Schema.intersect([
3184
+ import_core5.Schema.object({
3185
+ platform: import_core5.Schema.const("feishu").required()
3186
+ }),
3187
+ import_core5.HTTP.createConfig("https://open.feishu.cn/open-apis/"),
3188
+ HttpServer.createConfig("/feishu")
3189
+ ]),
3190
+ import_core5.Schema.intersect([
3191
+ import_core5.Schema.object({
3192
+ platform: import_core5.Schema.const("lark").required()
3193
+ }),
3194
+ import_core5.HTTP.createConfig("https://open.larksuite.com/open-apis/"),
3195
+ HttpServer.createConfig("/lark")
3196
+ ])
3197
+ ])
3198
+ ]);
3199
+ })(LarkBot || (LarkBot = {}));
3200
+
3201
+ // src/index.ts
3202
+ var src_default = LarkBot;
3203
+ // Annotate the CommonJS export names for ESM import in node:
3204
+ 0 && (module.exports = {
3205
+ Feishu,
3206
+ FeishuBot,
3207
+ Lark,
3208
+ LarkBot
3209
+ });
3210
+ //# sourceMappingURL=index.cjs.map