@@ -86,9949 +86,372 @@
8686 *
8787 * OpenAPI spec version: 1.0
8888 */
89export interface AcceptAgreementCmd {
90 version: string;
89export interface TotpCodeCmd {
90 code: string;
9191}
9292
93export interface AcceptAgreementResp {
94 recorded: boolean;
93export interface EnvelopeNoData {
94 code: number;
95 data?: unknown;
96 /** @nullable */
97 error?: string | null;
98 /** @nullable */
99 error_code?: string | null;
100 message: string;
101 request_id?: string;
95102}
96103
97export interface AcceptRoomInviteCmd {
104export interface TotpEnableCmd {
98105 code: string;
106 password: string;
99107}
100108
101export type AccessKeyScope = "read" | "write";
102export interface AccountDeletionDto {
103 /** @nullable */
104 last_error?: string | null;
105 purge_after: string;
106 requested_at: string;
107 status: string;
108}
109export type EnvelopeRecoveryCodesRespData = {
110 codes: string[];
111 /** @minimum 0 */
112 total: number;
113 /** @minimum 0 */
114 used: number;
115};
109116
110export type WhitelistKind = "Push" | "Merge" | "Approval";
111export interface AddBranchWhitelistCmd {
117export interface EnvelopeRecoveryCodesResp {
118 code: number;
119 data?: EnvelopeRecoveryCodesRespData;
112120 /** @nullable */
113 group_id?: string | null;
114 kind: WhitelistKind;
121 error?: string | null;
115122 /** @nullable */
116 user_id?: number | null;
123 error_code?: string | null;
124 message: string;
125 request_id?: string;
117126}
118127
119export type SpaceMemberRole = "member" | "admin" | "owner";
120export interface AddMemberBody {
121 role?: null | SpaceMemberRole;
122 role_keys?: string[];
123 user_id: number;
128export interface RegenerateRecoveryCodesCmd {
129 password: string;
124130}
125131
126export interface AddMembersCmd {
127 user_ids: number[];
128}
132export type EnvelopeTotpSetupRespData = {
133 otpauth_uri: string;
134 secret: string;
135};
129136
130export interface AddTagWhitelistCmd {
131 user_id: number;
137export interface EnvelopeTotpSetupResp {
138 code: number;
139 data?: EnvelopeTotpSetupRespData;
140 /** @nullable */
141 error?: string | null;
142 /** @nullable */
143 error_code?: string | null;
144 message: string;
145 request_id?: string;
132146}
133147
134export interface AgreementDoc {
135 content_md: string;
136 key: string;
137 title: string;
138 version: string;
139}
148export type EnvelopeTotpStatusRespData = {
149 enabled: boolean;
150};
140151
141/**
142 * 允许加入的历史开关,映射 `spaces.allow_join_level`。
143 */
144export type AllowJoinLevel =
145 | "None"
146 | "NeedMailActive"
147 | "NeedMailActiveAndLastOneMid"
148 | "NeedMailActiveAndLastOneHours"
149 | "NeedMailActiveAndPhoneActive";
150export interface AppliedPatchDto {
151 applied: boolean;
152 conflicts: string[];
153}
154
155export type ArchiveFormatDto = "tar" | "tar_gz" | "tar_bz2" | "zip";
156export interface ArchiveCreateCmd {
157 format: ArchiveFormatDto;
152export interface EnvelopeTotpStatusResp {
153 code: number;
154 data?: EnvelopeTotpStatusRespData;
158155 /** @nullable */
159 path_filter?: string | null;
160 revision: string;
161}
162
163export interface ArchiveResultDto {
164 cache_key: string;
156 error?: string | null;
165157 /** @nullable */
166 download_url?: string | null;
167 format: string;
168 size: number;
158 error_code?: string | null;
159 message: string;
160 request_id?: string;
169161}
170162
171export interface AssignCmd {
172 /** 用户名或 UUID。 */
173 user: string;
174}
163export type EnvelopeChallengeResponseData = {
164 context: string;
165 /** @minimum 0 */
166 difficulty: number;
167 /** @minimum 0 */
168 expires_at: number;
169 /** @minimum 0 */
170 issued_at: number;
171};
175172
176export interface AssignGroupCmd {
177 group_id: string;
173export interface EnvelopeChallengeResponse {
174 code: number;
175 data?: EnvelopeChallengeResponseData;
176 /** @nullable */
177 error?: string | null;
178 /** @nullable */
179 error_code?: string | null;
180 message: string;
181 request_id?: string;
178182}
179183
180export interface AssignRoleBody {
181 member_id: string;
182 role_key: string;
184export interface PowProofRequest {
185 /** @minimum 0 */
186 nonce: number;
187 /** @items.minimum 0 */
188 payload: number[];
183189}
184190
185export interface AttachLabelCmd {
186 /** 标签 UUID 或名称(同一仓库目录内的标签)。 */
187 label: string;
191export interface UserLoginRequest {
192 identity: string;
193 password_hash: string;
194 pow_payload: PowProofRequest;
188195}
189196
190export type AttachmentStatus = "Pending" | "Uploaded";
191export interface AttachmentDto {
192 content_type: string;
193 created_at: string;
197export type EnvelopeUserLoginResponseData = {
194198 /** @nullable */
195 description?: string | null;
199 challenge?: string | null;
196200 /** @nullable */
197 duration_secs?: number | null;
198 filename: string;
201 displayname?: string | null;
202 mfa_required: boolean;
203 user_id: number;
204 username: string;
205};
206
207export interface EnvelopeUserLoginResponse {
208 code: number;
209 data?: EnvelopeUserLoginResponseData;
199210 /** @nullable */
200 height?: number | null;
201 id: string;
211 error?: string | null;
202212 /** @nullable */
203 message_id?: string | null;
204 /** @nullable */
205 room_id?: string | null;
206 size: number;
207 status: AttachmentStatus;
208 user_id: number;
209 /** @nullable */
210 width?: number | null;
213 error_code?: string | null;
214 message: string;
215 request_id?: string;
211216}
212217
213export type Audience = "Everyone" | "FollowingOnly" | "Nobody";
214export type AuthorType = "User" | "Bot" | "Webhook";
215export type AvatarFormat = "jpg" | "png" | "webp" | "gif";
216export interface AvatarDto {
217 /**
218 * Size of the uploaded original in bytes.
219 * @minimum 0
220 */
221 bytes: number;
222 /** Format of the uploaded original. */
223 format: AvatarFormat;
224 updated_at: string;
225 /**
226 * Browser-facing URL. Points at the compressed derivative when one exists,
227 * and at the uploaded bytes otherwise.
228 */
229 url: string;
230 user_id: number;
218export interface LoginCodeRequest {
219 email: string;
220 pow_payload: PowProofRequest;
231221}
232222
233export interface BanMemberBody {
234 /** @nullable */
235 reason?: string | null;
236}
223export type EnvelopeLoginCodeResponseData = {
224 /** @minimum 0 */
225 expires_in_secs: number;
226};
237227
238export interface BanRoomMemberCmd {
228export interface EnvelopeLoginCodeResponse {
229 code: number;
230 data?: EnvelopeLoginCodeResponseData;
239231 /** @nullable */
240 expires_at?: string | null;
232 error?: string | null;
241233 /** @nullable */
242 reason?: string | null;
243 user_id: number;
234 error_code?: string | null;
235 message: string;
236 request_id?: string;
244237}
245238
246export interface BlameRangeDto {
247 abbreviated_oid: string;
248 commit_sha: string;
249 ending_line: number;
250 /** @nullable */
251 path?: string | null;
252 starting_line: number;
239export interface LoginCodeVerifyRequest {
240 email: string;
241 email_code: string;
242 pow_payload: PowProofRequest;
253243}
254244
255export interface BlobContentDto {
256 /** @items.minimum 0 */
257 data: number[];
258 is_binary: boolean;
259 oid: string;
260 size: number;
261 truncated: boolean;
245export interface LoginVerifyRequest {
246 challenge: string;
247 code: string;
262248}
263249
264export interface LfsPointerDto {
250export type EnvelopeLogoutResponseData = {
265251 /** @nullable */
266 oid?: string | null;
267 /** @nullable */
268 size?: number | null;
269 version: string;
270}
252 user_id?: number | null;
253};
271254
272export interface BlobMetaDto {
273 is_binary: boolean;
274 is_lfs_pointer: boolean;
275 lfs?: null | LfsPointerDto;
276 oid: string;
277 size: number;
255export interface EnvelopeLogoutResponse {
256 code: number;
257 data?: EnvelopeLogoutResponseData;
258 /** @nullable */
259 error?: string | null;
260 /** @nullable */
261 error_code?: string | null;
262 message: string;
263 request_id?: string;
278264}
279265
280export interface BoardDto {
281 closed_issues_count: number;
266export type EnvelopeMeResponseData = {
267 /** @nullable */
268 avatar_url?: string | null;
282269 created_at: string;
283270 /** @nullable */
284 description?: string | null;
285 dir_id: string;
271 displayname?: string | null;
272 email: string;
273 /** @nullable */
274 email_verified_at?: string | null;
275 is_admin: boolean;
276 user_id: number;
277 username: string;
278 version: number;
279};
280
281export interface EnvelopeMeResponse {
282 code: number;
283 data?: EnvelopeMeResponseData;
286284 /** @nullable */
287 icon?: string | null;
288 id: string;
289 name: string;
290 open_issues_count: number;
291 /**
292 * Number prefix for the board's issues (`CAD` renders as `CAD-12`).
293 * @nullable
294 */
295 prefix?: string | null;
285 error?: string | null;
296286 /** @nullable */
297 updated_at?: string | null;
287 error_code?: string | null;
288 message: string;
289 request_id?: string;
290}
291
292export interface ChangePasswordCmd {
293 new_password: string;
294 old_password: string;
298295}
299296
300export interface BoardPath {
301 board_id: string;
302 space_name: string;
297export interface PasswordResetRequest {
298 email: string;
299 pow_payload: PowProofRequest;
303300}
304301
305export interface BookmarkDto {
306 created_at: string;
307 created_by_id: number;
302export type EnvelopePasswordResetResponseData = {
303 /** @minimum 0 */
304 expires_in_secs: number;
305};
306
307export interface EnvelopePasswordResetResponse {
308 code: number;
309 data?: EnvelopePasswordResetResponseData;
308310 /** @nullable */
309 emoji?: string | null;
310 id: string;
311 position: number;
312 room_id: string;
313 title: string;
311 error?: string | null;
314312 /** @nullable */
315 url?: string | null;
313 error_code?: string | null;
314 message: string;
315 request_id?: string;
316316}
317317
318export interface BranchDto {
319 commit_sha: string;
320 created_at: string;
321 /** @nullable */
322 deleted_at?: string | null;
323 is_deleted: boolean;
324 is_protected: boolean;
325 name: string;
326 updated_at: string;
318export interface PasswordResetConfirmRequest {
319 password_hash: string;
320 pow_payload: PowProofRequest;
321 token: string;
327322}
328323
329export interface BranchInfoDto {
324export type EnvelopePasswordResetConfirmResponseData = {
325 user_id: number;
326};
327
328export interface EnvelopePasswordResetConfirmResponse {
329 code: number;
330 data?: EnvelopePasswordResetConfirmResponseData;
331 /** @nullable */
332 error?: string | null;
330333 /** @nullable */
331 commit_message?: string | null;
332 commit_sha: string;
333 is_protected: boolean;
334 name: string;
334 error_code?: string | null;
335 message: string;
336 request_id?: string;
335337}
336338
337export interface BranchPolicyDto {
338 block_on_change_requested_reviews: boolean;
339 block_on_outdated_branch: boolean;
340 block_on_rejected_reviews: boolean;
341 branch_pattern: string;
342 created_at: string;
343 dismiss_stale_approvals: boolean;
344 enable_approvals_whitelist: boolean;
345 enable_force_push: boolean;
346 enable_merge_whitelist: boolean;
347 enable_push: boolean;
348 enable_push_whitelist: boolean;
349 id: string;
350 protected_file_patterns: string;
351 push_whitelist_deploy_keys: boolean;
352 repo_id: string;
353 require_signed_commits: boolean;
354 required_approvals: number;
355 required_status_contexts: string;
356 unprotected_file_patterns: string;
357 updated_at: string;
339export interface UserRegisterRequest {
340 birth_date: string;
341 /** @nullable */
342 displayname?: string | null;
343 email: string;
344 email_code: string;
345 password_hash: string;
346 pow_payload: PowProofRequest;
347 username: string;
358348}
359349
360export interface BranchPolicyFlags {
350export type EnvelopeUserRegisterResponseData = {
361351 /** @nullable */
362 block_on_change_requested_reviews?: boolean | null;
352 displayname?: string | null;
353 user_id: number;
354 username: string;
355};
356
357export interface EnvelopeUserRegisterResponse {
358 code: number;
359 data?: EnvelopeUserRegisterResponseData;
363360 /** @nullable */
364 block_on_outdated_branch?: boolean | null;
361 error?: string | null;
365362 /** @nullable */
366 block_on_rejected_reviews?: boolean | null;
363 error_code?: string | null;
364 message: string;
365 request_id?: string;
366}
367
368export interface RegisterCodeRequest {
369 email: string;
370 pow_payload: PowProofRequest;
371}
372
373export type EnvelopeRegisterCodeResponseData = {
374 /** @minimum 0 */
375 expires_in_secs: number;
376};
377
378export interface EnvelopeRegisterCodeResponse {
379 code: number;
380 data?: EnvelopeRegisterCodeResponseData;
367381 /** @nullable */
368 dismiss_stale_approvals?: boolean | null;
382 error?: string | null;
369383 /** @nullable */
370 enable_approvals_whitelist?: boolean | null;
384 error_code?: string | null;
385 message: string;
386 request_id?: string;
387}
388
389export type SshKeyAlgorithm = "rsa" | "ed25519" | "ecdsa";
390export type EnvelopeVecSshKeySummaryDataItem = {
391 algorithm: SshKeyAlgorithm;
392 created_at: string;
371393 /** @nullable */
372 enable_force_push?: boolean | null;
394 description?: string | null;
373395 /** @nullable */
374 enable_merge_whitelist?: boolean | null;
396 expires_at?: string | null;
397 fingerprint: string;
398 id: string;
375399 /** @nullable */
376 enable_push?: boolean | null;
400 last_used_at?: string | null;
401 name: string;
402 public_key: string;
377403 /** @nullable */
378 enable_push_whitelist?: boolean | null;
404 revoked_at?: string | null;
405};
406
407export interface EnvelopeVecSshKeySummary {
408 code: number;
409 data?: EnvelopeVecSshKeySummaryDataItem[];
379410 /** @nullable */
380 protected_file_patterns?: string | null;
411 error?: string | null;
381412 /** @nullable */
382 require_signed_commits?: boolean | null;
413 error_code?: string | null;
414 message: string;
415 request_id?: string;
416}
417
418export interface SshKeyAddRequest {
383419 /** @nullable */
384 required_approvals?: number | null;
420 description?: string | null;
385421 /** @nullable */
386 required_status_contexts?: string | null;
387 /** @nullable */
388 unprotected_file_patterns?: string | null;
422 expires_at?: string | null;
423 name: string;
424 public_key: string;
389425}
390426
391export interface UserDto {
392 avatar_url: string;
393 display_name: string;
394 user_id: number;
395 username: string;
396}
397
398export interface BranchWhitelistDto {
427export type EnvelopeSshKeySummaryData = {
428 algorithm: SshKeyAlgorithm;
399429 created_at: string;
400430 /** @nullable */
401 group_id?: string | null;
431 description?: string | null;
432 /** @nullable */
433 expires_at?: string | null;
434 fingerprint: string;
402435 id: string;
403 kind: WhitelistKind;
404 policy_id: string;
405 user?: null | UserDto;
406436 /** @nullable */
407 user_id?: number | null;
408}
437 last_used_at?: string | null;
438 name: string;
439 public_key: string;
440 /** @nullable */
441 revoked_at?: string | null;
442};
409443
410export type BulkAction = "close" | "reopen";
411export interface BulkDeleteCmd {
412 message_ids: string[];
444export interface EnvelopeSshKeySummary {
445 code: number;
446 data?: EnvelopeSshKeySummaryData;
447 /** @nullable */
448 error?: string | null;
449 /** @nullable */
450 error_code?: string | null;
451 message: string;
452 request_id?: string;
413453}
414454
415export interface BulkIssuesCmd {
416 action: BulkAction;
417 issue_refs: string[];
418}
419
420export interface BulkResultDto {
421 /** @minimum 0 */
422 updated: number;
423}
424
425export interface CallerSignatureBody {
426 /** @nullable */
427 when?: string | null;
428}
429
430export interface ChallengeResponse {
431 context: string;
432 /** @minimum 0 */
433 difficulty: number;
434 /** @minimum 0 */
435 expires_at: number;
436 /** @minimum 0 */
437 issued_at: number;
438}
439
440export interface ChangePasswordCmd {
441 new_password: string;
442 old_password: string;
443}
444
445export interface ChangedPathDto {
446 /** @minimum 0 */
447 new_mode: number;
448 /** @nullable */
449 new_oid?: string | null;
450 new_path: string;
451 /** @minimum 0 */
452 old_mode: number;
453 /** @nullable */
454 old_oid?: string | null;
455 /** @nullable */
456 old_path?: string | null;
457 status: string;
458}
459
460export interface ChangedPathDiffDto {
461 binary: boolean;
462 /** @minimum 0 */
463 lines_added: number;
464 /** @minimum 0 */
465 lines_removed: number;
466 /** @nullable */
467 patch?: string | null;
468 path: ChangedPathDto;
469}
470
471export type ChatMessageType =
472 | "Default"
473 | "Reply"
474 | "ThreadCreated"
475 | "ChannelJoin"
476 | "ChannelLeave"
477 | "ChannelTopic"
478 | "ChannelPinnedItem"
479 | "Reminder"
480 | "System";
481export interface CheckPermissionBody {
482 permission: string;
483 /** @nullable */
484 user_id?: number | null;
485}
486
487export interface CleanupObjectDto {
488 /** 目录的子节点数 / 频道的子频道数。 */
489 child_count: number;
490 /** `dirs.id`(目录/仓库/问题集/智能体集)或 `rooms.id`(频道)。 */
491 id: string;
492 is_archived: boolean;
493 /**
494 * 仅仓库与频道有可见性开关。
495 * @nullable
496 */
497 is_private?: boolean | null;
498 /** `dir | object | repo | board | text | voice | stage | category | news | guild_room` */
499 kind: string;
500 name: string;
501 /** 目录上的权限覆盖条数(group + user)。 */
502 overwrite_count: number;
503 /** 父链拼出的可读路径,例如 `bots / 研究研究`。 */
504 path: string;
505}
506
507export interface CodeActivityAuthorDto {
508 additions: number;
509 commits: number;
510 deletions: number;
511 email: string;
512 name: string;
513}
514
515export interface CodeActivityDto {
516 authors: CodeActivityAuthorDto[];
517 total_additions: number;
518 total_commits: number;
519 total_deletions: number;
520}
521
522export interface CodeCommentDto {
523 author?: null | UserDto;
524 body: string;
525 commit_sha: string;
526 created_at: string;
527 id: string;
528 line: number;
529 /** 该评论锚定的提交是否仍是当前分支提示(否则视为 outdated)。 */
530 outdated: boolean;
531 /** @nullable */
532 parent_id?: string | null;
533 path: string;
534 repo_id: string;
535 resolved: boolean;
536 /** @nullable */
537 resolved_by?: number | null;
538 /** @nullable */
539 updated_at?: string | null;
540}
541
542export interface CommentDto {
543 content: string;
544 created_at: string;
545 id: string;
546 /** @nullable */
547 issue_id?: string | null;
548 /** @nullable */
549 parent_id?: string | null;
550 poster?: null | UserDto;
551 /** @nullable */
552 updated_at?: string | null;
553}
554
555export interface CommentPath {
556 board_id: string;
557 comment_id: string;
558 issue_id: string;
559 space_name: string;
560}
561
562export interface CommentReactionPath {
563 board_id: string;
564 comment_id: string;
565 issue_id: string;
566 space_name: string;
567}
568
569export interface CommentTreeNode {
570 comment: CommentDto;
571 replies: CommentTreeNode[];
572}
573
574export interface CommitDto {
575 author_email: string;
576 author_name: string;
577 author_time: number;
578 committer_email: string;
579 committer_name: string;
580 committer_time: number;
581 id: string;
582 message: string;
583 parents: string[];
584 tree_id: string;
585}
586
587export interface SignatureDto {
588 email: string;
589 name: string;
590 when: string;
591}
592
593export type ObjectKind = "merge" | "squash";
594export interface CommitObjectBody {
595 author: SignatureDto;
596 committer: SignatureDto;
597 kind: ObjectKind;
598 message: string;
599 parents: string[];
600 tree: string;
601}
602
603export type CommitStatusDtoState = "pending" | "success" | "failure" | "error";
604export interface CommitStatusDto {
605 context: string;
606 created_at: string;
607 creator?: null | UserDto;
608 creator_id: number;
609 /** @nullable */
610 description?: string | null;
611 state: CommitStatusDtoState;
612 /** @nullable */
613 target_url?: string | null;
614 /** @nullable */
615 updated_at?: string | null;
616}
617
618export type CommitStatusState = "Pending" | "Success" | "Failure" | "Error";
619export interface CommitSyncResponse {
620 repo_id: string;
621 sha: string;
622}
623
624export interface CommitsPageDto {
625 commits: CommitDto[];
626 diff_view_style: string;
627 has_more: boolean;
628 /** @minimum 0 */
629 limit: number;
630 /** @minimum 0 */
631 skip: number;
632 /** @minimum 0 */
633 total: number;
634}
635
636export interface ConflictDetailDto {
637 /** @nullable */
638 content?: string | null;
639 path: string;
640}
641
642export interface ContentHistoryDto {
643 /** @nullable */
644 comment_id?: string | null;
645 /** @nullable */
646 content_after?: string | null;
647 /** @nullable */
648 content_before?: string | null;
649 created_at: string;
650 edited_at: string;
651 id: string;
652 issue_id: string;
653 poster?: null | UserDto;
654}
655
656export interface ContentHistoryPath {
657 board_id: string;
658 issue_id: string;
659 space_name: string;
660}
661
662export interface ContributorStatDto {
663 additions: number;
664 commits: number;
665 deletions: number;
666 email: string;
667 name: string;
668}
669
670export interface CountResp {
671 count: number;
672}
673
674export interface CreateAttachmentCmd {
675 content_type: string;
676 /** @nullable */
677 description?: string | null;
678 filename: string;
679 size: number;
680}
681
682export interface CreateBoardCmd {
683 /** @nullable */
684 description?: string | null;
685 /** @nullable */
686 icon?: string | null;
687 name: string;
688 /** @nullable */
689 parent_dir_id?: string | null;
690 /** @nullable */
691 prefix?: string | null;
692}
693
694export interface CreateBookmarkCmd {
695 /** @nullable */
696 emoji?: string | null;
697 title: string;
698 /** @nullable */
699 url?: string | null;
700}
701
702export interface CreateBranchCmd {
703 name: string;
704 /** @nullable */
705 start_point?: string | null;
706}
707
708/**
709 * 分支保护策略的创建请求。
710 *
711 * 字段与 [`BranchPolicyFlags`] 一一对应,但刻意不使用 `#[serde(flatten)]`:
712 * 扁平化会让 utoipa 生成 `allOf` 组合,而 web 端 API 生成器无法处理该形状。
713 */
714export interface CreateBranchPolicyCmd {
715 /** @nullable */
716 block_on_change_requested_reviews?: boolean | null;
717 /** @nullable */
718 block_on_outdated_branch?: boolean | null;
719 /** @nullable */
720 block_on_rejected_reviews?: boolean | null;
721 branch_pattern: string;
722 /** @nullable */
723 dismiss_stale_approvals?: boolean | null;
724 /** @nullable */
725 enable_approvals_whitelist?: boolean | null;
726 /** @nullable */
727 enable_force_push?: boolean | null;
728 /** @nullable */
729 enable_merge_whitelist?: boolean | null;
730 /** @nullable */
731 enable_push?: boolean | null;
732 /** @nullable */
733 enable_push_whitelist?: boolean | null;
734 /** @nullable */
735 protected_file_patterns?: string | null;
736 /** @nullable */
737 require_signed_commits?: boolean | null;
738 /** @nullable */
739 required_approvals?: number | null;
740 /** @nullable */
741 required_status_contexts?: string | null;
742 /** @nullable */
743 unprotected_file_patterns?: string | null;
744}
745
746export interface CreateCodeCommentCmd {
747 body: string;
748 /**
749 * 锚定的提交;缺省使用该 revision 解析出的提交。
750 * @nullable
751 */
752 commit_sha?: string | null;
753 line: number;
754 /** @nullable */
755 parent_id?: string | null;
756 path: string;
757 /** @nullable */
758 revision?: string | null;
759}
760
761export interface CreateCommentCmd {
762 content: string;
763 /** @nullable */
764 parent_id?: string | null;
765}
766
767export interface CreateDependencyCmd {
768 dependency_id: string;
769}
770
771export interface CreateDirCmd {
772 name: string;
773 /** @nullable */
774 parent_dir_id?: string | null;
775 /** @nullable */
776 position?: number | null;
777}
778
779export interface CreateGroupCmd {
780 /** @nullable */
781 color?: string | null;
782 /** @nullable */
783 icon_hash?: string | null;
784 name: string;
785 permissions?: string[];
786 /** @nullable */
787 position?: number | null;
788 /** @nullable */
789 unicode_emoji?: string | null;
790}
791
792export interface CreateInviteBody {
793 max_uses?: number;
794 /** @nullable */
795 role_id?: string | null;
796 /** @nullable */
797 target_user_id?: number | null;
798 /**
799 * @minimum 0
800 * @nullable
801 */
802 ttl_secs?: number | null;
803}
804
805export type SpaceJoinMethod =
806 "direct" | "invite_link" | "invite_targeted" | "invite_email";
807export interface InviteSummary {
808 created_at: string;
809 created_by: number;
810 /** @nullable */
811 email?: string | null;
812 /** @nullable */
813 expires_at?: string | null;
814 id: string;
815 max_uses: number;
816 method: SpaceJoinMethod;
817 organization_id: string;
818 /** @nullable */
819 revoked_at?: string | null;
820 /** @nullable */
821 role_id?: string | null;
822 /** @nullable */
823 target_user_id?: number | null;
824 uses: number;
825}
826
827export interface CreateInviteResponse {
828 invite: InviteSummary;
829 token: string;
830}
831
832export interface CreateIssueAttachmentCmd {
833 content_type: string;
834 filename: string;
835 size: number;
836 /** Checked for membership so unbound uploads are still space-scoped. */
837 space_name: string;
838}
839
840export type IssuePriority = "none" | "low" | "medium" | "high" | "urgent";
841export interface CreateIssueCmd {
842 assignee_ids?: number[];
843 /** Draft uploads (`POST /issues/attachments`) to link to the new issue. */
844 attachment_ids?: string[];
845 content?: string;
846 /** @nullable */
847 description?: string | null;
848 /** @nullable */
849 due_at?: string | null;
850 label_ids?: string[];
851 /** @nullable */
852 milestone_id?: string | null;
853 priority?: IssuePriority;
854 title: string;
855}
856
857export type IssueMemberKind = "assignee" | "mentioned" | "participant";
858export interface CreateIssueMemberCmd {
859 kind: IssueMemberKind;
860 user_id: number;
861}
862
863export interface CreateJoinRequestCmd {
864 /** @nullable */
865 note?: string | null;
866}
867
868export type SpaceJoinTrigger = "issue_reaction" | "issue_comment_reaction";
869export interface CreateJoinRuleCmd {
870 matcher?: string;
871 role_id: string;
872 trigger?: SpaceJoinTrigger;
873}
874
875export interface CreateLabelCmd {
876 color: string;
877 /** @nullable */
878 description?: string | null;
879 /** @nullable */
880 exclusive?: boolean | null;
881 /** @nullable */
882 exclusive_order?: number | null;
883 name: string;
884}
885
886export interface CreateMilestoneCmd {
887 /** @nullable */
888 description?: string | null;
889 /** @nullable */
890 due_at?: string | null;
891 name: string;
892}
893
894export type SpaceJoinPolicy = "open" | "approval" | "invite_only" | "private";
895export interface CreateOrganizationBody {
896 /** @nullable */
897 allow_invite?: boolean | null;
898 /** @nullable */
899 allow_join?: boolean | null;
900 /** @nullable */
901 allow_join_level?: number | null;
902 /** @nullable */
903 avatar_url?: string | null;
904 /** @nullable */
905 description?: string | null;
906 join_policy?: null | SpaceJoinPolicy;
907 /** @nullable */
908 member_must_enable_2fa?: boolean | null;
909 name: string;
910 /** @nullable */
911 require_email_verified?: boolean | null;
912 /** @nullable */
913 require_mfa?: boolean | null;
914 slug: string;
915 /** @nullable */
916 welcome_message?: string | null;
917}
918
919export interface CreateOutboundWebhookCmd {
920 name: string;
921 url: string;
922}
923
924export interface CreatePinCmd {
925 issue_id: string;
926 pin_order: number;
927}
928
929export interface CreatePullCmd {
930 /** @nullable */
931 base_branch?: string | null;
932 /** @nullable */
933 body?: string | null;
934 /** @nullable */
935 draft?: boolean | null;
936 head_branch: string;
937 /** @nullable */
938 issue_id?: string | null;
939 title: string;
940}
941
942export interface CreatePullCommentCmd {
943 body: string;
944 /** @nullable */
945 commit_sha?: string | null;
946 /** @nullable */
947 line?: number | null;
948 /** @nullable */
949 parent_comment_id?: string | null;
950 /**
951 * 行内评论需要 path;缺省则为普通讨论评论。
952 * @nullable
953 */
954 path?: string | null;
955 /** @nullable */
956 review_id?: string | null;
957 /**
958 * left | right
959 * @nullable
960 */
961 side?: string | null;
962}
963
964export interface CreateReactionCmd {
965 emoji: string;
966}
967
968export interface CreateReleaseCmd {
969 /** @nullable */
970 content?: string | null;
971 /** @nullable */
972 is_draft?: boolean | null;
973 /** @nullable */
974 is_prerelease?: boolean | null;
975 tag_name: string;
976 /** @nullable */
977 target?: string | null;
978 /** @nullable */
979 title?: string | null;
980}
981
982export interface CreateReminderCmd {
983 /** @nullable */
984 note?: string | null;
985 remind_at: string;
986}
987
988export interface CreateRepoCmd {
989 /** @nullable */
990 default_branch?: string | null;
991 /** @nullable */
992 description?: string | null;
993 enable_lfs?: boolean;
994 /** @nullable */
995 init_message?: string | null;
996 is_private?: boolean;
997 /** @nullable */
998 license_name?: string | null;
999 name: string;
1000 /** @nullable */
1001 parent_dir_id?: string | null;
1002}
1003
1004export interface CreateRepoRelCmd {
1005 repo_id: string;
1006}
1007
1008export interface CreateReportCmd {
1009 /** @nullable */
1010 evidence?: string | null;
1011 reason: string;
1012 reported_id: number;
1013}
1014
1015export type PermissionEffect = "allow" | "deny";
1016export interface PermissionGrant {
1017 effect: PermissionEffect;
1018 permission: string;
1019}
1020
1021export interface CreateRoleBody {
1022 default_role?: boolean;
1023 /** @nullable */
1024 description?: string | null;
1025 key: string;
1026 name: string;
1027 permissions?: PermissionGrant[];
1028 rank?: number;
1029 self_assignable?: boolean;
1030}
1031
1032export type RoomKind =
1033 | "GuildRoom"
1034 | "GroupDm"
1035 | "Dm"
1036 | "Category"
1037 | "Text"
1038 | "Voice"
1039 | "Stage"
1040 | "News"
1041 | "Thread"
1042 | "DirectMessage";
1043export interface CreateRoomCmd {
1044 is_private?: boolean;
1045 kind?: RoomKind;
1046 name: string;
1047 nsfw?: boolean;
1048 /** @nullable */
1049 parent_id?: string | null;
1050 /** @nullable */
1051 rate_limit_per_user?: number | null;
1052 /** @nullable */
1053 topic?: string | null;
1054 /** @nullable */
1055 user_limit?: number | null;
1056}
1057
1058export interface CreateRoomInviteCmd {
1059 /** @nullable */
1060 expires_secs?: number | null;
1061 /** @nullable */
1062 invitee_id?: number | null;
1063}
1064
1065export interface CreateTagCmd {
1066 annotated?: boolean;
1067 /** @nullable */
1068 message?: string | null;
1069 name: string;
1070 target: string;
1071}
1072
1073export interface CreateTagPolicyCmd {
1074 name_pattern: string;
1075}
1076
1077export interface CreateThreadCmd {
1078 /** @nullable */
1079 name?: string | null;
1080}
1081
1082export interface CreateTopicCmd {
1083 name: string;
1084}
1085
1086export interface CreateTrackedTimeCmd {
1087 seconds: number;
1088}
1089
1090export interface CreateWebhookCmd {
1091 name: string;
1092}
1093
1094export interface DeleteOrgQuery {
1095 force?: boolean;
1096 /** @nullable */
1097 reason?: string | null;
1098}
1099
1100export interface DependencyDto {
1101 created_at: string;
1102 dependency_id: string;
1103 id: string;
1104 issue_id: string;
1105}
1106
1107export interface DependencyPath {
1108 board_id: string;
1109 dep_id: string;
1110 issue_id: string;
1111 space_name: string;
1112}
1113
1114export interface DeviceDto {
1115 /** @nullable */
1116 device_name?: string | null;
1117 /** @nullable */
1118 device_type?: string | null;
1119 first_seen_at: string;
1120 id: string;
1121 is_trusted: boolean;
1122 last_seen_at: string;
1123 /** @nullable */
1124 os?: string | null;
1125}
1126
1127export interface DiffTreeRecordDto {
1128 /** @nullable */
1129 base_blob_id?: string | null;
1130 /**
1131 * @minimum 0
1132 * @nullable
1133 */
1134 base_mode?: number | null;
1135 /** @nullable */
1136 base_path?: string | null;
1137 /** @nullable */
1138 head_blob_id?: string | null;
1139 /**
1140 * @minimum 0
1141 * @nullable
1142 */
1143 head_mode?: number | null;
1144 /** @nullable */
1145 head_path?: string | null;
1146 /** @minimum 0 */
1147 score: number;
1148 status: string;
1149}
1150
1151export type DiffView = "shortstat" | "numstat" | "files" | "tree";
1152export type DirKind = "Dir" | "Object";
1153export interface DirNodeDto {
1154 /** @nullable */
1155 archived_at?: string | null;
1156 children: DirNodeDto[];
1157 /** @nullable */
1158 color?: string | null;
1159 created_at: string;
1160 created_by_id: number;
1161 /** @nullable */
1162 icon?: string | null;
1163 id: string;
1164 is_archived: boolean;
1165 kind: DirKind;
1166 name: string;
1167 /** @nullable */
1168 parent_dir_id?: string | null;
1169 position: number;
1170 /** @nullable */
1171 purpose?: string | null;
1172 /** @nullable */
1173 topic?: string | null;
1174 updated_at: string;
1175}
1176
1177export interface DmDto {
1178 created_at: string;
1179 id: string;
1180 kind: RoomKind;
1181 /** @nullable */
1182 last_message_id?: string | null;
1183 last_read_seq: number;
1184 members?: UserDto[];
1185 name: string;
1186 peer?: null | UserDto;
1187 tip_seq: number;
1188 unread_count: number;
1189}
1190
1191export interface DraftDto {
1192 content: string;
1193 room_id: string;
1194 /** @nullable */
1195 thread_id?: string | null;
1196 updated_at: string;
1197}
1198
1199export interface DraftQuery {
1200 /** @nullable */
1201 thread_id?: string | null;
1202}
1203
1204export interface EmbedAuthor {
1205 /** @nullable */
1206 icon_url?: string | null;
1207 name?: string;
1208 /** @nullable */
1209 proxy_icon_url?: string | null;
1210 /** @nullable */
1211 url?: string | null;
1212}
1213
1214export interface EmbedField {
1215 inline?: boolean;
1216 name?: string;
1217 value?: string;
1218}
1219
1220export interface EmbedFooter {
1221 /** @nullable */
1222 icon_url?: string | null;
1223 /** @nullable */
1224 proxy_icon_url?: string | null;
1225 text?: string;
1226}
1227
1228export interface EmbedMedia {
1229 /** @nullable */
1230 content_hash?: string | null;
1231 /** @nullable */
1232 content_type?: string | null;
1233 /** @nullable */
1234 description?: string | null;
1235 /**
1236 * @minimum 0
1237 * @nullable
1238 */
1239 duration?: number | null;
1240 /** @minimum 0 */
1241 flags?: number;
1242 /**
1243 * @minimum 0
1244 * @nullable
1245 */
1246 height?: number | null;
1247 /** @nullable */
1248 placeholder?: string | null;
1249 /** @nullable */
1250 proxy_url?: string | null;
1251 /** @nullable */
1252 url?: string | null;
1253 /**
1254 * @minimum 0
1255 * @nullable
1256 */
1257 width?: number | null;
1258}
1259
1260export interface EmbedProvider {
1261 name?: string;
1262 /** @nullable */
1263 url?: string | null;
1264}
1265
1266export interface EmojiDto {
1267 animated: boolean;
1268 created_at: string;
1269 disabled: boolean;
1270 id: string;
1271 name: string;
1272 space_id: string;
1273}
1274
1275export type EnvelopeAcceptAgreementRespData = {
1276 recorded: boolean;
1277};
1278
1279export interface EnvelopeAcceptAgreementResp {
1280 code: number;
1281 data?: EnvelopeAcceptAgreementRespData;
1282 /** @nullable */
1283 error?: string | null;
1284 /** @nullable */
1285 error_code?: string | null;
1286 message: string;
1287 request_id?: string;
1288}
1289
1290export type EnvelopeAccountDeletionDtoData = {
1291 /** @nullable */
1292 last_error?: string | null;
1293 purge_after: string;
1294 requested_at: string;
1295 status: string;
1296};
1297
1298export interface EnvelopeAccountDeletionDto {
1299 code: number;
1300 data?: EnvelopeAccountDeletionDtoData;
1301 /** @nullable */
1302 error?: string | null;
1303 /** @nullable */
1304 error_code?: string | null;
1305 message: string;
1306 request_id?: string;
1307}
1308
1309export type EnvelopeArchiveResultDtoData = {
1310 cache_key: string;
1311 /** @nullable */
1312 download_url?: string | null;
1313 format: string;
1314 size: number;
1315};
1316
1317export interface EnvelopeArchiveResultDto {
1318 code: number;
1319 data?: EnvelopeArchiveResultDtoData;
1320 /** @nullable */
1321 error?: string | null;
1322 /** @nullable */
1323 error_code?: string | null;
1324 message: string;
1325 request_id?: string;
1326}
1327
1328export type EnvelopeAttachmentDtoData = {
1329 content_type: string;
1330 created_at: string;
1331 /** @nullable */
1332 description?: string | null;
1333 /** @nullable */
1334 duration_secs?: number | null;
1335 filename: string;
1336 /** @nullable */
1337 height?: number | null;
1338 id: string;
1339 /** @nullable */
1340 message_id?: string | null;
1341 /** @nullable */
1342 room_id?: string | null;
1343 size: number;
1344 status: AttachmentStatus;
1345 user_id: number;
1346 /** @nullable */
1347 width?: number | null;
1348};
1349
1350export interface EnvelopeAttachmentDto {
1351 code: number;
1352 data?: EnvelopeAttachmentDtoData;
1353 /** @nullable */
1354 error?: string | null;
1355 /** @nullable */
1356 error_code?: string | null;
1357 message: string;
1358 request_id?: string;
1359}
1360
1361export type EnvelopeAvatarDtoData = {
1362 /**
1363 * Size of the uploaded original in bytes.
1364 * @minimum 0
1365 */
1366 bytes: number;
1367 /** Format of the uploaded original. */
1368 format: AvatarFormat;
1369 updated_at: string;
1370 /**
1371 * Browser-facing URL. Points at the compressed derivative when one exists,
1372 * and at the uploaded bytes otherwise.
1373 */
1374 url: string;
1375 user_id: number;
1376};
1377
1378export interface EnvelopeAvatarDto {
1379 code: number;
1380 data?: EnvelopeAvatarDtoData;
1381 /** @nullable */
1382 error?: string | null;
1383 /** @nullable */
1384 error_code?: string | null;
1385 message: string;
1386 request_id?: string;
1387}
1388
1389export type EnvelopeBlobContentDtoData = {
1390 /** @items.minimum 0 */
1391 data: number[];
1392 is_binary: boolean;
1393 oid: string;
1394 size: number;
1395 truncated: boolean;
1396};
1397
1398export interface EnvelopeBlobContentDto {
1399 code: number;
1400 data?: EnvelopeBlobContentDtoData;
1401 /** @nullable */
1402 error?: string | null;
1403 /** @nullable */
1404 error_code?: string | null;
1405 message: string;
1406 request_id?: string;
1407}
1408
1409export type EnvelopeBlobMetaDtoData = {
1410 is_binary: boolean;
1411 is_lfs_pointer: boolean;
1412 lfs?: null | LfsPointerDto;
1413 oid: string;
1414 size: number;
1415};
1416
1417export interface EnvelopeBlobMetaDto {
1418 code: number;
1419 data?: EnvelopeBlobMetaDtoData;
1420 /** @nullable */
1421 error?: string | null;
1422 /** @nullable */
1423 error_code?: string | null;
1424 message: string;
1425 request_id?: string;
1426}
1427
1428export type EnvelopeBoardDtoData = {
1429 closed_issues_count: number;
1430 created_at: string;
1431 /** @nullable */
1432 description?: string | null;
1433 dir_id: string;
1434 /** @nullable */
1435 icon?: string | null;
1436 id: string;
1437 name: string;
1438 open_issues_count: number;
1439 /**
1440 * Number prefix for the board's issues (`CAD` renders as `CAD-12`).
1441 * @nullable
1442 */
1443 prefix?: string | null;
1444 /** @nullable */
1445 updated_at?: string | null;
1446};
1447
1448export interface EnvelopeBoardDto {
1449 code: number;
1450 data?: EnvelopeBoardDtoData;
1451 /** @nullable */
1452 error?: string | null;
1453 /** @nullable */
1454 error_code?: string | null;
1455 message: string;
1456 request_id?: string;
1457}
1458
1459export type EnvelopeBookmarkDtoData = {
1460 created_at: string;
1461 created_by_id: number;
1462 /** @nullable */
1463 emoji?: string | null;
1464 id: string;
1465 position: number;
1466 room_id: string;
1467 title: string;
1468 /** @nullable */
1469 url?: string | null;
1470};
1471
1472export interface EnvelopeBookmarkDto {
1473 code: number;
1474 data?: EnvelopeBookmarkDtoData;
1475 /** @nullable */
1476 error?: string | null;
1477 /** @nullable */
1478 error_code?: string | null;
1479 message: string;
1480 request_id?: string;
1481}
1482
1483export type EnvelopeBranchDtoData = {
1484 commit_sha: string;
1485 created_at: string;
1486 /** @nullable */
1487 deleted_at?: string | null;
1488 is_deleted: boolean;
1489 is_protected: boolean;
1490 name: string;
1491 updated_at: string;
1492};
1493
1494export interface EnvelopeBranchDto {
1495 code: number;
1496 data?: EnvelopeBranchDtoData;
1497 /** @nullable */
1498 error?: string | null;
1499 /** @nullable */
1500 error_code?: string | null;
1501 message: string;
1502 request_id?: string;
1503}
1504
1505export type EnvelopeBranchPolicyDtoData = {
1506 block_on_change_requested_reviews: boolean;
1507 block_on_outdated_branch: boolean;
1508 block_on_rejected_reviews: boolean;
1509 branch_pattern: string;
1510 created_at: string;
1511 dismiss_stale_approvals: boolean;
1512 enable_approvals_whitelist: boolean;
1513 enable_force_push: boolean;
1514 enable_merge_whitelist: boolean;
1515 enable_push: boolean;
1516 enable_push_whitelist: boolean;
1517 id: string;
1518 protected_file_patterns: string;
1519 push_whitelist_deploy_keys: boolean;
1520 repo_id: string;
1521 require_signed_commits: boolean;
1522 required_approvals: number;
1523 required_status_contexts: string;
1524 unprotected_file_patterns: string;
1525 updated_at: string;
1526};
1527
1528export interface EnvelopeBranchPolicyDto {
1529 code: number;
1530 data?: EnvelopeBranchPolicyDtoData;
1531 /** @nullable */
1532 error?: string | null;
1533 /** @nullable */
1534 error_code?: string | null;
1535 message: string;
1536 request_id?: string;
1537}
1538
1539export type EnvelopeBranchWhitelistDtoData = {
1540 created_at: string;
1541 /** @nullable */
1542 group_id?: string | null;
1543 id: string;
1544 kind: WhitelistKind;
1545 policy_id: string;
1546 user?: null | UserDto;
1547 /** @nullable */
1548 user_id?: number | null;
1549};
1550
1551export interface EnvelopeBranchWhitelistDto {
1552 code: number;
1553 data?: EnvelopeBranchWhitelistDtoData;
1554 /** @nullable */
1555 error?: string | null;
1556 /** @nullable */
1557 error_code?: string | null;
1558 message: string;
1559 request_id?: string;
1560}
1561
1562export type EnvelopeBulkResultDtoData = {
1563 /** @minimum 0 */
1564 updated: number;
1565};
1566
1567export interface EnvelopeBulkResultDto {
1568 code: number;
1569 data?: EnvelopeBulkResultDtoData;
1570 /** @nullable */
1571 error?: string | null;
1572 /** @nullable */
1573 error_code?: string | null;
1574 message: string;
1575 request_id?: string;
1576}
1577
1578export type EnvelopeChallengeResponseData = {
1579 context: string;
1580 /** @minimum 0 */
1581 difficulty: number;
1582 /** @minimum 0 */
1583 expires_at: number;
1584 /** @minimum 0 */
1585 issued_at: number;
1586};
1587
1588export interface EnvelopeChallengeResponse {
1589 code: number;
1590 data?: EnvelopeChallengeResponseData;
1591 /** @nullable */
1592 error?: string | null;
1593 /** @nullable */
1594 error_code?: string | null;
1595 message: string;
1596 request_id?: string;
1597}
1598
1599export type EnvelopeCodeActivityDtoData = {
1600 authors: CodeActivityAuthorDto[];
1601 total_additions: number;
1602 total_commits: number;
1603 total_deletions: number;
1604};
1605
1606export interface EnvelopeCodeActivityDto {
1607 code: number;
1608 data?: EnvelopeCodeActivityDtoData;
1609 /** @nullable */
1610 error?: string | null;
1611 /** @nullable */
1612 error_code?: string | null;
1613 message: string;
1614 request_id?: string;
1615}
1616
1617export type EnvelopeCodeCommentDtoData = {
1618 author?: null | UserDto;
1619 body: string;
1620 commit_sha: string;
1621 created_at: string;
1622 id: string;
1623 line: number;
1624 /** 该评论锚定的提交是否仍是当前分支提示(否则视为 outdated)。 */
1625 outdated: boolean;
1626 /** @nullable */
1627 parent_id?: string | null;
1628 path: string;
1629 repo_id: string;
1630 resolved: boolean;
1631 /** @nullable */
1632 resolved_by?: number | null;
1633 /** @nullable */
1634 updated_at?: string | null;
1635};
1636
1637export interface EnvelopeCodeCommentDto {
1638 code: number;
1639 data?: EnvelopeCodeCommentDtoData;
1640 /** @nullable */
1641 error?: string | null;
1642 /** @nullable */
1643 error_code?: string | null;
1644 message: string;
1645 request_id?: string;
1646}
1647
1648export type EnvelopeCommentDtoData = {
1649 content: string;
1650 created_at: string;
1651 id: string;
1652 /** @nullable */
1653 issue_id?: string | null;
1654 /** @nullable */
1655 parent_id?: string | null;
1656 poster?: null | UserDto;
1657 /** @nullable */
1658 updated_at?: string | null;
1659};
1660
1661export interface EnvelopeCommentDto {
1662 code: number;
1663 data?: EnvelopeCommentDtoData;
1664 /** @nullable */
1665 error?: string | null;
1666 /** @nullable */
1667 error_code?: string | null;
1668 message: string;
1669 request_id?: string;
1670}
1671
1672export type EnvelopeCommitStatusDtoData = {
1673 context: string;
1674 created_at: string;
1675 creator?: null | UserDto;
1676 creator_id: number;
1677 /** @nullable */
1678 description?: string | null;
1679 state: CommitStatusDtoState;
1680 /** @nullable */
1681 target_url?: string | null;
1682 /** @nullable */
1683 updated_at?: string | null;
1684};
1685
1686export interface EnvelopeCommitStatusDto {
1687 code: number;
1688 data?: EnvelopeCommitStatusDtoData;
1689 /** @nullable */
1690 error?: string | null;
1691 /** @nullable */
1692 error_code?: string | null;
1693 message: string;
1694 request_id?: string;
1695}
1696
1697export type EnvelopeCommitsPageDtoData = {
1698 commits: CommitDto[];
1699 diff_view_style: string;
1700 has_more: boolean;
1701 /** @minimum 0 */
1702 limit: number;
1703 /** @minimum 0 */
1704 skip: number;
1705 /** @minimum 0 */
1706 total: number;
1707};
1708
1709export interface EnvelopeCommitsPageDto {
1710 code: number;
1711 data?: EnvelopeCommitsPageDtoData;
1712 /** @nullable */
1713 error?: string | null;
1714 /** @nullable */
1715 error_code?: string | null;
1716 message: string;
1717 request_id?: string;
1718}
1719
1720export type EnvelopeConflictDetailDtoData = {
1721 /** @nullable */
1722 content?: string | null;
1723 path: string;
1724};
1725
1726export interface EnvelopeConflictDetailDto {
1727 code: number;
1728 data?: EnvelopeConflictDetailDtoData;
1729 /** @nullable */
1730 error?: string | null;
1731 /** @nullable */
1732 error_code?: string | null;
1733 message: string;
1734 request_id?: string;
1735}
1736
1737export type EnvelopeCountRespData = {
1738 count: number;
1739};
1740
1741export interface EnvelopeCountResp {
1742 code: number;
1743 data?: EnvelopeCountRespData;
1744 /** @nullable */
1745 error?: string | null;
1746 /** @nullable */
1747 error_code?: string | null;
1748 message: string;
1749 request_id?: string;
1750}
1751
1752export type EnvelopeCreateInviteResponseData = {
1753 invite: InviteSummary;
1754 token: string;
1755};
1756
1757export interface EnvelopeCreateInviteResponse {
1758 code: number;
1759 data?: EnvelopeCreateInviteResponseData;
1760 /** @nullable */
1761 error?: string | null;
1762 /** @nullable */
1763 error_code?: string | null;
1764 message: string;
1765 request_id?: string;
1766}
1767
1768export type EnvelopeDependencyDtoData = {
1769 created_at: string;
1770 dependency_id: string;
1771 id: string;
1772 issue_id: string;
1773};
1774
1775export interface EnvelopeDependencyDto {
1776 code: number;
1777 data?: EnvelopeDependencyDtoData;
1778 /** @nullable */
1779 error?: string | null;
1780 /** @nullable */
1781 error_code?: string | null;
1782 message: string;
1783 request_id?: string;
1784}
1785
1786export type EnvelopeDirNodeDtoData = {
1787 /** @nullable */
1788 archived_at?: string | null;
1789 children: DirNodeDto[];
1790 /** @nullable */
1791 color?: string | null;
1792 created_at: string;
1793 created_by_id: number;
1794 /** @nullable */
1795 icon?: string | null;
1796 id: string;
1797 is_archived: boolean;
1798 kind: DirKind;
1799 name: string;
1800 /** @nullable */
1801 parent_dir_id?: string | null;
1802 position: number;
1803 /** @nullable */
1804 purpose?: string | null;
1805 /** @nullable */
1806 topic?: string | null;
1807 updated_at: string;
1808};
1809
1810export interface EnvelopeDirNodeDto {
1811 code: number;
1812 data?: EnvelopeDirNodeDtoData;
1813 /** @nullable */
1814 error?: string | null;
1815 /** @nullable */
1816 error_code?: string | null;
1817 message: string;
1818 request_id?: string;
1819}
1820
1821export type EnvelopeDmDtoData = {
1822 created_at: string;
1823 id: string;
1824 kind: RoomKind;
1825 /** @nullable */
1826 last_message_id?: string | null;
1827 last_read_seq: number;
1828 members?: UserDto[];
1829 name: string;
1830 peer?: null | UserDto;
1831 tip_seq: number;
1832 unread_count: number;
1833};
1834
1835export interface EnvelopeDmDto {
1836 code: number;
1837 data?: EnvelopeDmDtoData;
1838 /** @nullable */
1839 error?: string | null;
1840 /** @nullable */
1841 error_code?: string | null;
1842 message: string;
1843 request_id?: string;
1844}
1845
1846export type EnvelopeDraftDtoData = {
1847 content: string;
1848 room_id: string;
1849 /** @nullable */
1850 thread_id?: string | null;
1851 updated_at: string;
1852};
1853
1854export interface EnvelopeDraftDto {
1855 code: number;
1856 data?: EnvelopeDraftDtoData;
1857 /** @nullable */
1858 error?: string | null;
1859 /** @nullable */
1860 error_code?: string | null;
1861 message: string;
1862 request_id?: string;
1863}
1864
1865export type EnvelopeEmojiDtoData = {
1866 animated: boolean;
1867 created_at: string;
1868 disabled: boolean;
1869 id: string;
1870 name: string;
1871 space_id: string;
1872};
1873
1874export interface EnvelopeEmojiDto {
1875 code: number;
1876 data?: EnvelopeEmojiDtoData;
1877 /** @nullable */
1878 error?: string | null;
1879 /** @nullable */
1880 error_code?: string | null;
1881 message: string;
1882 request_id?: string;
1883}
1884
1885export type EnvelopeFetchResultDtoData = {
1886 new: string[];
1887 updated: string[];
1888};
1889
1890export interface EnvelopeFetchResultDto {
1891 code: number;
1892 data?: EnvelopeFetchResultDtoData;
1893 /** @nullable */
1894 error?: string | null;
1895 /** @nullable */
1896 error_code?: string | null;
1897 message: string;
1898 request_id?: string;
1899}
1900
1901export type EnvelopeGroupDtoData = {
1902 color: string;
1903 created_at: string;
1904 created_by?: null | UserDto;
1905 /** @nullable */
1906 icon_hash?: string | null;
1907 id: string;
1908 name: string;
1909 permissions: string[];
1910 position: number;
1911 space_id: string;
1912 /** @nullable */
1913 unicode_emoji?: string | null;
1914 /** @nullable */
1915 updated_at?: string | null;
1916 version: number;
1917};
1918
1919export interface EnvelopeGroupDto {
1920 code: number;
1921 data?: EnvelopeGroupDtoData;
1922 /** @nullable */
1923 error?: string | null;
1924 /** @nullable */
1925 error_code?: string | null;
1926 message: string;
1927 request_id?: string;
1928}
1929
1930export type EnvelopeGroupOverwriteDtoData = {
1931 allow_mask: number;
1932 deny_mask: number;
1933 dir_id: string;
1934 group_id: string;
1935};
1936
1937export interface EnvelopeGroupOverwriteDto {
1938 code: number;
1939 data?: EnvelopeGroupOverwriteDtoData;
1940 /** @nullable */
1941 error?: string | null;
1942 /** @nullable */
1943 error_code?: string | null;
1944 message: string;
1945 request_id?: string;
1946}
1947
1948/**
1949 * 举手状态。审批通过后 approved,被收回后 revoked(可再次举手)。
1950 */
1951export type HandState = "pending" | "approved" | "denied" | "revoked";
1952export type EnvelopeHandDtoData = {
1953 /** @nullable */
1954 avatar_url?: string | null;
1955 display_name: string;
1956 requested_at: number;
1957 state: HandState;
1958 user_id: number;
1959};
1960
1961export interface EnvelopeHandDto {
1962 code: number;
1963 data?: EnvelopeHandDtoData;
1964 /** @nullable */
1965 error?: string | null;
1966 /** @nullable */
1967 error_code?: string | null;
1968 message: string;
1969 request_id?: string;
1970}
1971
1972export type EnvelopeImportResultDtoData = {
1973 commit_count: number;
1974 default_branch: string;
1975};
1976
1977export interface EnvelopeImportResultDto {
1978 code: number;
1979 data?: EnvelopeImportResultDtoData;
1980 /** @nullable */
1981 error?: string | null;
1982 /** @nullable */
1983 error_code?: string | null;
1984 message: string;
1985 request_id?: string;
1986}
1987
1988export type EnvelopeIsAncestorResponseData = {
1989 is_ancestor: boolean;
1990};
1991
1992export interface EnvelopeIsAncestorResponse {
1993 code: number;
1994 data?: EnvelopeIsAncestorResponseData;
1995 /** @nullable */
1996 error?: string | null;
1997 /** @nullable */
1998 error_code?: string | null;
1999 message: string;
2000 request_id?: string;
2001}
2002
2003/**
2004 * Upload lifecycle: a row is created before the bytes exist (`Pending`) and
2005 * only an `Uploaded` row may be referenced by an issue.
2006 */
2007export type IssueAttachmentStatus = "pending" | "uploaded";
2008export type EnvelopeIssueAttachmentDtoData = {
2009 content_type: string;
2010 created_at: string;
2011 filename: string;
2012 id: string;
2013 /**
2014 * `None` until the draft is submitted with this attachment attached.
2015 * @nullable
2016 */
2017 issue_id?: string | null;
2018 size: number;
2019 status: IssueAttachmentStatus;
2020 uploader_id: number;
2021};
2022
2023export interface EnvelopeIssueAttachmentDto {
2024 code: number;
2025 data?: EnvelopeIssueAttachmentDtoData;
2026 /** @nullable */
2027 error?: string | null;
2028 /** @nullable */
2029 error_code?: string | null;
2030 message: string;
2031 request_id?: string;
2032}
2033
2034export type IssueState = "open" | "closed";
2035export type WatchMode = "unwatched" | "watching" | "ignore";
2036export type EnvelopeIssueDtoData = {
2037 assignees: UserDto[];
2038 author?: null | UserDto;
2039 board_id: string;
2040 /** @nullable */
2041 closed_at?: string | null;
2042 content: string;
2043 created_at: string;
2044 /** @nullable */
2045 description?: string | null;
2046 /** @nullable */
2047 due_at?: string | null;
2048 id: string;
2049 /** @nullable */
2050 milestone_id?: string | null;
2051 number: number;
2052 priority: IssuePriority;
2053 state: IssueState;
2054 title: string;
2055 /** @nullable */
2056 updated_at?: string | null;
2057 viewer_watch?: null | WatchMode;
2058};
2059
2060export interface EnvelopeIssueDto {
2061 code: number;
2062 data?: EnvelopeIssueDtoData;
2063 /** @nullable */
2064 error?: string | null;
2065 /** @nullable */
2066 error_code?: string | null;
2067 message: string;
2068 request_id?: string;
2069}
2070
2071export type EnvelopeIssueMemberDtoData = {
2072 created_at: string;
2073 id: string;
2074 issue_id: string;
2075 kind: IssueMemberKind;
2076 /** @nullable */
2077 updated_at?: string | null;
2078 user?: null | UserDto;
2079};
2080
2081export interface EnvelopeIssueMemberDto {
2082 code: number;
2083 data?: EnvelopeIssueMemberDtoData;
2084 /** @nullable */
2085 error?: string | null;
2086 /** @nullable */
2087 error_code?: string | null;
2088 message: string;
2089 request_id?: string;
2090}
2091
2092export type EnvelopeIssueUploadIntentDtoData = {
2093 /** @minimum 0 */
2094 expires_secs: number;
2095 id: string;
2096 upload_url: string;
2097};
2098
2099export interface EnvelopeIssueUploadIntentDto {
2100 code: number;
2101 data?: EnvelopeIssueUploadIntentDtoData;
2102 /** @nullable */
2103 error?: string | null;
2104 /** @nullable */
2105 error_code?: string | null;
2106 message: string;
2107 request_id?: string;
2108}
2109
2110export type EnvelopeIssueUserDtoData = {
2111 created_at: string;
2112 id: string;
2113 is_read: boolean;
2114 issue_id: string;
2115 user?: null | UserDto;
2116 user_id: number;
2117};
2118
2119export interface EnvelopeIssueUserDto {
2120 code: number;
2121 data?: EnvelopeIssueUserDtoData;
2122 /** @nullable */
2123 error?: string | null;
2124 /** @nullable */
2125 error_code?: string | null;
2126 message: string;
2127 request_id?: string;
2128}
2129
2130export type SpaceJoinRequestState =
2131 "pending" | "approved" | "rejected" | "withdrawn";
2132export type EnvelopeJoinRequestDtoData = {
2133 created_at: string;
2134 /** @nullable */
2135 decided_at?: string | null;
2136 decided_by?: null | UserDto;
2137 id: string;
2138 /** @nullable */
2139 note?: string | null;
2140 space_id: string;
2141 status: SpaceJoinRequestState;
2142 updated_at: string;
2143 user?: null | UserDto;
2144};
2145
2146export interface EnvelopeJoinRequestDto {
2147 code: number;
2148 data?: EnvelopeJoinRequestDtoData;
2149 /** @nullable */
2150 error?: string | null;
2151 /** @nullable */
2152 error_code?: string | null;
2153 message: string;
2154 request_id?: string;
2155}
2156
2157export type EnvelopeJoinRuleDtoData = {
2158 created_at: string;
2159 enabled: boolean;
2160 id: string;
2161 matcher: string;
2162 role_id: string;
2163 trigger: SpaceJoinTrigger;
2164 updated_at: string;
2165};
2166
2167export interface EnvelopeJoinRuleDto {
2168 code: number;
2169 data?: EnvelopeJoinRuleDtoData;
2170 /** @nullable */
2171 error?: string | null;
2172 /** @nullable */
2173 error_code?: string | null;
2174 message: string;
2175 request_id?: string;
2176}
2177
2178export type EnvelopeLabelDtoData = {
2179 color: string;
2180 created_at: string;
2181 /** @nullable */
2182 description?: string | null;
2183 dir_id: string;
2184 exclusive: boolean;
2185 exclusive_order: number;
2186 id: string;
2187 is_archived: boolean;
2188 name: string;
2189 /** @nullable */
2190 updated_at?: string | null;
2191};
2192
2193export interface EnvelopeLabelDto {
2194 code: number;
2195 data?: EnvelopeLabelDtoData;
2196 /** @nullable */
2197 error?: string | null;
2198 /** @nullable */
2199 error_code?: string | null;
2200 message: string;
2201 request_id?: string;
2202}
2203
2204export interface LfsLockOwner {
2205 name: string;
2206}
2207
2208export type EnvelopeLfsLockData = {
2209 id: string;
2210 locked_at: string;
2211 owner: LfsLockOwner;
2212 path: string;
2213};
2214
2215export interface EnvelopeLfsLock {
2216 code: number;
2217 data?: EnvelopeLfsLockData;
2218 /** @nullable */
2219 error?: string | null;
2220 /** @nullable */
2221 error_code?: string | null;
2222 message: string;
2223 request_id?: string;
2224}
2225
2226export interface LfsLock {
2227 id: string;
2228 locked_at: string;
2229 owner: LfsLockOwner;
2230 path: string;
2231}
2232
2233export type EnvelopeLfsLockListResponseData = {
2234 locks?: LfsLock[];
2235 /** @nullable */
2236 next_cursor?: string | null;
2237};
2238
2239export interface EnvelopeLfsLockListResponse {
2240 code: number;
2241 data?: EnvelopeLfsLockListResponseData;
2242 /** @nullable */
2243 error?: string | null;
2244 /** @nullable */
2245 error_code?: string | null;
2246 message: string;
2247 request_id?: string;
2248}
2249
2250export type EnvelopeLfsVerifyLocksResponseData = {
2251 /** @nullable */
2252 next_cursor?: string | null;
2253 ours?: LfsLock[];
2254 theirs?: LfsLock[];
2255};
2256
2257export interface EnvelopeLfsVerifyLocksResponse {
2258 code: number;
2259 data?: EnvelopeLfsVerifyLocksResponseData;
2260 /** @nullable */
2261 error?: string | null;
2262 /** @nullable */
2263 error_code?: string | null;
2264 message: string;
2265 request_id?: string;
2266}
2267
2268export type EnvelopeLicenseDtoData = {
2269 body: string;
2270 created_at: string;
2271 /** @nullable */
2272 description?: string | null;
2273 display_name: string;
2274 name: string;
2275 updated_at: string;
2276 /** @nullable */
2277 url?: string | null;
2278};
2279
2280export interface EnvelopeLicenseDto {
2281 code: number;
2282 data?: EnvelopeLicenseDtoData;
2283 /** @nullable */
2284 error?: string | null;
2285 /** @nullable */
2286 error_code?: string | null;
2287 message: string;
2288 request_id?: string;
2289}
2290
2291export type EnvelopeLoginCodeResponseData = {
2292 /** @minimum 0 */
2293 expires_in_secs: number;
2294};
2295
2296export interface EnvelopeLoginCodeResponse {
2297 code: number;
2298 data?: EnvelopeLoginCodeResponseData;
2299 /** @nullable */
2300 error?: string | null;
2301 /** @nullable */
2302 error_code?: string | null;
2303 message: string;
2304 request_id?: string;
2305}
2306
2307export type EnvelopeLogoutResponseData = {
2308 /** @nullable */
2309 user_id?: number | null;
2310};
2311
2312export interface EnvelopeLogoutResponse {
2313 code: number;
2314 data?: EnvelopeLogoutResponseData;
2315 /** @nullable */
2316 error?: string | null;
2317 /** @nullable */
2318 error_code?: string | null;
2319 message: string;
2320 request_id?: string;
2321}
2322
2323export type EnvelopeMarkedCountRespData = {
2324 /** @minimum 0 */
2325 marked: number;
2326};
2327
2328export interface EnvelopeMarkedCountResp {
2329 code: number;
2330 data?: EnvelopeMarkedCountRespData;
2331 /** @nullable */
2332 error?: string | null;
2333 /** @nullable */
2334 error_code?: string | null;
2335 message: string;
2336 request_id?: string;
2337}
2338
2339export interface ProfileDto {
2340 /** @nullable */
2341 bio?: string | null;
2342 /** @nullable */
2343 company?: string | null;
2344 /** @nullable */
2345 date_of_birth?: string | null;
2346 /** @nullable */
2347 location?: string | null;
2348 /** @nullable */
2349 privacy_agreed_at?: string | null;
2350 /** @nullable */
2351 pronouns?: string | null;
2352 /** @nullable */
2353 real_name?: string | null;
2354 show_activity: boolean;
2355 show_email: boolean;
2356 show_location: boolean;
2357 show_real_name: boolean;
2358 /** @nullable */
2359 website?: string | null;
2360}
2361
2362export type ProfileVisibility =
2363 "Public" | "RegisteredOnly" | "MembersOnly" | "Private";
2364export interface UserMeDto {
2365 avatar_url: string;
2366 bot: boolean;
2367 created_at: string;
2368 display_name: string;
2369 is_active: boolean;
2370 is_restricted: boolean;
2371 /** @nullable */
2372 language?: string | null;
2373 /** @nullable */
2374 locale?: string | null;
2375 prohibit_login: boolean;
2376 system: boolean;
2377 /** @nullable */
2378 timezone?: string | null;
2379 user_id: number;
2380 username: string;
2381 visibility: ProfileVisibility;
2382}
2383
2384export type EnvelopeMeRespData = {
2385 profile?: null | ProfileDto;
2386 user: UserMeDto;
2387};
2388
2389export interface EnvelopeMeResp {
2390 code: number;
2391 data?: EnvelopeMeRespData;
2392 /** @nullable */
2393 error?: string | null;
2394 /** @nullable */
2395 error_code?: string | null;
2396 message: string;
2397 request_id?: string;
2398}
2399
2400export type EnvelopeMeResponseData = {
2401 /** @nullable */
2402 avatar_url?: string | null;
2403 created_at: string;
2404 /** @nullable */
2405 displayname?: string | null;
2406 email: string;
2407 /** @nullable */
2408 email_verified_at?: string | null;
2409 is_admin: boolean;
2410 user_id: number;
2411 username: string;
2412 version: number;
2413};
2414
2415export interface EnvelopeMeResponse {
2416 code: number;
2417 data?: EnvelopeMeResponseData;
2418 /** @nullable */
2419 error?: string | null;
2420 /** @nullable */
2421 error_code?: string | null;
2422 message: string;
2423 request_id?: string;
2424}
2425
2426/**
2427 * 会籍的通知偏好,对应旧 `space_members.message_notifications`。
2428 * 旧表用 0/1/2 存,这里用字符串存,便于跨服务读写时直接透传。
2429 */
2430export type MessageNotifications = "all" | "mentions" | "nothing";
2431/**
2432 * 会籍状态,由 `joined_at` / `left_at` / `banned_at` 推导,供 API 层展示。
2433 */
2434export type MemberStatus =
2435 "Active" | "Inactive" | "Left" | "Removed" | "Banned";
2436export type EnvelopeMemberDtoData = {
2437 /** @nullable */
2438 alias_avatar_url?: string | null;
2439 /** @nullable */
2440 alias_name?: string | null;
2441 created_at: string;
2442 hide_muted_channels: boolean;
2443 /** @nullable */
2444 invited_at?: string | null;
2445 invited_by?: null | UserDto;
2446 joined_at: string;
2447 /** @nullable */
2448 last_active_at?: string | null;
2449 /** @nullable */
2450 left_at?: string | null;
2451 message_notifications: MessageNotifications;
2452 mobile_push: boolean;
2453 /** @nullable */
2454 mute_until?: string | null;
2455 muted: boolean;
2456 space_id: string;
2457 status: MemberStatus;
2458 suppress_everyone: boolean;
2459 suppress_roles: boolean;
2460 /** @nullable */
2461 updated_at?: string | null;
2462 user?: null | UserDto;
2463};
2464
2465export interface EnvelopeMemberDto {
2466 code: number;
2467 data?: EnvelopeMemberDtoData;
2468 /** @nullable */
2469 error?: string | null;
2470 /** @nullable */
2471 error_code?: string | null;
2472 message: string;
2473 request_id?: string;
2474}
2475
2476export type EnvelopeMemberSummaryData = {
2477 /** @nullable */
2478 alias_avatar_url?: string | null;
2479 /** @nullable */
2480 alias_name?: string | null;
2481 ban_allow_agent_join: boolean;
2482 ban_allow_comment_any: boolean;
2483 ban_allow_push_repo: boolean;
2484 ban_allow_speak: boolean;
2485 /** @nullable */
2486 ban_expires_at?: string | null;
2487 /** @nullable */
2488 ban_reason?: string | null;
2489 /** @nullable */
2490 banned_at?: string | null;
2491 /** @nullable */
2492 displayname?: string | null;
2493 hide_muted_channels: boolean;
2494 id: string;
2495 /** @nullable */
2496 invited_by?: number | null;
2497 join_method: SpaceJoinMethod;
2498 joined_at: string;
2499 /** @nullable */
2500 last_active_at?: string | null;
2501 /** @nullable */
2502 left_at?: string | null;
2503 message_notifications: MessageNotifications;
2504 mobile_push: boolean;
2505 /** @nullable */
2506 mute_until?: string | null;
2507 muted: boolean;
2508 organization_id: string;
2509 permissions: string[];
2510 role: SpaceMemberRole;
2511 role_keys: string[];
2512 suppress_everyone: boolean;
2513 suppress_roles: boolean;
2514 user_id: number;
2515 username: string;
2516 version: number;
2517};
2518
2519export interface EnvelopeMemberSummary {
2520 code: number;
2521 data?: EnvelopeMemberSummaryData;
2522 /** @nullable */
2523 error?: string | null;
2524 /** @nullable */
2525 error_code?: string | null;
2526 message: string;
2527 request_id?: string;
2528}
2529
2530export type EnvelopeMemeDtoData = {
2531 content_type: string;
2532 created_at: string;
2533 /** @nullable */
2534 height?: number | null;
2535 id: string;
2536 name: string;
2537 size: number;
2538 url: string;
2539 /** @nullable */
2540 width?: number | null;
2541};
2542
2543export interface EnvelopeMemeDto {
2544 code: number;
2545 data?: EnvelopeMemeDtoData;
2546 /** @nullable */
2547 error?: string | null;
2548 /** @nullable */
2549 error_code?: string | null;
2550 message: string;
2551 request_id?: string;
2552}
2553
2554export interface PullRefDto {
2555 branch: string;
2556 label: string;
2557 /** @nullable */
2558 repo_id?: string | null;
2559 sha: string;
2560}
2561
2562export type MergeMethod = "merge" | "squash" | "rebase";
2563export type PullState = "open" | "closed" | "merged";
2564export interface PullDto {
2565 additions: number;
2566 author?: null | UserDto;
2567 auto_merge: boolean;
2568 base: PullRefDto;
2569 body: string;
2570 /** @nullable */
2571 closed_at?: string | null;
2572 /** @nullable */
2573 commits_ahead?: number | null;
2574 /** @nullable */
2575 commits_behind?: number | null;
2576 /** @nullable */
2577 conflicts?: string[] | null;
2578 created_at: string;
2579 deletions: number;
2580 files_changed: number;
2581 head: PullRefDto;
2582 id: string;
2583 is_draft: boolean;
2584 /** @nullable */
2585 issue_id?: string | null;
2586 locked: boolean;
2587 merge_method: MergeMethod;
2588 /** @nullable */
2589 mergeable?: boolean | null;
2590 /** @nullable */
2591 mergeable_state?: string | null;
2592 /** @nullable */
2593 merged_at?: string | null;
2594 /** @nullable */
2595 merged_commit_sha?: string | null;
2596 merger?: null | UserDto;
2597 number: number;
2598 repo_id: string;
2599 /** @nullable */
2600 squash_commit_sha?: string | null;
2601 state: PullState;
2602 title: string;
2603 /** @nullable */
2604 updated_at?: string | null;
2605}
2606
2607export interface MergeResultDto {
2608 base_ref: string;
2609 head_sha: string;
2610 /** `fast_forward` | `merge_commit` | `squash` | `rebase` */
2611 method: string;
2612 new_sha: string;
2613 old_sha: string;
2614 /** rebase 时重写出来的提交(按时间正序)。 */
2615 rewritten: string[];
2616}
2617
2618export interface PullSummaryDto {
2619 additions: number;
2620 base_sha: string;
2621 commits_ahead: number;
2622 commits_behind: number;
2623 conflicts: string[];
2624 deletions: number;
2625 files_changed: number;
2626 head_sha: string;
2627 /** @nullable */
2628 merge_base?: string | null;
2629 mergeable: boolean;
2630 mergeable_state: string;
2631}
2632
2633export type EnvelopeMergePullDtoData = {
2634 pull: PullDto;
2635 result: MergeResultDto;
2636 summary: PullSummaryDto;
2637};
2638
2639export interface EnvelopeMergePullDto {
2640 code: number;
2641 data?: EnvelopeMergePullDtoData;
2642 /** @nullable */
2643 error?: string | null;
2644 /** @nullable */
2645 error_code?: string | null;
2646 message: string;
2647 request_id?: string;
2648}
2649
2650export type EnvelopeMergeStatusDtoData = {
2651 conflicts: string[];
2652 fast_forwardable: boolean;
2653 mergeable: boolean;
2654};
2655
2656export interface EnvelopeMergeStatusDto {
2657 code: number;
2658 data?: EnvelopeMergeStatusDtoData;
2659 /** @nullable */
2660 error?: string | null;
2661 /** @nullable */
2662 error_code?: string | null;
2663 message: string;
2664 request_id?: string;
2665}
2666
2667/**
2668 * Discord 风格的消息 embed。
2669 *
2670 * `platform` / `kind` / `src` / `image_url` 等字段是旧消息与旧缓存的兼容外壳:
2671 * 历史 `chat_message.embeds` 里存的还是老结构,反序列化时不能丢字段;新写入
2672 * 同时填富模型和这些兼容字段,前端可以逐步迁移。
2673 */
2674export interface MessageEmbed {
2675 /** @nullable */
2676 aspect?: string | null;
2677 audio?: null | EmbedMedia;
2678 author?: null | EmbedAuthor;
2679 /** @nullable */
2680 category?: string | null;
2681 /** @nullable */
2682 children?: MessageEmbed[] | null;
2683 /**
2684 * @minimum 0
2685 * @nullable
2686 */
2687 color?: number | null;
2688 /** @nullable */
2689 description?: string | null;
2690 /** @nullable */
2691 fields?: EmbedField[] | null;
2692 footer?: null | EmbedFooter;
2693 /**
2694 * @minimum 0
2695 * @nullable
2696 */
2697 height?: number | null;
2698 /** @nullable */
2699 html?: string | null;
2700 /**
2701 * @minimum 0
2702 * @nullable
2703 */
2704 html_height?: number | null;
2705 /**
2706 * @minimum 0
2707 * @nullable
2708 */
2709 html_width?: number | null;
2710 image?: null | EmbedMedia;
2711 /** @nullable */
2712 image_url?: string | null;
2713 /** @nullable */
2714 kind?: string | null;
2715 /** @nullable */
2716 nsfw?: boolean | null;
2717 /** @nullable */
2718 platform?: string | null;
2719 /** @nullable */
2720 platform_name?: string | null;
2721 provider?: null | EmbedProvider;
2722 /** @nullable */
2723 site_name?: string | null;
2724 /** @nullable */
2725 src?: string | null;
2726 thumbnail?: null | EmbedMedia;
2727 /** @nullable */
2728 timestamp?: string | null;
2729 /** @nullable */
2730 title?: string | null;
2731 type?: string;
2732 /** @nullable */
2733 url?: string | null;
2734 video?: null | EmbedMedia;
2735}
2736
2737export interface ReactionAggDto {
2738 count: number;
2739 emoji: string;
2740 me: boolean;
2741}
2742
2743export type EnvelopeMessageDtoData = {
2744 attachments: AttachmentDto[];
2745 author?: null | UserDto;
2746 author_id: number;
2747 author_type: AuthorType;
2748 content: string;
2749 created_at: string;
2750 /** @nullable */
2751 deleted_at?: string | null;
2752 /** @nullable */
2753 edited_at?: string | null;
2754 embeds?: MessageEmbed[];
2755 /** @nullable */
2756 forwarded_from_id?: string | null;
2757 has_thread: boolean;
2758 id: string;
2759 mention_everyone: boolean;
2760 mentions: number[];
2761 message_type: ChatMessageType;
2762 pinned: boolean;
2763 /** @nullable */
2764 pinned_at?: string | null;
2765 /** @nullable */
2766 pinned_by_id?: number | null;
2767 reactions?: ReactionAggDto[];
2768 /** @nullable */
2769 reply_to_id?: string | null;
2770 room_id: string;
2771 seq: number;
2772 thread_broadcast: boolean;
2773 /** @nullable */
2774 thread_id?: string | null;
2775 /** @nullable */
2776 webhook_id?: string | null;
2777};
2778
2779export interface EnvelopeMessageDto {
2780 code: number;
2781 data?: EnvelopeMessageDtoData;
2782 /** @nullable */
2783 error?: string | null;
2784 /** @nullable */
2785 error_code?: string | null;
2786 message: string;
2787 request_id?: string;
2788}
2789
2790export interface MessageDto {
2791 attachments: AttachmentDto[];
2792 author?: null | UserDto;
2793 author_id: number;
2794 author_type: AuthorType;
2795 content: string;
2796 created_at: string;
2797 /** @nullable */
2798 deleted_at?: string | null;
2799 /** @nullable */
2800 edited_at?: string | null;
2801 embeds?: MessageEmbed[];
2802 /** @nullable */
2803 forwarded_from_id?: string | null;
2804 has_thread: boolean;
2805 id: string;
2806 mention_everyone: boolean;
2807 mentions: number[];
2808 message_type: ChatMessageType;
2809 pinned: boolean;
2810 /** @nullable */
2811 pinned_at?: string | null;
2812 /** @nullable */
2813 pinned_by_id?: number | null;
2814 reactions?: ReactionAggDto[];
2815 /** @nullable */
2816 reply_to_id?: string | null;
2817 room_id: string;
2818 seq: number;
2819 thread_broadcast: boolean;
2820 /** @nullable */
2821 thread_id?: string | null;
2822 /** @nullable */
2823 webhook_id?: string | null;
2824}
2825
2826export type EnvelopeMessagePageData = {
2827 has_more: boolean;
2828 items: MessageDto[];
2829 /** @nullable */
2830 newest_seq?: number | null;
2831 /** @nullable */
2832 oldest_seq?: number | null;
2833};
2834
2835export interface EnvelopeMessagePage {
2836 code: number;
2837 data?: EnvelopeMessagePageData;
2838 /** @nullable */
2839 error?: string | null;
2840 /** @nullable */
2841 error_code?: string | null;
2842 message: string;
2843 request_id?: string;
2844}
2845
2846export type EnvelopeMilestoneDtoData = {
2847 board_id: string;
2848 closed_issues_count: number;
2849 created_at: string;
2850 /** @nullable */
2851 description?: string | null;
2852 /** @nullable */
2853 due_at?: string | null;
2854 id: string;
2855 is_closed: boolean;
2856 issues_count: number;
2857 name: string;
2858 /** @nullable */
2859 updated_at?: string | null;
2860};
2861
2862export interface EnvelopeMilestoneDto {
2863 code: number;
2864 data?: EnvelopeMilestoneDtoData;
2865 /** @nullable */
2866 error?: string | null;
2867 /** @nullable */
2868 error_code?: string | null;
2869 message: string;
2870 request_id?: string;
2871}
2872
2873export interface EnvelopeNoData {
2874 code: number;
2875 data?: unknown;
2876 /** @nullable */
2877 error?: string | null;
2878 /** @nullable */
2879 error_code?: string | null;
2880 message: string;
2881 request_id?: string;
2882}
2883
2884export type EnvelopeOptionAvatarDtoData = {
2885 /**
2886 * Size of the uploaded original in bytes.
2887 * @minimum 0
2888 */
2889 bytes: number;
2890 /** Format of the uploaded original. */
2891 format: AvatarFormat;
2892 updated_at: string;
2893 /**
2894 * Browser-facing URL. Points at the compressed derivative when one exists,
2895 * and at the uploaded bytes otherwise.
2896 */
2897 url: string;
2898 user_id: number;
2899} | null;
2900
2901export interface EnvelopeOptionAvatarDto {
2902 code: number;
2903 data?: EnvelopeOptionAvatarDtoData;
2904 /** @nullable */
2905 error?: string | null;
2906 /** @nullable */
2907 error_code?: string | null;
2908 message: string;
2909 request_id?: string;
2910}
2911
2912export type EnvelopeOptionDraftDtoData = {
2913 content: string;
2914 room_id: string;
2915 /** @nullable */
2916 thread_id?: string | null;
2917 updated_at: string;
2918} | null;
2919
2920export interface EnvelopeOptionDraftDto {
2921 code: number;
2922 data?: EnvelopeOptionDraftDtoData;
2923 /** @nullable */
2924 error?: string | null;
2925 /** @nullable */
2926 error_code?: string | null;
2927 message: string;
2928 request_id?: string;
2929}
2930
2931export type SpaceImageKind =
2932 "avatar" | "banner" | "invite_banner" | "embed_splash";
2933export type EnvelopeOptionSpaceImageDtoData = {
2934 /** @minimum 0 */
2935 bytes: number;
2936 format: AvatarFormat;
2937 /** @nullable */
2938 height?: number | null;
2939 kind: SpaceImageKind;
2940 space_id: string;
2941 updated_at: string;
2942 url: string;
2943 /** @nullable */
2944 width?: number | null;
2945} | null;
2946
2947export interface EnvelopeOptionSpaceImageDto {
2948 code: number;
2949 data?: EnvelopeOptionSpaceImageDtoData;
2950 /** @nullable */
2951 error?: string | null;
2952 /** @nullable */
2953 error_code?: string | null;
2954 message: string;
2955 request_id?: string;
2956}
2957
2958export type EnvelopeOptionStopwatchDtoData = {
2959 /** @nullable */
2960 created_at?: string | null;
2961 /** @nullable */
2962 id?: string | null;
2963 issue_id: string;
2964 running: boolean;
2965 /** @nullable */
2966 started_at?: string | null;
2967 user?: null | UserDto;
2968} | null;
2969
2970export interface EnvelopeOptionStopwatchDto {
2971 code: number;
2972 data?: EnvelopeOptionStopwatchDtoData;
2973 /** @nullable */
2974 error?: string | null;
2975 /** @nullable */
2976 error_code?: string | null;
2977 message: string;
2978 request_id?: string;
2979}
2980
2981export type SpaceStatus = "active" | "suspended" | "archived";
2982export type EnvelopeOrganizationSummaryData = {
2983 allow_invite: boolean;
2984 allow_join: boolean;
2985 allow_join_level: number;
2986 /** @nullable */
2987 archived_at?: string | null;
2988 /** @nullable */
2989 avatar_url?: string | null;
2990 created_at: string;
2991 /** @nullable */
2992 description?: string | null;
2993 id: string;
2994 join_policy: SpaceJoinPolicy;
2995 member_count: number;
2996 member_must_enable_2fa: boolean;
2997 my_role?: null | SpaceMemberRole;
2998 name: string;
2999 owner_user_id: number;
3000 require_email_verified: boolean;
3001 require_mfa: boolean;
3002 slug: string;
3003 status: SpaceStatus;
3004 updated_at: string;
3005 version: number;
3006 /** @nullable */
3007 welcome_message?: string | null;
3008};
3009
3010export interface EnvelopeOrganizationSummary {
3011 code: number;
3012 data?: EnvelopeOrganizationSummaryData;
3013 /** @nullable */
3014 error?: string | null;
3015 /** @nullable */
3016 error_code?: string | null;
3017 message: string;
3018 request_id?: string;
3019}
3020
3021export type EnvelopeOutboundWebhookDtoData = {
3022 created_at: string;
3023 disabled: boolean;
3024 id: string;
3025 /** @nullable */
3026 last_status?: string | null;
3027 /** @nullable */
3028 last_used_at?: string | null;
3029 name: string;
3030 room_id: string;
3031 url: string;
3032};
3033
3034export interface EnvelopeOutboundWebhookDto {
3035 code: number;
3036 data?: EnvelopeOutboundWebhookDtoData;
3037 /** @nullable */
3038 error?: string | null;
3039 /** @nullable */
3040 error_code?: string | null;
3041 message: string;
3042 request_id?: string;
3043}
3044
3045export type EnvelopeOutboundWebhookSecretDtoData = {
3046 created_at: string;
3047 id: string;
3048 name: string;
3049 room_id: string;
3050 secret: string;
3051 url: string;
3052};
3053
3054export interface EnvelopeOutboundWebhookSecretDto {
3055 code: number;
3056 data?: EnvelopeOutboundWebhookSecretDtoData;
3057 /** @nullable */
3058 error?: string | null;
3059 /** @nullable */
3060 error_code?: string | null;
3061 message: string;
3062 request_id?: string;
3063}
3064
3065export interface ThreadDto {
3066 archived: boolean;
3067 created_at: string;
3068 id: string;
3069 /** @nullable */
3070 last_reply_at?: string | null;
3071 /** @nullable */
3072 last_reply_id?: string | null;
3073 locked: boolean;
3074 /** @nullable */
3075 name?: string | null;
3076 owner?: null | UserDto;
3077 owner_id: number;
3078 participant_count: number;
3079 reply_count: number;
3080 room_id: string;
3081 root_message_id: string;
3082 updated_at: string;
3083}
3084
3085export type EnvelopePageData = {
3086 items: ThreadDto[];
3087 /** @minimum 0 */
3088 limit: number;
3089 /** @minimum 0 */
3090 offset: number;
3091 total: number;
3092};
3093
3094export interface EnvelopePage {
3095 code: number;
3096 data?: EnvelopePageData;
3097 /** @nullable */
3098 error?: string | null;
3099 /** @nullable */
3100 error_code?: string | null;
3101 message: string;
3102 request_id?: string;
3103}
3104
3105export type EnvelopePageBookmarkDtoDataItemsItem = {
3106 created_at: string;
3107 created_by_id: number;
3108 /** @nullable */
3109 emoji?: string | null;
3110 id: string;
3111 position: number;
3112 room_id: string;
3113 title: string;
3114 /** @nullable */
3115 url?: string | null;
3116};
3117
3118export type EnvelopePageBookmarkDtoData = {
3119 items: EnvelopePageBookmarkDtoDataItemsItem[];
3120 /** @minimum 0 */
3121 limit: number;
3122 /** @minimum 0 */
3123 offset: number;
3124 total: number;
3125};
3126
3127export interface EnvelopePageBookmarkDto {
3128 code: number;
3129 data?: EnvelopePageBookmarkDtoData;
3130 /** @nullable */
3131 error?: string | null;
3132 /** @nullable */
3133 error_code?: string | null;
3134 message: string;
3135 request_id?: string;
3136}
3137
3138export type EnvelopePageBranchDtoDataItemsItem = {
3139 commit_sha: string;
3140 created_at: string;
3141 /** @nullable */
3142 deleted_at?: string | null;
3143 is_deleted: boolean;
3144 is_protected: boolean;
3145 name: string;
3146 updated_at: string;
3147};
3148
3149export type EnvelopePageBranchDtoData = {
3150 items: EnvelopePageBranchDtoDataItemsItem[];
3151 /** @minimum 0 */
3152 limit: number;
3153 /** @minimum 0 */
3154 offset: number;
3155 total: number;
3156};
3157
3158export interface EnvelopePageBranchDto {
3159 code: number;
3160 data?: EnvelopePageBranchDtoData;
3161 /** @nullable */
3162 error?: string | null;
3163 /** @nullable */
3164 error_code?: string | null;
3165 message: string;
3166 request_id?: string;
3167}
3168
3169export type EnvelopePageDmDtoDataItemsItem = {
3170 created_at: string;
3171 id: string;
3172 kind: RoomKind;
3173 /** @nullable */
3174 last_message_id?: string | null;
3175 last_read_seq: number;
3176 members?: UserDto[];
3177 name: string;
3178 peer?: null | UserDto;
3179 tip_seq: number;
3180 unread_count: number;
3181};
3182
3183export type EnvelopePageDmDtoData = {
3184 items: EnvelopePageDmDtoDataItemsItem[];
3185 /** @minimum 0 */
3186 limit: number;
3187 /** @minimum 0 */
3188 offset: number;
3189 total: number;
3190};
3191
3192export interface EnvelopePageDmDto {
3193 code: number;
3194 data?: EnvelopePageDmDtoData;
3195 /** @nullable */
3196 error?: string | null;
3197 /** @nullable */
3198 error_code?: string | null;
3199 message: string;
3200 request_id?: string;
3201}
3202
3203export type EnvelopePageDraftDtoDataItemsItem = {
3204 content: string;
3205 room_id: string;
3206 /** @nullable */
3207 thread_id?: string | null;
3208 updated_at: string;
3209};
3210
3211export type EnvelopePageDraftDtoData = {
3212 items: EnvelopePageDraftDtoDataItemsItem[];
3213 /** @minimum 0 */
3214 limit: number;
3215 /** @minimum 0 */
3216 offset: number;
3217 total: number;
3218};
3219
3220export interface EnvelopePageDraftDto {
3221 code: number;
3222 data?: EnvelopePageDraftDtoData;
3223 /** @nullable */
3224 error?: string | null;
3225 /** @nullable */
3226 error_code?: string | null;
3227 message: string;
3228 request_id?: string;
3229}
3230
3231export type EnvelopePageEmojiDtoDataItemsItem = {
3232 animated: boolean;
3233 created_at: string;
3234 disabled: boolean;
3235 id: string;
3236 name: string;
3237 space_id: string;
3238};
3239
3240export type EnvelopePageEmojiDtoData = {
3241 items: EnvelopePageEmojiDtoDataItemsItem[];
3242 /** @minimum 0 */
3243 limit: number;
3244 /** @minimum 0 */
3245 offset: number;
3246 total: number;
3247};
3248
3249export interface EnvelopePageEmojiDto {
3250 code: number;
3251 data?: EnvelopePageEmojiDtoData;
3252 /** @nullable */
3253 error?: string | null;
3254 /** @nullable */
3255 error_code?: string | null;
3256 message: string;
3257 request_id?: string;
3258}
3259
3260export type EnvelopePageMessageDtoDataItemsItem = {
3261 attachments: AttachmentDto[];
3262 author?: null | UserDto;
3263 author_id: number;
3264 author_type: AuthorType;
3265 content: string;
3266 created_at: string;
3267 /** @nullable */
3268 deleted_at?: string | null;
3269 /** @nullable */
3270 edited_at?: string | null;
3271 embeds?: MessageEmbed[];
3272 /** @nullable */
3273 forwarded_from_id?: string | null;
3274 has_thread: boolean;
3275 id: string;
3276 mention_everyone: boolean;
3277 mentions: number[];
3278 message_type: ChatMessageType;
3279 pinned: boolean;
3280 /** @nullable */
3281 pinned_at?: string | null;
3282 /** @nullable */
3283 pinned_by_id?: number | null;
3284 reactions?: ReactionAggDto[];
3285 /** @nullable */
3286 reply_to_id?: string | null;
3287 room_id: string;
3288 seq: number;
3289 thread_broadcast: boolean;
3290 /** @nullable */
3291 thread_id?: string | null;
3292 /** @nullable */
3293 webhook_id?: string | null;
3294};
3295
3296export type EnvelopePageMessageDtoData = {
3297 items: EnvelopePageMessageDtoDataItemsItem[];
3298 /** @minimum 0 */
3299 limit: number;
3300 /** @minimum 0 */
3301 offset: number;
3302 total: number;
3303};
3304
3305export interface EnvelopePageMessageDto {
3306 code: number;
3307 data?: EnvelopePageMessageDtoData;
3308 /** @nullable */
3309 error?: string | null;
3310 /** @nullable */
3311 error_code?: string | null;
3312 message: string;
3313 request_id?: string;
3314}
3315
3316export interface Value {}
3317
3318export type NotificationType =
3319 "mention" | "reply" | "follow" | "invite" | "assignment" | "system";
3320export type EnvelopePageNotificationDtoDataItemsItem = {
3321 /** @nullable */
3322 actor_id?: number | null;
3323 /** @nullable */
3324 body?: string | null;
3325 created_at: string;
3326 data?: null | Value;
3327 id: string;
3328 notification_type: NotificationType;
3329 /** @nullable */
3330 read_at?: string | null;
3331 title: string;
3332};
3333
3334export type EnvelopePageNotificationDtoData = {
3335 items: EnvelopePageNotificationDtoDataItemsItem[];
3336 /** @minimum 0 */
3337 limit: number;
3338 /** @minimum 0 */
3339 offset: number;
3340 total: number;
3341};
3342
3343export interface EnvelopePageNotificationDto {
3344 code: number;
3345 data?: EnvelopePageNotificationDtoData;
3346 /** @nullable */
3347 error?: string | null;
3348 /** @nullable */
3349 error_code?: string | null;
3350 message: string;
3351 request_id?: string;
3352}
3353
3354export type EnvelopePageRepoSummaryDtoDataItemsItem = {
3355 /** @nullable */
3356 avatar_url?: string | null;
3357 default_branch: string;
3358 /** @nullable */
3359 description?: string | null;
3360 id: string;
3361 is_archived: boolean;
3362 is_private: boolean;
3363 /** @nullable */
3364 license_name?: string | null;
3365 name: string;
3366 /** @nullable */
3367 primary_language?: string | null;
3368 size: number;
3369 stars_count: number;
3370 updated_at: string;
3371 watchers_count: number;
3372};
3373
3374export type EnvelopePageRepoSummaryDtoData = {
3375 items: EnvelopePageRepoSummaryDtoDataItemsItem[];
3376 /** @minimum 0 */
3377 limit: number;
3378 /** @minimum 0 */
3379 offset: number;
3380 total: number;
3381};
3382
3383export interface EnvelopePageRepoSummaryDto {
3384 code: number;
3385 data?: EnvelopePageRepoSummaryDtoData;
3386 /** @nullable */
3387 error?: string | null;
3388 /** @nullable */
3389 error_code?: string | null;
3390 message: string;
3391 request_id?: string;
3392}
3393
3394export type EnvelopePageRoomBanDtoDataItemsItem = {
3395 banned_by?: null | UserDto;
3396 created_at: string;
3397 /** @nullable */
3398 expires_at?: string | null;
3399 /** @nullable */
3400 reason?: string | null;
3401 room_id: string;
3402 user?: null | UserDto;
3403};
3404
3405export type EnvelopePageRoomBanDtoData = {
3406 items: EnvelopePageRoomBanDtoDataItemsItem[];
3407 /** @minimum 0 */
3408 limit: number;
3409 /** @minimum 0 */
3410 offset: number;
3411 total: number;
3412};
3413
3414export interface EnvelopePageRoomBanDto {
3415 code: number;
3416 data?: EnvelopePageRoomBanDtoData;
3417 /** @nullable */
3418 error?: string | null;
3419 /** @nullable */
3420 error_code?: string | null;
3421 message: string;
3422 request_id?: string;
3423}
3424
3425export type SessionKind = "WebLogin" | "BearerAccess";
3426export type EnvelopePageSessionDtoDataItemsItem = {
3427 /** @nullable */
3428 client_ip_hash?: string | null;
3429 created_at: string;
3430 /** @nullable */
3431 device_id?: string | null;
3432 expires_at: string;
3433 id: string;
3434 is_current: boolean;
3435 is_revoked: boolean;
3436 kind: SessionKind;
3437 last_seen_at: string;
3438 /** @nullable */
3439 revoked_at?: string | null;
3440 /** @nullable */
3441 user_agent_hash?: string | null;
3442};
3443
3444export type EnvelopePageSessionDtoData = {
3445 items: EnvelopePageSessionDtoDataItemsItem[];
3446 /** @minimum 0 */
3447 limit: number;
3448 /** @minimum 0 */
3449 offset: number;
3450 total: number;
3451};
3452
3453export interface EnvelopePageSessionDto {
3454 code: number;
3455 data?: EnvelopePageSessionDtoData;
3456 /** @nullable */
3457 error?: string | null;
3458 /** @nullable */
3459 error_code?: string | null;
3460 message: string;
3461 request_id?: string;
3462}
3463
3464export type TagType = "Lightweight" | "Annotated";
3465export type EnvelopePageTagDtoDataItemsItem = {
3466 /** @nullable */
3467 created_at?: string | null;
3468 /** @nullable */
3469 message?: string | null;
3470 name: string;
3471 tag_type: TagType;
3472 /** @nullable */
3473 tagger_email?: string | null;
3474 /** @nullable */
3475 tagger_name?: string | null;
3476 target_sha: string;
3477};
3478
3479export type EnvelopePageTagDtoData = {
3480 items: EnvelopePageTagDtoDataItemsItem[];
3481 /** @minimum 0 */
3482 limit: number;
3483 /** @minimum 0 */
3484 offset: number;
3485 total: number;
3486};
3487
3488export interface EnvelopePageTagDto {
3489 code: number;
3490 data?: EnvelopePageTagDtoData;
3491 /** @nullable */
3492 error?: string | null;
3493 /** @nullable */
3494 error_code?: string | null;
3495 message: string;
3496 request_id?: string;
3497}
3498
3499export type EnvelopePageThreadDtoDataItemsItem = {
3500 archived: boolean;
3501 created_at: string;
3502 id: string;
3503 /** @nullable */
3504 last_reply_at?: string | null;
3505 /** @nullable */
3506 last_reply_id?: string | null;
3507 locked: boolean;
3508 /** @nullable */
3509 name?: string | null;
3510 owner?: null | UserDto;
3511 owner_id: number;
3512 participant_count: number;
3513 reply_count: number;
3514 room_id: string;
3515 root_message_id: string;
3516 updated_at: string;
3517};
3518
3519export type EnvelopePageThreadDtoData = {
3520 items: EnvelopePageThreadDtoDataItemsItem[];
3521 /** @minimum 0 */
3522 limit: number;
3523 /** @minimum 0 */
3524 offset: number;
3525 total: number;
3526};
3527
3528export interface EnvelopePageThreadDto {
3529 code: number;
3530 data?: EnvelopePageThreadDtoData;
3531 /** @nullable */
3532 error?: string | null;
3533 /** @nullable */
3534 error_code?: string | null;
3535 message: string;
3536 request_id?: string;
3537}
3538
3539export type EnvelopePageWebhookDtoDataItemsItem = {
3540 created_at: string;
3541 disabled: boolean;
3542 id: string;
3543 /** @nullable */
3544 last_used_at?: string | null;
3545 name: string;
3546 room_id: string;
3547};
3548
3549export type EnvelopePageWebhookDtoData = {
3550 items: EnvelopePageWebhookDtoDataItemsItem[];
3551 /** @minimum 0 */
3552 limit: number;
3553 /** @minimum 0 */
3554 offset: number;
3555 total: number;
3556};
3557
3558export interface EnvelopePageWebhookDto {
3559 code: number;
3560 data?: EnvelopePageWebhookDtoData;
3561 /** @nullable */
3562 error?: string | null;
3563 /** @nullable */
3564 error_code?: string | null;
3565 message: string;
3566 request_id?: string;
3567}
3568
3569export type EnvelopeParsedPatchDtoData = {
3570 additions: number;
3571 deletions: number;
3572 files: string[];
3573};
3574
3575export interface EnvelopeParsedPatchDto {
3576 code: number;
3577 data?: EnvelopeParsedPatchDtoData;
3578 /** @nullable */
3579 error?: string | null;
3580 /** @nullable */
3581 error_code?: string | null;
3582 message: string;
3583 request_id?: string;
3584}
3585
3586export type EnvelopePasswordResetConfirmResponseData = {
3587 user_id: number;
3588};
3589
3590export interface EnvelopePasswordResetConfirmResponse {
3591 code: number;
3592 data?: EnvelopePasswordResetConfirmResponseData;
3593 /** @nullable */
3594 error?: string | null;
3595 /** @nullable */
3596 error_code?: string | null;
3597 message: string;
3598 request_id?: string;
3599}
3600
3601export type EnvelopePasswordResetResponseData = {
3602 /** @minimum 0 */
3603 expires_in_secs: number;
3604};
3605
3606export interface EnvelopePasswordResetResponse {
3607 code: number;
3608 data?: EnvelopePasswordResetResponseData;
3609 /** @nullable */
3610 error?: string | null;
3611 /** @nullable */
3612 error_code?: string | null;
3613 message: string;
3614 request_id?: string;
3615}
3616
3617export type EnvelopePatchDtoData = {
3618 content: string;
3619 size: number;
3620};
3621
3622export interface EnvelopePatchDto {
3623 code: number;
3624 data?: EnvelopePatchDtoData;
3625 /** @nullable */
3626 error?: string | null;
3627 /** @nullable */
3628 error_code?: string | null;
3629 message: string;
3630 request_id?: string;
3631}
3632
3633export type EnvelopePermissionCheckData = {
3634 allowed: boolean;
3635 matched_by: string;
3636 organization_version: number;
3637 reason: string;
3638};
3639
3640export interface EnvelopePermissionCheck {
3641 code: number;
3642 data?: EnvelopePermissionCheckData;
3643 /** @nullable */
3644 error?: string | null;
3645 /** @nullable */
3646 error_code?: string | null;
3647 message: string;
3648 request_id?: string;
3649}
3650
3651export type EnvelopePinDtoData = {
3652 board_id: string;
3653 created_at: string;
3654 id: string;
3655 /** @nullable */
3656 issue_id?: string | null;
3657 pin_order: number;
3658};
3659
3660export interface EnvelopePinDto {
3661 code: number;
3662 data?: EnvelopePinDtoData;
3663 /** @nullable */
3664 error?: string | null;
3665 /** @nullable */
3666 error_code?: string | null;
3667 message: string;
3668 request_id?: string;
3669}
3670
3671export type PresenceStatus = "Active" | "Away" | "Dnd" | "Offline";
3672export type EnvelopePresenceDtoData = {
3673 activities: unknown;
3674 /** @nullable */
3675 last_seen_at?: string | null;
3676 online: boolean;
3677 status: PresenceStatus;
3678 user?: null | UserDto;
3679 user_id: number;
3680};
3681
3682export interface EnvelopePresenceDto {
3683 code: number;
3684 data?: EnvelopePresenceDtoData;
3685 /** @nullable */
3686 error?: string | null;
3687 /** @nullable */
3688 error_code?: string | null;
3689 message: string;
3690 request_id?: string;
3691}
3692
3693export type EnvelopeProfileDetailDtoData = {
3694 /** @nullable */
3695 accent_color?: string | null;
3696 avatar_url: string;
3697 /** @nullable */
3698 banner_url?: string | null;
3699 /** @nullable */
3700 bio?: string | null;
3701 /** @nullable */
3702 company?: string | null;
3703 display_name: string;
3704 /** @nullable */
3705 location?: string | null;
3706 /** @nullable */
3707 pronouns?: string | null;
3708 /** @nullable */
3709 real_name?: string | null;
3710 /** @nullable */
3711 show_activity?: boolean | null;
3712 /** @nullable */
3713 show_email?: boolean | null;
3714 /** @nullable */
3715 show_location?: boolean | null;
3716 /** @nullable */
3717 show_real_name?: boolean | null;
3718 updated_at: string;
3719 user_id: number;
3720 username: string;
3721 visibility?: null | ProfileVisibility;
3722 /** @nullable */
3723 website?: string | null;
3724};
3725
3726export interface EnvelopeProfileDetailDto {
3727 code: number;
3728 data?: EnvelopeProfileDetailDtoData;
3729 /** @nullable */
3730 error?: string | null;
3731 /** @nullable */
3732 error_code?: string | null;
3733 message: string;
3734 request_id?: string;
3735}
3736
3737export type EnvelopePullChecksDtoData = {
3738 head_sha: string;
3739 statuses: CommitStatusDto[];
3740};
3741
3742export interface EnvelopePullChecksDto {
3743 code: number;
3744 data?: EnvelopePullChecksDtoData;
3745 /** @nullable */
3746 error?: string | null;
3747 /** @nullable */
3748 error_code?: string | null;
3749 message: string;
3750 request_id?: string;
3751}
3752
3753export type EnvelopePullCommentDtoData = {
3754 author?: null | UserDto;
3755 body: string;
3756 /** @nullable */
3757 commit_sha?: string | null;
3758 created_at: string;
3759 id: string;
3760 /** @nullable */
3761 line?: number | null;
3762 /** @nullable */
3763 parent_comment_id?: string | null;
3764 /** @nullable */
3765 path?: string | null;
3766 pull_request_id: string;
3767 resolved: boolean;
3768 /** @nullable */
3769 resolved_by?: number | null;
3770 /** @nullable */
3771 review_id?: string | null;
3772 /** @nullable */
3773 side?: string | null;
3774 /** @nullable */
3775 updated_at?: string | null;
3776};
3777
3778export interface EnvelopePullCommentDto {
3779 code: number;
3780 data?: EnvelopePullCommentDtoData;
3781 /** @nullable */
3782 error?: string | null;
3783 /** @nullable */
3784 error_code?: string | null;
3785 message: string;
3786 request_id?: string;
3787}
3788
3789export type EnvelopePullDtoData = {
3790 additions: number;
3791 author?: null | UserDto;
3792 auto_merge: boolean;
3793 base: PullRefDto;
3794 body: string;
3795 /** @nullable */
3796 closed_at?: string | null;
3797 /** @nullable */
3798 commits_ahead?: number | null;
3799 /** @nullable */
3800 commits_behind?: number | null;
3801 /** @nullable */
3802 conflicts?: string[] | null;
3803 created_at: string;
3804 deletions: number;
3805 files_changed: number;
3806 head: PullRefDto;
3807 id: string;
3808 is_draft: boolean;
3809 /** @nullable */
3810 issue_id?: string | null;
3811 locked: boolean;
3812 merge_method: MergeMethod;
3813 /** @nullable */
3814 mergeable?: boolean | null;
3815 /** @nullable */
3816 mergeable_state?: string | null;
3817 /** @nullable */
3818 merged_at?: string | null;
3819 /** @nullable */
3820 merged_commit_sha?: string | null;
3821 merger?: null | UserDto;
3822 number: number;
3823 repo_id: string;
3824 /** @nullable */
3825 squash_commit_sha?: string | null;
3826 state: PullState;
3827 title: string;
3828 /** @nullable */
3829 updated_at?: string | null;
3830};
3831
3832export interface EnvelopePullDto {
3833 code: number;
3834 data?: EnvelopePullDtoData;
3835 /** @nullable */
3836 error?: string | null;
3837 /** @nullable */
3838 error_code?: string | null;
3839 message: string;
3840 request_id?: string;
3841}
3842
3843export interface MergeGateDto {
3844 allowed: boolean;
3845 approvals: number;
3846 bypassed: boolean;
3847 change_requests: number;
3848 outdated: boolean;
3849 protected: boolean;
3850 reasons: string[];
3851 required_approvals: number;
3852}
3853
3854export type EnvelopePullGateDtoData = {
3855 conflicts: string[];
3856 gate: MergeGateDto;
3857 head_sha: string;
3858 mergeable: boolean;
3859 pending_review_requests: number;
3860};
3861
3862export interface EnvelopePullGateDto {
3863 code: number;
3864 data?: EnvelopePullGateDtoData;
3865 /** @nullable */
3866 error?: string | null;
3867 /** @nullable */
3868 error_code?: string | null;
3869 message: string;
3870 request_id?: string;
3871}
3872
3873export type ReviewState =
3874 "approved" | "changes_requested" | "commented" | "pending" | "dismissed";
3875export type EnvelopePullReviewDtoData = {
3876 /** @minimum 0 */
3877 comment_count: number;
3878 commit_sha: string;
3879 /** @nullable */
3880 content?: string | null;
3881 created_at: string;
3882 id: string;
3883 official: boolean;
3884 pull_request_id: string;
3885 state: ReviewState;
3886 /** @nullable */
3887 updated_at?: string | null;
3888 user?: null | UserDto;
3889};
3890
3891export interface EnvelopePullReviewDto {
3892 code: number;
3893 data?: EnvelopePullReviewDtoData;
3894 /** @nullable */
3895 error?: string | null;
3896 /** @nullable */
3897 error_code?: string | null;
3898 message: string;
3899 request_id?: string;
3900}
3901
3902export type EnvelopePullSummaryDtoData = {
3903 additions: number;
3904 base_sha: string;
3905 commits_ahead: number;
3906 commits_behind: number;
3907 conflicts: string[];
3908 deletions: number;
3909 files_changed: number;
3910 head_sha: string;
3911 /** @nullable */
3912 merge_base?: string | null;
3913 mergeable: boolean;
3914 mergeable_state: string;
3915};
3916
3917export interface EnvelopePullSummaryDto {
3918 code: number;
3919 data?: EnvelopePullSummaryDtoData;
3920 /** @nullable */
3921 error?: string | null;
3922 /** @nullable */
3923 error_code?: string | null;
3924 message: string;
3925 request_id?: string;
3926}
3927
3928/**
3929 * 前端注册 Service Worker 所需的公开参数。
3930 *
3931 * 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
3932 * 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
3933 * 而不是让用户点了才发现服务端没开。
3934 */
3935export type EnvelopePushConfigDtoData = {
3936 enabled: boolean;
3937 public_key: string;
3938};
3939
3940export interface EnvelopePushConfigDto {
3941 code: number;
3942 /**
3943 * 前端注册 Service Worker 所需的公开参数。
3944 *
3945 * 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
3946 * 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
3947 * 而不是让用户点了才发现服务端没开。
3948 */
3949 data?: EnvelopePushConfigDtoData;
3950 /** @nullable */
3951 error?: string | null;
3952 /** @nullable */
3953 error_code?: string | null;
3954 message: string;
3955 request_id?: string;
3956}
3957
3958export type EnvelopePushResultDtoData = {
3959 pushed: string[];
3960 rejected: string[];
3961};
3962
3963export interface EnvelopePushResultDto {
3964 code: number;
3965 data?: EnvelopePushResultDtoData;
3966 /** @nullable */
3967 error?: string | null;
3968 /** @nullable */
3969 error_code?: string | null;
3970 message: string;
3971 request_id?: string;
3972}
3973
3974export type PushSubscriptionPlatform = "WebPush" | "AndroidFcm" | "IosApns";
3975export type EnvelopePushSubscriptionDtoData = {
3976 created_at: string;
3977 endpoint: string;
3978 id: string;
3979 platform: PushSubscriptionPlatform;
3980 /** @nullable */
3981 updated_at?: string | null;
3982 /** @nullable */
3983 user_agent?: string | null;
3984};
3985
3986export interface EnvelopePushSubscriptionDto {
3987 code: number;
3988 data?: EnvelopePushSubscriptionDtoData;
3989 /** @nullable */
3990 error?: string | null;
3991 /** @nullable */
3992 error_code?: string | null;
3993 message: string;
3994 request_id?: string;
3995}
3996
3997export type ReactionScope = "issue" | "comment";
3998export type EnvelopeReactionDtoData = {
3999 created_at: string;
4000 emoji: string;
4001 id: string;
4002 scope: ReactionScope;
4003 target_id: string;
4004 user?: null | UserDto;
4005};
4006
4007export interface EnvelopeReactionDto {
4008 code: number;
4009 data?: EnvelopeReactionDtoData;
4010 /** @nullable */
4011 error?: string | null;
4012 /** @nullable */
4013 error_code?: string | null;
4014 message: string;
4015 request_id?: string;
4016}
4017
4018export type EnvelopeReadStateDtoData = {
4019 /** @nullable */
4020 last_read_message_id?: string | null;
4021 last_read_seq: number;
4022 /** @nullable */
4023 last_viewed_at?: string | null;
4024 room_id: string;
4025 tip_seq: number;
4026 unread_count: number;
4027 unread_mentions: number;
4028};
4029
4030export interface EnvelopeReadStateDto {
4031 code: number;
4032 data?: EnvelopeReadStateDtoData;
4033 /** @nullable */
4034 error?: string | null;
4035 /** @nullable */
4036 error_code?: string | null;
4037 message: string;
4038 request_id?: string;
4039}
4040
4041export type EnvelopeRecoveryCodesRespData = {
4042 codes: string[];
4043 /** @minimum 0 */
4044 total: number;
4045 /** @minimum 0 */
4046 used: number;
4047};
4048
4049export interface EnvelopeRecoveryCodesResp {
4050 code: number;
4051 data?: EnvelopeRecoveryCodesRespData;
4052 /** @nullable */
4053 error?: string | null;
4054 /** @nullable */
4055 error_code?: string | null;
4056 message: string;
4057 request_id?: string;
4058}
4059
4060export type EnvelopeRedeemInviteResponseData = {
4061 joined: boolean;
4062 member_id: string;
4063 organization_id: string;
4064};
4065
4066export interface EnvelopeRedeemInviteResponse {
4067 code: number;
4068 data?: EnvelopeRedeemInviteResponseData;
4069 /** @nullable */
4070 error?: string | null;
4071 /** @nullable */
4072 error_code?: string | null;
4073 message: string;
4074 request_id?: string;
4075}
4076
4077export type EnvelopeRegisterCodeResponseData = {
4078 /** @minimum 0 */
4079 expires_in_secs: number;
4080};
4081
4082export interface EnvelopeRegisterCodeResponse {
4083 code: number;
4084 data?: EnvelopeRegisterCodeResponseData;
4085 /** @nullable */
4086 error?: string | null;
4087 /** @nullable */
4088 error_code?: string | null;
4089 message: string;
4090 request_id?: string;
4091}
4092
4093export type EnvelopeReleaseDtoData = {
4094 /** @nullable */
4095 content?: string | null;
4096 created_at: string;
4097 id: string;
4098 is_draft: boolean;
4099 is_prerelease: boolean;
4100 num_commits: number;
4101 publisher?: null | UserDto;
4102 publisher_name: string;
4103 repo_id: string;
4104 sha: string;
4105 tag_name: string;
4106 target: string;
4107 title: string;
4108 updated_at: string;
4109};
4110
4111export interface EnvelopeReleaseDto {
4112 code: number;
4113 data?: EnvelopeReleaseDtoData;
4114 /** @nullable */
4115 error?: string | null;
4116 /** @nullable */
4117 error_code?: string | null;
4118 message: string;
4119 request_id?: string;
4120}
4121
4122export type ReminderStatus = "Pending" | "Done" | "Cancelled" | "Delivering";
4123export type EnvelopeReminderDtoData = {
4124 created_at: string;
4125 id: string;
4126 message_id: string;
4127 /** @nullable */
4128 message_preview?: string | null;
4129 /** @nullable */
4130 note?: string | null;
4131 remind_at: string;
4132 room_id: string;
4133 status: ReminderStatus;
4134};
4135
4136export interface EnvelopeReminderDto {
4137 code: number;
4138 data?: EnvelopeReminderDtoData;
4139 /** @nullable */
4140 error?: string | null;
4141 /** @nullable */
4142 error_code?: string | null;
4143 message: string;
4144 request_id?: string;
4145}
4146
4147export type EnvelopeRepairDirRespData = {
4148 fixed: number;
4149 scanned: number;
4150};
4151
4152export interface EnvelopeRepairDirResp {
4153 code: number;
4154 data?: EnvelopeRepairDirRespData;
4155 /** @nullable */
4156 error?: string | null;
4157 /** @nullable */
4158 error_code?: string | null;
4159 message: string;
4160 request_id?: string;
4161}
4162
4163export interface RepoMeDto {
4164 starred: boolean;
4165 watch_mode?: null | WatchMode;
4166}
4167
4168export type EnvelopeRepoDtoData = {
4169 /** 是否允许在本仓库创建合并请求(关闭后页签隐藏、接口拒绝)。 */
4170 allow_pull_requests: boolean;
4171 /** @nullable */
4172 archived_at?: string | null;
4173 /** @nullable */
4174 avatar_url?: string | null;
4175 branches_count: number;
4176 commits_count: number;
4177 created_at: string;
4178 default_branch: string;
4179 /** @nullable */
4180 description?: string | null;
4181 enable_lfs: boolean;
4182 git_size: number;
4183 /** @nullable */
4184 http_clone_url?: string | null;
4185 id: string;
4186 is_archived: boolean;
4187 is_private: boolean;
4188 /** @nullable */
4189 last_pushed_at?: string | null;
4190 lfs_size: number;
4191 /** @nullable */
4192 license_name?: string | null;
4193 me?: null | RepoMeDto;
4194 name: string;
4195 object_format: string;
4196 /** @nullable */
4197 primary_language?: string | null;
4198 pulls_count: number;
4199 size: number;
4200 /** @nullable */
4201 ssh_clone_url?: string | null;
4202 stars_count: number;
4203 /** @nullable */
4204 storage_limit_size?: number | null;
4205 /** 中间页签顺序;空数组 = 默认顺序。 */
4206 tab_order: string[];
4207 tags_count: number;
4208 updated_at: string;
4209 watchers_count: number;
4210 /** @nullable */
4211 website?: string | null;
4212};
4213
4214export interface EnvelopeRepoDto {
4215 code: number;
4216 data?: EnvelopeRepoDtoData;
4217 /** @nullable */
4218 error?: string | null;
4219 /** @nullable */
4220 error_code?: string | null;
4221 message: string;
4222 request_id?: string;
4223}
4224
4225export type EnvelopeRepoRelDtoData = {
4226 created_at: string;
4227 id: string;
4228 issue_id: string;
4229 repo_id: string;
4230};
4231
4232export interface EnvelopeRepoRelDto {
4233 code: number;
4234 data?: EnvelopeRepoRelDtoData;
4235 /** @nullable */
4236 error?: string | null;
4237 /** @nullable */
4238 error_code?: string | null;
4239 message: string;
4240 request_id?: string;
4241}
4242
4243export type EnvelopeRepoStarRespData = {
4244 stars: number;
4245};
4246
4247export interface EnvelopeRepoStarResp {
4248 code: number;
4249 data?: EnvelopeRepoStarRespData;
4250 /** @nullable */
4251 error?: string | null;
4252 /** @nullable */
4253 error_code?: string | null;
4254 message: string;
4255 request_id?: string;
4256}
4257
4258export type EnvelopeRepoWatchDtoData = {
4259 created_at: string;
4260 mode: WatchMode;
4261 repo_id: string;
4262 updated_at: string;
4263 user_id: number;
4264};
4265
4266export interface EnvelopeRepoWatchDto {
4267 code: number;
4268 data?: EnvelopeRepoWatchDtoData;
4269 /** @nullable */
4270 error?: string | null;
4271 /** @nullable */
4272 error_code?: string | null;
4273 message: string;
4274 request_id?: string;
4275}
4276
4277export type ReportStatus = "open" | "under_review" | "resolved" | "dismissed";
4278export type EnvelopeReportDtoData = {
4279 created_at: string;
4280 /** @nullable */
4281 evidence?: string | null;
4282 id: string;
4283 reason: string;
4284 reported_id: number;
4285 status: ReportStatus;
4286};
4287
4288export interface EnvelopeReportDto {
4289 code: number;
4290 data?: EnvelopeReportDtoData;
4291 /** @nullable */
4292 error?: string | null;
4293 /** @nullable */
4294 error_code?: string | null;
4295 message: string;
4296 request_id?: string;
4297}
4298
4299export type EnvelopeRoleSummaryData = {
4300 /** @nullable */
4301 color?: string | null;
4302 created_at: string;
4303 default_role: boolean;
4304 /** @nullable */
4305 description?: string | null;
4306 /** @nullable */
4307 emoji?: string | null;
4308 /** @nullable */
4309 icon_hash?: string | null;
4310 id: string;
4311 key: string;
4312 member_count: number;
4313 name: string;
4314 organization_id: string;
4315 permissions: PermissionGrant[];
4316 position: number;
4317 rank: number;
4318 self_assignable: boolean;
4319 system: boolean;
4320 updated_at: string;
4321 version: number;
4322};
4323
4324export interface EnvelopeRoleSummary {
4325 code: number;
4326 data?: EnvelopeRoleSummaryData;
4327 /** @nullable */
4328 error?: string | null;
4329 /** @nullable */
4330 error_code?: string | null;
4331 message: string;
4332 request_id?: string;
4333}
4334
4335export type EnvelopeRoomBanDtoData = {
4336 banned_by?: null | UserDto;
4337 created_at: string;
4338 /** @nullable */
4339 expires_at?: string | null;
4340 /** @nullable */
4341 reason?: string | null;
4342 room_id: string;
4343 user?: null | UserDto;
4344};
4345
4346export interface EnvelopeRoomBanDto {
4347 code: number;
4348 data?: EnvelopeRoomBanDtoData;
4349 /** @nullable */
4350 error?: string | null;
4351 /** @nullable */
4352 error_code?: string | null;
4353 message: string;
4354 request_id?: string;
4355}
4356
4357export type EnvelopeRoomBriefDtoData = {
4358 created_at: string;
4359 favorite: boolean;
4360 hidden: boolean;
4361 id: string;
4362 is_private: boolean;
4363 kind: RoomKind;
4364 /** @nullable */
4365 last_message_id?: string | null;
4366 member_count: number;
4367 muted: boolean;
4368 name: string;
4369 nsfw: boolean;
4370 owner?: null | UserDto;
4371 owner_id: number;
4372 /** @nullable */
4373 parent_id?: string | null;
4374 position: number;
4375 /** @nullable */
4376 rate_limit_per_user?: number | null;
4377 /** @nullable */
4378 space_id?: string | null;
4379 /** @nullable */
4380 topic?: string | null;
4381 unread_count: number;
4382 unread_mentions: number;
4383};
4384
4385export interface EnvelopeRoomBriefDto {
4386 code: number;
4387 data?: EnvelopeRoomBriefDtoData;
4388 /** @nullable */
4389 error?: string | null;
4390 /** @nullable */
4391 error_code?: string | null;
4392 message: string;
4393 request_id?: string;
4394}
4395
4396export type EnvelopeRoomDtoData = {
4397 created_at: string;
4398 id: string;
4399 is_active: boolean;
4400 is_private: boolean;
4401 kind: RoomKind;
4402 name: string;
4403 nsfw: boolean;
4404 owner_id: number;
4405 /** @nullable */
4406 parent_id?: string | null;
4407 position: number;
4408 /** @nullable */
4409 rate_limit_per_user?: number | null;
4410 /** @nullable */
4411 space_id?: string | null;
4412 /** @nullable */
4413 topic?: string | null;
4414 updated_at: string;
4415 /** @nullable */
4416 user_limit?: number | null;
4417};
4418
4419export interface EnvelopeRoomDto {
4420 code: number;
4421 data?: EnvelopeRoomDtoData;
4422 /** @nullable */
4423 error?: string | null;
4424 /** @nullable */
4425 error_code?: string | null;
4426 message: string;
4427 request_id?: string;
4428}
4429
4430export type EnvelopeRoomInviteDtoData = {
4431 accept_code: string;
4432 created_at: string;
4433 /** @nullable */
4434 expires_at?: string | null;
4435 id: string;
4436 invitee?: null | UserDto;
4437 /** @nullable */
4438 invitee_id?: number | null;
4439 inviter?: null | UserDto;
4440 inviter_id: number;
4441 room_id: string;
4442};
4443
4444export interface EnvelopeRoomInviteDto {
4445 code: number;
4446 data?: EnvelopeRoomInviteDtoData;
4447 /** @nullable */
4448 error?: string | null;
4449 /** @nullable */
4450 error_code?: string | null;
4451 message: string;
4452 request_id?: string;
4453}
4454
4455export type RoomMemberRole = "member" | "moderator" | "admin" | "owner";
4456export type EnvelopeRoomMemberDtoData = {
4457 joined_at: string;
4458 /** @nullable */
4459 nick?: string | null;
4460 role: RoomMemberRole;
4461 user: UserDto;
4462};
4463
4464export interface EnvelopeRoomMemberDto {
4465 code: number;
4466 data?: EnvelopeRoomMemberDtoData;
4467 /** @nullable */
4468 error?: string | null;
4469 /** @nullable */
4470 error_code?: string | null;
4471 message: string;
4472 request_id?: string;
4473}
4474
4475export type RoomNotificationLevel = "Default" | "All" | "Mentions" | "Nothing";
4476export type EnvelopeRoomSettingDtoData = {
4477 favorite: boolean;
4478 hidden: boolean;
4479 /** @nullable */
4480 mute_until?: string | null;
4481 muted: boolean;
4482 notification_level: RoomNotificationLevel;
4483 room_id: string;
4484};
4485
4486export interface EnvelopeRoomSettingDto {
4487 code: number;
4488 data?: EnvelopeRoomSettingDtoData;
4489 /** @nullable */
4490 error?: string | null;
4491 /** @nullable */
4492 error_code?: string | null;
4493 message: string;
4494 request_id?: string;
4495}
4496
4497export type EnvelopeSavedMessageDtoData = {
4498 channel_id: string;
4499 id: string;
4500 message_id: string;
4501 saved_at: string;
4502};
4503
4504export interface EnvelopeSavedMessageDto {
4505 code: number;
4506 data?: EnvelopeSavedMessageDtoData;
4507 /** @nullable */
4508 error?: string | null;
4509 /** @nullable */
4510 error_code?: string | null;
4511 message: string;
4512 request_id?: string;
4513}
4514
4515export type EnvelopeScriptOutputDtoData = {
4516 exit_code: number;
4517 stderr: string;
4518 stdout: string;
4519};
4520
4521export interface EnvelopeScriptOutputDto {
4522 code: number;
4523 data?: EnvelopeScriptOutputDtoData;
4524 /** @nullable */
4525 error?: string | null;
4526 /** @nullable */
4527 error_code?: string | null;
4528 message: string;
4529 request_id?: string;
4530}
4531
4532export type EnvelopeSignatureDtoData = {
4533 email: string;
4534 name: string;
4535 when: string;
4536};
4537
4538export interface EnvelopeSignatureDto {
4539 code: number;
4540 data?: EnvelopeSignatureDtoData;
4541 /** @nullable */
4542 error?: string | null;
4543 /** @nullable */
4544 error_code?: string | null;
4545 message: string;
4546 request_id?: string;
4547}
4548
4549export type EnvelopeSpaceDtoData = {
4550 allow_invite: boolean;
4551 allow_join: boolean;
4552 allow_join_level: AllowJoinLevel;
4553 /** @nullable */
4554 avatar_url?: string | null;
4555 created_at: string;
4556 /** @nullable */
4557 description?: string | null;
4558 id: string;
4559 is_active: boolean;
4560 is_private: boolean;
4561 lower_name: string;
4562 member_must_enable_2fa: boolean;
4563 members_count: number;
4564 name: string;
4565 owner?: null | UserDto;
4566 updated_at: string;
4567 /** @nullable */
4568 welcome_message?: string | null;
4569 /** @nullable */
4570 welcome_object?: string | null;
4571};
4572
4573export interface EnvelopeSpaceDto {
4574 code: number;
4575 data?: EnvelopeSpaceDtoData;
4576 /** @nullable */
4577 error?: string | null;
4578 /** @nullable */
4579 error_code?: string | null;
4580 message: string;
4581 request_id?: string;
4582}
4583
4584export type EnvelopeSpaceImageDtoData = {
4585 /** @minimum 0 */
4586 bytes: number;
4587 format: AvatarFormat;
4588 /** @nullable */
4589 height?: number | null;
4590 kind: SpaceImageKind;
4591 space_id: string;
4592 updated_at: string;
4593 url: string;
4594 /** @nullable */
4595 width?: number | null;
4596};
4597
4598export interface EnvelopeSpaceImageDto {
4599 code: number;
4600 data?: EnvelopeSpaceImageDtoData;
4601 /** @nullable */
4602 error?: string | null;
4603 /** @nullable */
4604 error_code?: string | null;
4605 message: string;
4606 request_id?: string;
4607}
4608
4609export interface ReadStateDto {
4610 /** @nullable */
4611 last_read_message_id?: string | null;
4612 last_read_seq: number;
4613 /** @nullable */
4614 last_viewed_at?: string | null;
4615 room_id: string;
4616 tip_seq: number;
4617 unread_count: number;
4618 unread_mentions: number;
4619}
4620
4621export type EnvelopeSpaceReadStatePageData = {
4622 items: ReadStateDto[];
4623};
4624
4625export interface EnvelopeSpaceReadStatePage {
4626 code: number;
4627 data?: EnvelopeSpaceReadStatePageData;
4628 /** @nullable */
4629 error?: string | null;
4630 /** @nullable */
4631 error_code?: string | null;
4632 message: string;
4633 request_id?: string;
4634}
4635
4636export type SshKeyAlgorithm = "rsa" | "ed25519" | "ecdsa";
4637export type EnvelopeSshKeySummaryData = {
4638 algorithm: SshKeyAlgorithm;
4639 created_at: string;
4640 /** @nullable */
4641 description?: string | null;
4642 /** @nullable */
4643 expires_at?: string | null;
4644 fingerprint: string;
4645 id: string;
4646 /** @nullable */
4647 last_used_at?: string | null;
4648 name: string;
4649 public_key: string;
4650 /** @nullable */
4651 revoked_at?: string | null;
4652};
4653
4654export interface EnvelopeSshKeySummary {
4655 code: number;
4656 data?: EnvelopeSshKeySummaryData;
4657 /** @nullable */
4658 error?: string | null;
4659 /** @nullable */
4660 error_code?: string | null;
4661 message: string;
4662 request_id?: string;
4663}
4664
4665export type EnvelopeStopwatchDtoData = {
4666 /** @nullable */
4667 created_at?: string | null;
4668 /** @nullable */
4669 id?: string | null;
4670 issue_id: string;
4671 running: boolean;
4672 /** @nullable */
4673 started_at?: string | null;
4674 user?: null | UserDto;
4675};
4676
4677export interface EnvelopeStopwatchDto {
4678 code: number;
4679 data?: EnvelopeStopwatchDtoData;
4680 /** @nullable */
4681 error?: string | null;
4682 /** @nullable */
4683 error_code?: string | null;
4684 message: string;
4685 request_id?: string;
4686}
4687
4688export interface EnvelopeString {
4689 code: number;
4690 data?: string;
4691 /** @nullable */
4692 error?: string | null;
4693 /** @nullable */
4694 error_code?: string | null;
4695 message: string;
4696 request_id?: string;
4697}
4698
4699export type EnvelopeTagDtoData = {
4700 /** @nullable */
4701 created_at?: string | null;
4702 /** @nullable */
4703 message?: string | null;
4704 name: string;
4705 tag_type: TagType;
4706 /** @nullable */
4707 tagger_email?: string | null;
4708 /** @nullable */
4709 tagger_name?: string | null;
4710 target_sha: string;
4711};
4712
4713export interface EnvelopeTagDto {
4714 code: number;
4715 data?: EnvelopeTagDtoData;
4716 /** @nullable */
4717 error?: string | null;
4718 /** @nullable */
4719 error_code?: string | null;
4720 message: string;
4721 request_id?: string;
4722}
4723
4724export type EnvelopeTagPolicyDtoData = {
4725 created_at: string;
4726 id: string;
4727 name_pattern: string;
4728 repo_id: string;
4729 updated_at: string;
4730};
4731
4732export interface EnvelopeTagPolicyDto {
4733 code: number;
4734 data?: EnvelopeTagPolicyDtoData;
4735 /** @nullable */
4736 error?: string | null;
4737 /** @nullable */
4738 error_code?: string | null;
4739 message: string;
4740 request_id?: string;
4741}
4742
4743export type EnvelopeTagWhitelistDtoData = {
4744 policy_id: string;
4745 user?: null | UserDto;
4746 user_id: number;
4747};
4748
4749export interface EnvelopeTagWhitelistDto {
4750 code: number;
4751 data?: EnvelopeTagWhitelistDtoData;
4752 /** @nullable */
4753 error?: string | null;
4754 /** @nullable */
4755 error_code?: string | null;
4756 message: string;
4757 request_id?: string;
4758}
4759
4760export type EnvelopeThreadDtoData = {
4761 archived: boolean;
4762 created_at: string;
4763 id: string;
4764 /** @nullable */
4765 last_reply_at?: string | null;
4766 /** @nullable */
4767 last_reply_id?: string | null;
4768 locked: boolean;
4769 /** @nullable */
4770 name?: string | null;
4771 owner?: null | UserDto;
4772 owner_id: number;
4773 participant_count: number;
4774 reply_count: number;
4775 room_id: string;
4776 root_message_id: string;
4777 updated_at: string;
4778};
4779
4780export interface EnvelopeThreadDto {
4781 code: number;
4782 data?: EnvelopeThreadDtoData;
4783 /** @nullable */
4784 error?: string | null;
4785 /** @nullable */
4786 error_code?: string | null;
4787 message: string;
4788 request_id?: string;
4789}
4790
4791export type EnvelopeTopicDtoData = {
4792 created_at: string;
4793 id: string;
4794 name: string;
4795 updated_at: string;
4796};
4797
4798export interface EnvelopeTopicDto {
4799 code: number;
4800 data?: EnvelopeTopicDtoData;
4801 /** @nullable */
4802 error?: string | null;
4803 /** @nullable */
4804 error_code?: string | null;
4805 message: string;
4806 request_id?: string;
4807}
4808
4809export type EnvelopeTotpSetupRespData = {
4810 otpauth_uri: string;
4811 secret: string;
4812};
4813
4814export interface EnvelopeTotpSetupResp {
4815 code: number;
4816 data?: EnvelopeTotpSetupRespData;
4817 /** @nullable */
4818 error?: string | null;
4819 /** @nullable */
4820 error_code?: string | null;
4821 message: string;
4822 request_id?: string;
4823}
4824
4825export type EnvelopeTotpStatusRespData = {
4826 enabled: boolean;
4827};
4828
4829export interface EnvelopeTotpStatusResp {
4830 code: number;
4831 data?: EnvelopeTotpStatusRespData;
4832 /** @nullable */
4833 error?: string | null;
4834 /** @nullable */
4835 error_code?: string | null;
4836 message: string;
4837 request_id?: string;
4838}
4839
4840export type EnvelopeTrackedTimeDtoData = {
4841 created_at: string;
4842 id: string;
4843 issue_id: string;
4844 seconds: number;
4845 user?: null | UserDto;
4846};
4847
4848export interface EnvelopeTrackedTimeDto {
4849 code: number;
4850 data?: EnvelopeTrackedTimeDtoData;
4851 /** @nullable */
4852 error?: string | null;
4853 /** @nullable */
4854 error_code?: string | null;
4855 message: string;
4856 request_id?: string;
4857}
4858
4859export type EnvelopeUnreadCountRespData = {
4860 /** @minimum 0 */
4861 count: number;
4862};
4863
4864export interface EnvelopeUnreadCountResp {
4865 code: number;
4866 data?: EnvelopeUnreadCountRespData;
4867 /** @nullable */
4868 error?: string | null;
4869 /** @nullable */
4870 error_code?: string | null;
4871 message: string;
4872 request_id?: string;
4873}
4874
4875export type EnvelopeUpdateBranchDtoData = {
4876 pull: PullDto;
4877 result: MergeResultDto;
4878};
4879
4880export interface EnvelopeUpdateBranchDto {
4881 code: number;
4882 data?: EnvelopeUpdateBranchDtoData;
4883 /** @nullable */
4884 error?: string | null;
4885 /** @nullable */
4886 error_code?: string | null;
4887 message: string;
4888 request_id?: string;
4889}
4890
4891export type EnvelopeUploadIntentDtoData = {
4892 /** @minimum 0 */
4893 expires_secs: number;
4894 id: string;
4895 upload_url: string;
4896};
4897
4898export interface EnvelopeUploadIntentDto {
4899 code: number;
4900 data?: EnvelopeUploadIntentDtoData;
4901 /** @nullable */
4902 error?: string | null;
4903 /** @nullable */
4904 error_code?: string | null;
4905 message: string;
4906 request_id?: string;
4907}
4908
4909export type EnvelopeUserLoginResponseData = {
4910 /** @nullable */
4911 challenge?: string | null;
4912 /** @nullable */
4913 displayname?: string | null;
4914 mfa_required: boolean;
4915 user_id: number;
4916 username: string;
4917};
4918
4919export interface EnvelopeUserLoginResponse {
4920 code: number;
4921 data?: EnvelopeUserLoginResponseData;
4922 /** @nullable */
4923 error?: string | null;
4924 /** @nullable */
4925 error_code?: string | null;
4926 message: string;
4927 request_id?: string;
4928}
4929
4930export type EnvelopeUserOverwriteDtoData = {
4931 allow_mask: number;
4932 deny_mask: number;
4933 dir_id: string;
4934 user?: null | UserDto;
4935 user_id: number;
4936};
4937
4938export interface EnvelopeUserOverwriteDto {
4939 code: number;
4940 data?: EnvelopeUserOverwriteDtoData;
4941 /** @nullable */
4942 error?: string | null;
4943 /** @nullable */
4944 error_code?: string | null;
4945 message: string;
4946 request_id?: string;
4947}
4948
4949export type EnvelopeUserPreferencesDtoData = {
4950 allow_dms_from: Audience;
4951 allow_mentions_from: Audience;
4952 /** Default view for the 问题集 page: `board` or `list`. */
4953 board_view_mode: string;
4954 /** @nullable */
4955 diff_view_style?: string | null;
4956 email_digest: boolean;
4957 email_flags: number;
4958 in_app_flags: number;
4959 /** @nullable */
4960 mute_until?: string | null;
4961 push_flags: number;
4962 show_online_status: boolean;
4963 theme_mode: string;
4964};
4965
4966export interface EnvelopeUserPreferencesDto {
4967 code: number;
4968 data?: EnvelopeUserPreferencesDtoData;
4969 /** @nullable */
4970 error?: string | null;
4971 /** @nullable */
4972 error_code?: string | null;
4973 message: string;
4974 request_id?: string;
4975}
4976
4977export type EnvelopeUserPublicData = {
4978 avatar_url: string;
4979 display_name: string;
4980 user_id: number;
4981 username: string;
4982};
4983
4984export interface EnvelopeUserPublic {
4985 code: number;
4986 data?: EnvelopeUserPublicData;
4987 /** @nullable */
4988 error?: string | null;
4989 /** @nullable */
4990 error_code?: string | null;
4991 message: string;
4992 request_id?: string;
4993}
4994
4995export type EnvelopeUserRegisterResponseData = {
4996 /** @nullable */
4997 displayname?: string | null;
4998 user_id: number;
4999 username: string;
5000};
5001
5002export interface EnvelopeUserRegisterResponse {
5003 code: number;
5004 data?: EnvelopeUserRegisterResponseData;
5005 /** @nullable */
5006 error?: string | null;
5007 /** @nullable */
5008 error_code?: string | null;
5009 message: string;
5010 request_id?: string;
5011}
5012
5013export interface EnvelopeValue {
5014 code: number;
5015 data?: unknown;
5016 /** @nullable */
5017 error?: string | null;
5018 /** @nullable */
5019 error_code?: string | null;
5020 message: string;
5021 request_id?: string;
5022}
5023
5024export type EnvelopeVecAgreementDocDataItem = {
5025 content_md: string;
5026 key: string;
5027 title: string;
5028 version: string;
5029};
5030
5031export interface EnvelopeVecAgreementDoc {
5032 code: number;
5033 data?: EnvelopeVecAgreementDocDataItem[];
5034 /** @nullable */
5035 error?: string | null;
5036 /** @nullable */
5037 error_code?: string | null;
5038 message: string;
5039 request_id?: string;
5040}
5041
5042export type EnvelopeVecBlameRangeDtoDataItem = {
5043 abbreviated_oid: string;
5044 commit_sha: string;
5045 ending_line: number;
5046 /** @nullable */
5047 path?: string | null;
5048 starting_line: number;
5049};
5050
5051export interface EnvelopeVecBlameRangeDto {
5052 code: number;
5053 data?: EnvelopeVecBlameRangeDtoDataItem[];
5054 /** @nullable */
5055 error?: string | null;
5056 /** @nullable */
5057 error_code?: string | null;
5058 message: string;
5059 request_id?: string;
5060}
5061
5062export type EnvelopeVecBranchPolicyDtoDataItem = {
5063 block_on_change_requested_reviews: boolean;
5064 block_on_outdated_branch: boolean;
5065 block_on_rejected_reviews: boolean;
5066 branch_pattern: string;
5067 created_at: string;
5068 dismiss_stale_approvals: boolean;
5069 enable_approvals_whitelist: boolean;
5070 enable_force_push: boolean;
5071 enable_merge_whitelist: boolean;
5072 enable_push: boolean;
5073 enable_push_whitelist: boolean;
5074 id: string;
5075 protected_file_patterns: string;
5076 push_whitelist_deploy_keys: boolean;
5077 repo_id: string;
5078 require_signed_commits: boolean;
5079 required_approvals: number;
5080 required_status_contexts: string;
5081 unprotected_file_patterns: string;
5082 updated_at: string;
5083};
5084
5085export interface EnvelopeVecBranchPolicyDto {
5086 code: number;
5087 data?: EnvelopeVecBranchPolicyDtoDataItem[];
5088 /** @nullable */
5089 error?: string | null;
5090 /** @nullable */
5091 error_code?: string | null;
5092 message: string;
5093 request_id?: string;
5094}
5095
5096export type EnvelopeVecBranchWhitelistDtoDataItem = {
5097 created_at: string;
5098 /** @nullable */
5099 group_id?: string | null;
5100 id: string;
5101 kind: WhitelistKind;
5102 policy_id: string;
5103 user?: null | UserDto;
5104 /** @nullable */
5105 user_id?: number | null;
5106};
5107
5108export interface EnvelopeVecBranchWhitelistDto {
5109 code: number;
5110 data?: EnvelopeVecBranchWhitelistDtoDataItem[];
5111 /** @nullable */
5112 error?: string | null;
5113 /** @nullable */
5114 error_code?: string | null;
5115 message: string;
5116 request_id?: string;
5117}
5118
5119export type EnvelopeVecChangedPathDiffDtoDataItem = {
5120 binary: boolean;
5121 /** @minimum 0 */
5122 lines_added: number;
5123 /** @minimum 0 */
5124 lines_removed: number;
5125 /** @nullable */
5126 patch?: string | null;
5127 path: ChangedPathDto;
5128};
5129
5130export interface EnvelopeVecChangedPathDiffDto {
5131 code: number;
5132 data?: EnvelopeVecChangedPathDiffDtoDataItem[];
5133 /** @nullable */
5134 error?: string | null;
5135 /** @nullable */
5136 error_code?: string | null;
5137 message: string;
5138 request_id?: string;
5139}
5140
5141export type EnvelopeVecCleanupObjectDtoDataItem = {
5142 /** 目录的子节点数 / 频道的子频道数。 */
5143 child_count: number;
5144 /** `dirs.id`(目录/仓库/问题集/智能体集)或 `rooms.id`(频道)。 */
5145 id: string;
5146 is_archived: boolean;
5147 /**
5148 * 仅仓库与频道有可见性开关。
5149 * @nullable
5150 */
5151 is_private?: boolean | null;
5152 /** `dir | object | repo | board | text | voice | stage | category | news | guild_room` */
5153 kind: string;
5154 name: string;
5155 /** 目录上的权限覆盖条数(group + user)。 */
5156 overwrite_count: number;
5157 /** 父链拼出的可读路径,例如 `bots / 研究研究`。 */
5158 path: string;
5159};
5160
5161export interface EnvelopeVecCleanupObjectDto {
5162 code: number;
5163 data?: EnvelopeVecCleanupObjectDtoDataItem[];
5164 /** @nullable */
5165 error?: string | null;
5166 /** @nullable */
5167 error_code?: string | null;
5168 message: string;
5169 request_id?: string;
5170}
5171
5172export type EnvelopeVecCommentTreeNodeDataItem = {
5173 comment: CommentDto;
5174 replies: CommentTreeNode[];
5175};
5176
5177export interface EnvelopeVecCommentTreeNode {
5178 code: number;
5179 data?: EnvelopeVecCommentTreeNodeDataItem[];
5180 /** @nullable */
5181 error?: string | null;
5182 /** @nullable */
5183 error_code?: string | null;
5184 message: string;
5185 request_id?: string;
5186}
5187
5188export type EnvelopeVecCommitStatusDtoDataItem = {
5189 context: string;
5190 created_at: string;
5191 creator?: null | UserDto;
5192 creator_id: number;
5193 /** @nullable */
5194 description?: string | null;
5195 state: CommitStatusDtoState;
5196 /** @nullable */
5197 target_url?: string | null;
5198 /** @nullable */
5199 updated_at?: string | null;
5200};
5201
5202export interface EnvelopeVecCommitStatusDto {
5203 code: number;
5204 data?: EnvelopeVecCommitStatusDtoDataItem[];
5205 /** @nullable */
5206 error?: string | null;
5207 /** @nullable */
5208 error_code?: string | null;
5209 message: string;
5210 request_id?: string;
5211}
5212
5213export type EnvelopeVecContributorStatDtoDataItem = {
5214 additions: number;
5215 commits: number;
5216 deletions: number;
5217 email: string;
5218 name: string;
5219};
5220
5221export interface EnvelopeVecContributorStatDto {
5222 code: number;
5223 data?: EnvelopeVecContributorStatDtoDataItem[];
5224 /** @nullable */
5225 error?: string | null;
5226 /** @nullable */
5227 error_code?: string | null;
5228 message: string;
5229 request_id?: string;
5230}
5231
5232export type EnvelopeVecDependencyDtoDataItem = {
5233 created_at: string;
5234 dependency_id: string;
5235 id: string;
5236 issue_id: string;
5237};
5238
5239export interface EnvelopeVecDependencyDto {
5240 code: number;
5241 data?: EnvelopeVecDependencyDtoDataItem[];
5242 /** @nullable */
5243 error?: string | null;
5244 /** @nullable */
5245 error_code?: string | null;
5246 message: string;
5247 request_id?: string;
5248}
5249
5250export type EnvelopeVecDeviceDtoDataItem = {
5251 /** @nullable */
5252 device_name?: string | null;
5253 /** @nullable */
5254 device_type?: string | null;
5255 first_seen_at: string;
5256 id: string;
5257 is_trusted: boolean;
5258 last_seen_at: string;
5259 /** @nullable */
5260 os?: string | null;
5261};
5262
5263export interface EnvelopeVecDeviceDto {
5264 code: number;
5265 data?: EnvelopeVecDeviceDtoDataItem[];
5266 /** @nullable */
5267 error?: string | null;
5268 /** @nullable */
5269 error_code?: string | null;
5270 message: string;
5271 request_id?: string;
5272}
5273
5274export type EnvelopeVecDirNodeDtoDataItem = {
5275 /** @nullable */
5276 archived_at?: string | null;
5277 children: DirNodeDto[];
5278 /** @nullable */
5279 color?: string | null;
5280 created_at: string;
5281 created_by_id: number;
5282 /** @nullable */
5283 icon?: string | null;
5284 id: string;
5285 is_archived: boolean;
5286 kind: DirKind;
5287 name: string;
5288 /** @nullable */
5289 parent_dir_id?: string | null;
5290 position: number;
5291 /** @nullable */
5292 purpose?: string | null;
5293 /** @nullable */
5294 topic?: string | null;
5295 updated_at: string;
5296};
5297
5298export interface EnvelopeVecDirNodeDto {
5299 code: number;
5300 data?: EnvelopeVecDirNodeDtoDataItem[];
5301 /** @nullable */
5302 error?: string | null;
5303 /** @nullable */
5304 error_code?: string | null;
5305 message: string;
5306 request_id?: string;
5307}
5308
5309export type EnvelopeVecGroupOverwriteDtoDataItem = {
5310 allow_mask: number;
5311 deny_mask: number;
5312 dir_id: string;
5313 group_id: string;
5314};
5315
5316export interface EnvelopeVecGroupOverwriteDto {
5317 code: number;
5318 data?: EnvelopeVecGroupOverwriteDtoDataItem[];
5319 /** @nullable */
5320 error?: string | null;
5321 /** @nullable */
5322 error_code?: string | null;
5323 message: string;
5324 request_id?: string;
5325}
5326
5327export type EnvelopeVecInviteSummaryDataItem = {
5328 created_at: string;
5329 created_by: number;
5330 /** @nullable */
5331 email?: string | null;
5332 /** @nullable */
5333 expires_at?: string | null;
5334 id: string;
5335 max_uses: number;
5336 method: SpaceJoinMethod;
5337 organization_id: string;
5338 /** @nullable */
5339 revoked_at?: string | null;
5340 /** @nullable */
5341 role_id?: string | null;
5342 /** @nullable */
5343 target_user_id?: number | null;
5344 uses: number;
5345};
5346
5347export interface EnvelopeVecInviteSummary {
5348 code: number;
5349 data?: EnvelopeVecInviteSummaryDataItem[];
5350 /** @nullable */
5351 error?: string | null;
5352 /** @nullable */
5353 error_code?: string | null;
5354 message: string;
5355 request_id?: string;
5356}
5357
5358export type EnvelopeVecIssueAttachmentDtoDataItem = {
5359 content_type: string;
5360 created_at: string;
5361 filename: string;
5362 id: string;
5363 /**
5364 * `None` until the draft is submitted with this attachment attached.
5365 * @nullable
5366 */
5367 issue_id?: string | null;
5368 size: number;
5369 status: IssueAttachmentStatus;
5370 uploader_id: number;
5371};
5372
5373export interface EnvelopeVecIssueAttachmentDto {
5374 code: number;
5375 data?: EnvelopeVecIssueAttachmentDtoDataItem[];
5376 /** @nullable */
5377 error?: string | null;
5378 /** @nullable */
5379 error_code?: string | null;
5380 message: string;
5381 request_id?: string;
5382}
5383
5384export type EnvelopeVecIssuePullLinkDtoDataItem = {
5385 /** 建立关联的时间。 */
5386 linked_at: string;
5387 pull: PullDto;
5388 /** 关联行主键(issue_relation_pull.id),解除关联时作为路径参数回传。 */
5389 relation_id: string;
5390};
5391
5392export interface EnvelopeVecIssuePullLinkDto {
5393 code: number;
5394 data?: EnvelopeVecIssuePullLinkDtoDataItem[];
5395 /** @nullable */
5396 error?: string | null;
5397 /** @nullable */
5398 error_code?: string | null;
5399 message: string;
5400 request_id?: string;
5401}
5402
5403export type EnvelopeVecJoinRuleDtoDataItem = {
5404 created_at: string;
5405 enabled: boolean;
5406 id: string;
5407 matcher: string;
5408 role_id: string;
5409 trigger: SpaceJoinTrigger;
5410 updated_at: string;
5411};
5412
5413export interface EnvelopeVecJoinRuleDto {
5414 code: number;
5415 data?: EnvelopeVecJoinRuleDtoDataItem[];
5416 /** @nullable */
5417 error?: string | null;
5418 /** @nullable */
5419 error_code?: string | null;
5420 message: string;
5421 request_id?: string;
5422}
5423
5424export type EnvelopeVecLabelDtoDataItem = {
5425 color: string;
5426 created_at: string;
5427 /** @nullable */
5428 description?: string | null;
5429 dir_id: string;
5430 exclusive: boolean;
5431 exclusive_order: number;
5432 id: string;
5433 is_archived: boolean;
5434 name: string;
5435 /** @nullable */
5436 updated_at?: string | null;
5437};
5438
5439export interface EnvelopeVecLabelDto {
5440 code: number;
5441 data?: EnvelopeVecLabelDtoDataItem[];
5442 /** @nullable */
5443 error?: string | null;
5444 /** @nullable */
5445 error_code?: string | null;
5446 message: string;
5447 request_id?: string;
5448}
5449
5450export type EnvelopeVecLanguageStatDtoDataItem = {
5451 is_primary: boolean;
5452 language: string;
5453 percentage_bp: number;
5454 size: number;
5455};
5456
5457export interface EnvelopeVecLanguageStatDto {
5458 code: number;
5459 data?: EnvelopeVecLanguageStatDtoDataItem[];
5460 /** @nullable */
5461 error?: string | null;
5462 /** @nullable */
5463 error_code?: string | null;
5464 message: string;
5465 request_id?: string;
5466}
5467
5468export type EnvelopeVecLfsPointerDtoDataItem = {
5469 /** @nullable */
5470 oid?: string | null;
5471 /** @nullable */
5472 size?: number | null;
5473 version: string;
5474};
5475
5476export interface EnvelopeVecLfsPointerDto {
5477 code: number;
5478 data?: EnvelopeVecLfsPointerDtoDataItem[];
5479 /** @nullable */
5480 error?: string | null;
5481 /** @nullable */
5482 error_code?: string | null;
5483 message: string;
5484 request_id?: string;
5485}
5486
5487export type EnvelopeVecLicenseDtoDataItem = {
5488 body: string;
5489 created_at: string;
5490 /** @nullable */
5491 description?: string | null;
5492 display_name: string;
5493 name: string;
5494 updated_at: string;
5495 /** @nullable */
5496 url?: string | null;
5497};
5498
5499export interface EnvelopeVecLicenseDto {
5500 code: number;
5501 data?: EnvelopeVecLicenseDtoDataItem[];
5502 /** @nullable */
5503 error?: string | null;
5504 /** @nullable */
5505 error_code?: string | null;
5506 message: string;
5507 request_id?: string;
5508}
5509
5510export type EnvelopeVecMemberSummaryDataItem = {
5511 /** @nullable */
5512 alias_avatar_url?: string | null;
5513 /** @nullable */
5514 alias_name?: string | null;
5515 ban_allow_agent_join: boolean;
5516 ban_allow_comment_any: boolean;
5517 ban_allow_push_repo: boolean;
5518 ban_allow_speak: boolean;
5519 /** @nullable */
5520 ban_expires_at?: string | null;
5521 /** @nullable */
5522 ban_reason?: string | null;
5523 /** @nullable */
5524 banned_at?: string | null;
5525 /** @nullable */
5526 displayname?: string | null;
5527 hide_muted_channels: boolean;
5528 id: string;
5529 /** @nullable */
5530 invited_by?: number | null;
5531 join_method: SpaceJoinMethod;
5532 joined_at: string;
5533 /** @nullable */
5534 last_active_at?: string | null;
5535 /** @nullable */
5536 left_at?: string | null;
5537 message_notifications: MessageNotifications;
5538 mobile_push: boolean;
5539 /** @nullable */
5540 mute_until?: string | null;
5541 muted: boolean;
5542 organization_id: string;
5543 permissions: string[];
5544 role: SpaceMemberRole;
5545 role_keys: string[];
5546 suppress_everyone: boolean;
5547 suppress_roles: boolean;
5548 user_id: number;
5549 username: string;
5550 version: number;
5551};
5552
5553export interface EnvelopeVecMemberSummary {
5554 code: number;
5555 data?: EnvelopeVecMemberSummaryDataItem[];
5556 /** @nullable */
5557 error?: string | null;
5558 /** @nullable */
5559 error_code?: string | null;
5560 message: string;
5561 request_id?: string;
5562}
5563
5564export type EnvelopeVecMemeDtoDataItem = {
5565 content_type: string;
5566 created_at: string;
5567 /** @nullable */
5568 height?: number | null;
5569 id: string;
5570 name: string;
5571 size: number;
5572 url: string;
5573 /** @nullable */
5574 width?: number | null;
5575};
5576
5577export interface EnvelopeVecMemeDto {
5578 code: number;
5579 data?: EnvelopeVecMemeDtoDataItem[];
5580 /** @nullable */
5581 error?: string | null;
5582 /** @nullable */
5583 error_code?: string | null;
5584 message: string;
5585 request_id?: string;
5586}
5587
5588export type EnvelopeVecMergeCommitDtoDataItem = {
5589 author_at: string;
5590 author_email: string;
5591 author_name: string;
5592 message: string;
5593 parents: string[];
5594 sha: string;
5595 subject: string;
5596};
5597
5598export interface EnvelopeVecMergeCommitDto {
5599 code: number;
5600 data?: EnvelopeVecMergeCommitDtoDataItem[];
5601 /** @nullable */
5602 error?: string | null;
5603 /** @nullable */
5604 error_code?: string | null;
5605 message: string;
5606 request_id?: string;
5607}
5608
5609export type EnvelopeVecMessageEditDtoDataItem = {
5610 content: string;
5611 created_at: string;
5612 editor?: null | UserDto;
5613 id: string;
5614 message_id: string;
5615};
5616
5617export interface EnvelopeVecMessageEditDto {
5618 code: number;
5619 data?: EnvelopeVecMessageEditDtoDataItem[];
5620 /** @nullable */
5621 error?: string | null;
5622 /** @nullable */
5623 error_code?: string | null;
5624 message: string;
5625 request_id?: string;
5626}
5627
5628export interface SpaceDto {
5629 allow_invite: boolean;
5630 allow_join: boolean;
5631 allow_join_level: AllowJoinLevel;
5632 /** @nullable */
5633 avatar_url?: string | null;
5634 created_at: string;
5635 /** @nullable */
5636 description?: string | null;
5637 id: string;
5638 is_active: boolean;
5639 is_private: boolean;
5640 lower_name: string;
5641 member_must_enable_2fa: boolean;
5642 members_count: number;
5643 name: string;
5644 owner?: null | UserDto;
5645 updated_at: string;
5646 /** @nullable */
5647 welcome_message?: string | null;
5648 /** @nullable */
5649 welcome_object?: string | null;
5650}
5651
5652export type EnvelopeVecMySpaceDtoDataItem = {
5653 permissions: string[];
5654 space: SpaceDto;
5655};
5656
5657export interface EnvelopeVecMySpaceDto {
5658 code: number;
5659 data?: EnvelopeVecMySpaceDtoDataItem[];
5660 /** @nullable */
5661 error?: string | null;
5662 /** @nullable */
5663 error_code?: string | null;
5664 message: string;
5665 request_id?: string;
5666}
5667
5668export type EnvelopeVecOrganizationSummaryDataItem = {
5669 allow_invite: boolean;
5670 allow_join: boolean;
5671 allow_join_level: number;
5672 /** @nullable */
5673 archived_at?: string | null;
5674 /** @nullable */
5675 avatar_url?: string | null;
5676 created_at: string;
5677 /** @nullable */
5678 description?: string | null;
5679 id: string;
5680 join_policy: SpaceJoinPolicy;
5681 member_count: number;
5682 member_must_enable_2fa: boolean;
5683 my_role?: null | SpaceMemberRole;
5684 name: string;
5685 owner_user_id: number;
5686 require_email_verified: boolean;
5687 require_mfa: boolean;
5688 slug: string;
5689 status: SpaceStatus;
5690 updated_at: string;
5691 version: number;
5692 /** @nullable */
5693 welcome_message?: string | null;
5694};
5695
5696export interface EnvelopeVecOrganizationSummary {
5697 code: number;
5698 data?: EnvelopeVecOrganizationSummaryDataItem[];
5699 /** @nullable */
5700 error?: string | null;
5701 /** @nullable */
5702 error_code?: string | null;
5703 message: string;
5704 request_id?: string;
5705}
5706
5707export type EnvelopeVecOutboundWebhookDtoDataItem = {
5708 created_at: string;
5709 disabled: boolean;
5710 id: string;
5711 /** @nullable */
5712 last_status?: string | null;
5713 /** @nullable */
5714 last_used_at?: string | null;
5715 name: string;
5716 room_id: string;
5717 url: string;
5718};
5719
5720export interface EnvelopeVecOutboundWebhookDto {
5721 code: number;
5722 data?: EnvelopeVecOutboundWebhookDtoDataItem[];
5723 /** @nullable */
5724 error?: string | null;
5725 /** @nullable */
5726 error_code?: string | null;
5727 message: string;
5728 request_id?: string;
5729}
5730
5731export type EnvelopeVecPathLogEntryDtoDataItem = {
5732 author: string;
5733 date: string;
5734 path: string;
5735 short_sha: string;
5736 subject: string;
5737};
5738
5739export interface EnvelopeVecPathLogEntryDto {
5740 code: number;
5741 data?: EnvelopeVecPathLogEntryDtoDataItem[];
5742 /** @nullable */
5743 error?: string | null;
5744 /** @nullable */
5745 error_code?: string | null;
5746 message: string;
5747 request_id?: string;
5748}
5749
5750export type EnvelopeVecPinDtoDataItem = {
5751 board_id: string;
5752 created_at: string;
5753 id: string;
5754 /** @nullable */
5755 issue_id?: string | null;
5756 pin_order: number;
5757};
5758
5759export interface EnvelopeVecPinDto {
5760 code: number;
5761 data?: EnvelopeVecPinDtoDataItem[];
5762 /** @nullable */
5763 error?: string | null;
5764 /** @nullable */
5765 error_code?: string | null;
5766 message: string;
5767 request_id?: string;
5768}
5769
5770export type EnvelopeVecPresenceDtoDataItem = {
5771 activities: unknown;
5772 /** @nullable */
5773 last_seen_at?: string | null;
5774 online: boolean;
5775 status: PresenceStatus;
5776 user?: null | UserDto;
5777 user_id: number;
5778};
5779
5780export interface EnvelopeVecPresenceDto {
5781 code: number;
5782 data?: EnvelopeVecPresenceDtoDataItem[];
5783 /** @nullable */
5784 error?: string | null;
5785 /** @nullable */
5786 error_code?: string | null;
5787 message: string;
5788 request_id?: string;
5789}
5790
5791export type EnvelopeVecPullAssigneeDtoDataItem = {
5792 created_at: string;
5793 id: string;
5794 user?: null | UserDto;
5795};
5796
5797export interface EnvelopeVecPullAssigneeDto {
5798 code: number;
5799 data?: EnvelopeVecPullAssigneeDtoDataItem[];
5800 /** @nullable */
5801 error?: string | null;
5802 /** @nullable */
5803 error_code?: string | null;
5804 message: string;
5805 request_id?: string;
5806}
5807
5808export interface PullCommentDto {
5809 author?: null | UserDto;
5810 body: string;
5811 /** @nullable */
5812 commit_sha?: string | null;
5813 created_at: string;
5814 id: string;
5815 /** @nullable */
5816 line?: number | null;
5817 /** @nullable */
5818 parent_comment_id?: string | null;
5819 /** @nullable */
5820 path?: string | null;
5821 pull_request_id: string;
5822 resolved: boolean;
5823 /** @nullable */
5824 resolved_by?: number | null;
5825 /** @nullable */
5826 review_id?: string | null;
5827 /** @nullable */
5828 side?: string | null;
5829 /** @nullable */
5830 updated_at?: string | null;
5831}
5832
5833/**
5834 * 线程视图:顶层评论 + 其下全部回复(无递归,便于文档生成)。
5835 */
5836export type EnvelopeVecPullCommentThreadDtoDataItem = {
5837 replies: PullCommentDto[];
5838 root: PullCommentDto;
5839};
5840
5841export interface EnvelopeVecPullCommentThreadDto {
5842 code: number;
5843 data?: EnvelopeVecPullCommentThreadDtoDataItem[];
5844 /** @nullable */
5845 error?: string | null;
5846 /** @nullable */
5847 error_code?: string | null;
5848 message: string;
5849 request_id?: string;
5850}
5851
5852export type EnvelopeVecPullReviewDtoDataItem = {
5853 /** @minimum 0 */
5854 comment_count: number;
5855 commit_sha: string;
5856 /** @nullable */
5857 content?: string | null;
5858 created_at: string;
5859 id: string;
5860 official: boolean;
5861 pull_request_id: string;
5862 state: ReviewState;
5863 /** @nullable */
5864 updated_at?: string | null;
5865 user?: null | UserDto;
5866};
5867
5868export interface EnvelopeVecPullReviewDto {
5869 code: number;
5870 data?: EnvelopeVecPullReviewDtoDataItem[];
5871 /** @nullable */
5872 error?: string | null;
5873 /** @nullable */
5874 error_code?: string | null;
5875 message: string;
5876 request_id?: string;
5877}
5878
5879export type ReviewerState =
5880 "requested" | "approved" | "changes_requested" | "commented" | "dismissed";
5881export type EnvelopeVecPullReviewerDtoDataItem = {
5882 created_at: string;
5883 id: string;
5884 requested_by?: null | UserDto;
5885 required: boolean;
5886 /** @nullable */
5887 review_id?: string | null;
5888 state: ReviewerState;
5889 /** @nullable */
5890 updated_at?: string | null;
5891 user?: null | UserDto;
5892};
5893
5894export interface EnvelopeVecPullReviewerDto {
5895 code: number;
5896 data?: EnvelopeVecPullReviewerDtoDataItem[];
5897 /** @nullable */
5898 error?: string | null;
5899 /** @nullable */
5900 error_code?: string | null;
5901 message: string;
5902 request_id?: string;
5903}
5904
5905export type EnvelopeVecPushSubscriptionDtoDataItem = {
5906 created_at: string;
5907 endpoint: string;
5908 id: string;
5909 platform: PushSubscriptionPlatform;
5910 /** @nullable */
5911 updated_at?: string | null;
5912 /** @nullable */
5913 user_agent?: string | null;
5914};
5915
5916export interface EnvelopeVecPushSubscriptionDto {
5917 code: number;
5918 data?: EnvelopeVecPushSubscriptionDtoDataItem[];
5919 /** @nullable */
5920 error?: string | null;
5921 /** @nullable */
5922 error_code?: string | null;
5923 message: string;
5924 request_id?: string;
5925}
5926
5927export type EnvelopeVecReactionAggDtoDataItem = {
5928 count: number;
5929 emoji: string;
5930 me: boolean;
5931};
5932
5933export interface EnvelopeVecReactionAggDto {
5934 code: number;
5935 data?: EnvelopeVecReactionAggDtoDataItem[];
5936 /** @nullable */
5937 error?: string | null;
5938 /** @nullable */
5939 error_code?: string | null;
5940 message: string;
5941 request_id?: string;
5942}
5943
5944export type EnvelopeVecReactionUserDtoDataItem = {
5945 created_at: string;
5946 emoji: string;
5947 user: UserDto;
5948};
5949
5950export interface EnvelopeVecReactionUserDto {
5951 code: number;
5952 data?: EnvelopeVecReactionUserDtoDataItem[];
5953 /** @nullable */
5954 error?: string | null;
5955 /** @nullable */
5956 error_code?: string | null;
5957 message: string;
5958 request_id?: string;
5959}
5960
5961export type EnvelopeVecRecentMentionDtoDataItem = {
5962 channel_id: string;
5963 created_at: string;
5964 id: string;
5965 message_id: string;
5966};
5967
5968export interface EnvelopeVecRecentMentionDto {
5969 code: number;
5970 data?: EnvelopeVecRecentMentionDtoDataItem[];
5971 /** @nullable */
5972 error?: string | null;
5973 /** @nullable */
5974 error_code?: string | null;
5975 message: string;
5976 request_id?: string;
5977}
5978
5979export type EnvelopeVecReminderDtoDataItem = {
5980 created_at: string;
5981 id: string;
5982 message_id: string;
5983 /** @nullable */
5984 message_preview?: string | null;
5985 /** @nullable */
5986 note?: string | null;
5987 remind_at: string;
5988 room_id: string;
5989 status: ReminderStatus;
5990};
5991
5992export interface EnvelopeVecReminderDto {
5993 code: number;
5994 data?: EnvelopeVecReminderDtoDataItem[];
5995 /** @nullable */
5996 error?: string | null;
5997 /** @nullable */
5998 error_code?: string | null;
5999 message: string;
6000 request_id?: string;
6001}
6002
6003export type EnvelopeVecRemoteDtoDataItem = {
6004 /** @nullable */
6005 fetch_url?: string | null;
6006 name: string;
6007 /** @nullable */
6008 push_url?: string | null;
6009};
6010
6011export interface EnvelopeVecRemoteDto {
6012 code: number;
6013 data?: EnvelopeVecRemoteDtoDataItem[];
6014 /** @nullable */
6015 error?: string | null;
6016 /** @nullable */
6017 error_code?: string | null;
6018 message: string;
6019 request_id?: string;
6020}
6021
6022export type EnvelopeVecRepoRelDtoDataItem = {
6023 created_at: string;
6024 id: string;
6025 issue_id: string;
6026 repo_id: string;
6027};
6028
6029export interface EnvelopeVecRepoRelDto {
6030 code: number;
6031 data?: EnvelopeVecRepoRelDtoDataItem[];
6032 /** @nullable */
6033 error?: string | null;
6034 /** @nullable */
6035 error_code?: string | null;
6036 message: string;
6037 request_id?: string;
6038}
6039
6040export type EnvelopeVecRoleSummaryDataItem = {
6041 /** @nullable */
6042 color?: string | null;
6043 created_at: string;
6044 default_role: boolean;
6045 /** @nullable */
6046 description?: string | null;
6047 /** @nullable */
6048 emoji?: string | null;
6049 /** @nullable */
6050 icon_hash?: string | null;
6051 id: string;
6052 key: string;
6053 member_count: number;
6054 name: string;
6055 organization_id: string;
6056 permissions: PermissionGrant[];
6057 position: number;
6058 rank: number;
6059 self_assignable: boolean;
6060 system: boolean;
6061 updated_at: string;
6062 version: number;
6063};
6064
6065export interface EnvelopeVecRoleSummary {
6066 code: number;
6067 data?: EnvelopeVecRoleSummaryDataItem[];
6068 /** @nullable */
6069 error?: string | null;
6070 /** @nullable */
6071 error_code?: string | null;
6072 message: string;
6073 request_id?: string;
6074}
6075
6076export type EnvelopeVecRoomBriefDtoDataItem = {
6077 created_at: string;
6078 favorite: boolean;
6079 hidden: boolean;
6080 id: string;
6081 is_private: boolean;
6082 kind: RoomKind;
6083 /** @nullable */
6084 last_message_id?: string | null;
6085 member_count: number;
6086 muted: boolean;
6087 name: string;
6088 nsfw: boolean;
6089 owner?: null | UserDto;
6090 owner_id: number;
6091 /** @nullable */
6092 parent_id?: string | null;
6093 position: number;
6094 /** @nullable */
6095 rate_limit_per_user?: number | null;
6096 /** @nullable */
6097 space_id?: string | null;
6098 /** @nullable */
6099 topic?: string | null;
6100 unread_count: number;
6101 unread_mentions: number;
6102};
6103
6104export interface EnvelopeVecRoomBriefDto {
6105 code: number;
6106 data?: EnvelopeVecRoomBriefDtoDataItem[];
6107 /** @nullable */
6108 error?: string | null;
6109 /** @nullable */
6110 error_code?: string | null;
6111 message: string;
6112 request_id?: string;
6113}
6114
6115export type EnvelopeVecRoomInviteListItemDtoDataItem = {
6116 /** @nullable */
6117 accepted_at?: string | null;
6118 created_at: string;
6119 /** @nullable */
6120 expires_at?: string | null;
6121 id: string;
6122 invitee?: null | UserDto;
6123 /** @nullable */
6124 invitee_id?: number | null;
6125 inviter?: null | UserDto;
6126 inviter_id: number;
6127 /** @nullable */
6128 revoked_at?: string | null;
6129 room_id: string;
6130};
6131
6132export interface EnvelopeVecRoomInviteListItemDto {
6133 code: number;
6134 data?: EnvelopeVecRoomInviteListItemDtoDataItem[];
6135 /** @nullable */
6136 error?: string | null;
6137 /** @nullable */
6138 error_code?: string | null;
6139 message: string;
6140 request_id?: string;
6141}
6142
6143export type EnvelopeVecRoomMemberDtoDataItem = {
6144 joined_at: string;
6145 /** @nullable */
6146 nick?: string | null;
6147 role: RoomMemberRole;
6148 user: UserDto;
6149};
6150
6151export interface EnvelopeVecRoomMemberDto {
6152 code: number;
6153 data?: EnvelopeVecRoomMemberDtoDataItem[];
6154 /** @nullable */
6155 error?: string | null;
6156 /** @nullable */
6157 error_code?: string | null;
6158 message: string;
6159 request_id?: string;
6160}
6161
6162export type EnvelopeVecSavedMessageDtoDataItem = {
6163 channel_id: string;
6164 id: string;
6165 message_id: string;
6166 saved_at: string;
6167};
6168
6169export interface EnvelopeVecSavedMessageDto {
6170 code: number;
6171 data?: EnvelopeVecSavedMessageDtoDataItem[];
6172 /** @nullable */
6173 error?: string | null;
6174 /** @nullable */
6175 error_code?: string | null;
6176 message: string;
6177 request_id?: string;
6178}
6179
6180export type EnvelopeVecSshKeySummaryDataItem = {
6181 algorithm: SshKeyAlgorithm;
6182 created_at: string;
6183 /** @nullable */
6184 description?: string | null;
6185 /** @nullable */
6186 expires_at?: string | null;
6187 fingerprint: string;
6188 id: string;
6189 /** @nullable */
6190 last_used_at?: string | null;
6191 name: string;
6192 public_key: string;
6193 /** @nullable */
6194 revoked_at?: string | null;
6195};
6196
6197export interface EnvelopeVecSshKeySummary {
6198 code: number;
6199 data?: EnvelopeVecSshKeySummaryDataItem[];
6200 /** @nullable */
6201 error?: string | null;
6202 /** @nullable */
6203 error_code?: string | null;
6204 message: string;
6205 request_id?: string;
6206}
6207
6208export type EnvelopeVecStargazerDtoDataItem = {
6209 avatar_url: string;
6210 display_name: string;
6211 starred_at: string;
6212 user_id: number;
6213 username: string;
6214};
6215
6216export interface EnvelopeVecStargazerDto {
6217 code: number;
6218 data?: EnvelopeVecStargazerDtoDataItem[];
6219 /** @nullable */
6220 error?: string | null;
6221 /** @nullable */
6222 error_code?: string | null;
6223 message: string;
6224 request_id?: string;
6225}
6226
6227export interface EnvelopeVecString {
6228 code: number;
6229 data?: string[];
6230 /** @nullable */
6231 error?: string | null;
6232 /** @nullable */
6233 error_code?: string | null;
6234 message: string;
6235 request_id?: string;
6236}
6237
6238export type EnvelopeVecSubmoduleDtoDataItem = {
6239 /** @nullable */
6240 branch?: string | null;
6241 /** @nullable */
6242 commit_sha?: string | null;
6243 path: string;
6244 url: string;
6245};
6246
6247export interface EnvelopeVecSubmoduleDto {
6248 code: number;
6249 data?: EnvelopeVecSubmoduleDtoDataItem[];
6250 /** @nullable */
6251 error?: string | null;
6252 /** @nullable */
6253 error_code?: string | null;
6254 message: string;
6255 request_id?: string;
6256}
6257
6258export type SuspensionType = "temporary" | "permanent";
6259export type EnvelopeVecSuspensionDtoDataItem = {
6260 created_at: string;
6261 /** @nullable */
6262 ends_at?: string | null;
6263 id: string;
6264 /** @nullable */
6265 reason?: string | null;
6266 /** @nullable */
6267 revoked_at?: string | null;
6268 starts_at: string;
6269 suspension_type: SuspensionType;
6270};
6271
6272export interface EnvelopeVecSuspensionDto {
6273 code: number;
6274 data?: EnvelopeVecSuspensionDtoDataItem[];
6275 /** @nullable */
6276 error?: string | null;
6277 /** @nullable */
6278 error_code?: string | null;
6279 message: string;
6280 request_id?: string;
6281}
6282
6283export type EnvelopeVecTagPolicyDtoDataItem = {
6284 created_at: string;
6285 id: string;
6286 name_pattern: string;
6287 repo_id: string;
6288 updated_at: string;
6289};
6290
6291export interface EnvelopeVecTagPolicyDto {
6292 code: number;
6293 data?: EnvelopeVecTagPolicyDtoDataItem[];
6294 /** @nullable */
6295 error?: string | null;
6296 /** @nullable */
6297 error_code?: string | null;
6298 message: string;
6299 request_id?: string;
6300}
6301
6302export type EnvelopeVecTagWhitelistDtoDataItem = {
6303 policy_id: string;
6304 user?: null | UserDto;
6305 user_id: number;
6306};
6307
6308export interface EnvelopeVecTagWhitelistDto {
6309 code: number;
6310 data?: EnvelopeVecTagWhitelistDtoDataItem[];
6311 /** @nullable */
6312 error?: string | null;
6313 /** @nullable */
6314 error_code?: string | null;
6315 message: string;
6316 request_id?: string;
6317}
6318
6319export type EnvelopeVecTopicDtoDataItem = {
6320 created_at: string;
6321 id: string;
6322 name: string;
6323 updated_at: string;
6324};
6325
6326export interface EnvelopeVecTopicDto {
6327 code: number;
6328 data?: EnvelopeVecTopicDtoDataItem[];
6329 /** @nullable */
6330 error?: string | null;
6331 /** @nullable */
6332 error_code?: string | null;
6333 message: string;
6334 request_id?: string;
6335}
6336
6337export type EnvelopeVecTopicRepoDtoDataItem = {
6338 is_private: boolean;
6339 repo_id: string;
6340 repo_name: string;
6341 space_name: string;
6342};
6343
6344export interface EnvelopeVecTopicRepoDto {
6345 code: number;
6346 data?: EnvelopeVecTopicRepoDtoDataItem[];
6347 /** @nullable */
6348 error?: string | null;
6349 /** @nullable */
6350 error_code?: string | null;
6351 message: string;
6352 request_id?: string;
6353}
6354
6355export type EnvelopeVecUserOverwriteDtoDataItem = {
6356 allow_mask: number;
6357 deny_mask: number;
6358 dir_id: string;
6359 user?: null | UserDto;
6360 user_id: number;
6361};
6362
6363export interface EnvelopeVecUserOverwriteDto {
6364 code: number;
6365 data?: EnvelopeVecUserOverwriteDtoDataItem[];
6366 /** @nullable */
6367 error?: string | null;
6368 /** @nullable */
6369 error_code?: string | null;
6370 message: string;
6371 request_id?: string;
6372}
6373
6374export type EnvelopeVecUserPublicDataItem = {
6375 avatar_url: string;
6376 display_name: string;
6377 user_id: number;
6378 username: string;
6379};
6380
6381export interface EnvelopeVecUserPublic {
6382 code: number;
6383 data?: EnvelopeVecUserPublicDataItem[];
6384 /** @nullable */
6385 error?: string | null;
6386 /** @nullable */
6387 error_code?: string | null;
6388 message: string;
6389 request_id?: string;
6390}
6391
6392export type EnvelopeVecUserReportDtoDataItem = {
6393 created_at: string;
6394 /** @nullable */
6395 evidence?: string | null;
6396 id: string;
6397 reason: string;
6398 reported_id: number;
6399 /** @nullable */
6400 resolution_note?: string | null;
6401 status: ReportStatus;
6402 updated_at: string;
6403};
6404
6405export interface EnvelopeVecUserReportDto {
6406 code: number;
6407 data?: EnvelopeVecUserReportDtoDataItem[];
6408 /** @nullable */
6409 error?: string | null;
6410 /** @nullable */
6411 error_code?: string | null;
6412 message: string;
6413 request_id?: string;
6414}
6415
6416export interface VoiceTrackDto {
6417 kind: string;
6418 muted: boolean;
6419 sid: string;
6420 source: string;
6421}
6422
6423/**
6424 * 房间参与者快照。
6425 *
6426 * 权威来源是 LiveKit 的 list_participants,Redis 只补主持人静音等本地状态;
6427 * 这是「谁在这个频道里」的服务端视图,用于侧栏人数与未加入时的预览。
6428 * 会中界面的发言高亮、静音图标与画面轨道一律直接读浏览器里的 Room,
6429 * 因为本接口不是事件流,返回值天然是快照。
6430 */
6431export type EnvelopeVecVoiceParticipantDtoDataItem = {
6432 /** @nullable */
6433 avatar_url?: string | null;
6434 can_publish: boolean;
6435 display_name: string;
6436 joined_at: number;
6437 moderator_muted: boolean;
6438 /**
6439 * 快照值:list_participants 不返回发言状态,因此这里恒为 false;
6440 * 实时发言指示由前端从 Room 的 activeSpeakers 读取。
6441 */
6442 speaking: boolean;
6443 tracks: VoiceTrackDto[];
6444 user_id: number;
6445};
6446
6447export interface EnvelopeVecVoiceParticipantDto {
6448 code: number;
6449 data?: EnvelopeVecVoiceParticipantDtoDataItem[];
6450 /** @nullable */
6451 error?: string | null;
6452 /** @nullable */
6453 error_code?: string | null;
6454 message: string;
6455 request_id?: string;
6456}
6457
6458export type EnvelopeVecWatcherDtoDataItem = {
6459 avatar_url: string;
6460 display_name: string;
6461 mode: WatchMode;
6462 user_id: number;
6463 username: string;
6464 watching_since: string;
6465};
6466
6467export interface EnvelopeVecWatcherDto {
6468 code: number;
6469 data?: EnvelopeVecWatcherDtoDataItem[];
6470 /** @nullable */
6471 error?: string | null;
6472 /** @nullable */
6473 error_code?: string | null;
6474 message: string;
6475 request_id?: string;
6476}
6477
6478export type EnvelopeVerifyResultDtoData = {
6479 /** @nullable */
6480 error_message?: string | null;
6481 /** @nullable */
6482 key_id?: string | null;
6483 signed: boolean;
6484 /** @nullable */
6485 signer?: string | null;
6486 valid: boolean;
6487};
6488
6489export interface EnvelopeVerifyResultDto {
6490 code: number;
6491 data?: EnvelopeVerifyResultDtoData;
6492 /** @nullable */
6493 error?: string | null;
6494 /** @nullable */
6495 error_code?: string | null;
6496 message: string;
6497 request_id?: string;
6498}
6499
6500export type EnvelopeVoiceConfigDtoData = {
6501 enabled: boolean;
6502 recording_enabled: boolean;
6503 url: string;
6504};
6505
6506export interface EnvelopeVoiceConfigDto {
6507 code: number;
6508 data?: EnvelopeVoiceConfigDtoData;
6509 /** @nullable */
6510 error?: string | null;
6511 /** @nullable */
6512 error_code?: string | null;
6513 message: string;
6514 request_id?: string;
6515}
6516
6517export interface HandDto {
6518 /** @nullable */
6519 avatar_url?: string | null;
6520 display_name: string;
6521 requested_at: number;
6522 state: HandState;
6523 user_id: number;
6524}
6525
6526export type EnvelopeVoiceHandsDtoData = {
6527 can_moderate: boolean;
6528 hands: HandDto[];
6529 my_state?: null | HandState;
6530};
6531
6532export interface EnvelopeVoiceHandsDto {
6533 code: number;
6534 data?: EnvelopeVoiceHandsDtoData;
6535 /** @nullable */
6536 error?: string | null;
6537 /** @nullable */
6538 error_code?: string | null;
6539 message: string;
6540 request_id?: string;
6541}
6542
6543/**
6544 * 一个参与者窗口在画布里的摆位,坐标按画布宽高归一化(0~1),
6545 * 这样不同分辨率、不同窗口大小的成员看到的是同一套布局。
6546 */
6547export interface VoiceTileDto {
6548 /**
6549 * 归一化高度,和 `w` 一样按画布的可用宽高分别归一,因此窗口可以自由
6550 * 拉伸而不是只能等比缩放。旧记录没有这个字段,读出来是 `None`,客户端
6551 * 按宽度的 3/4 补一个经典比例。
6552 * @nullable
6553 */
6554 h?: number | null;
6555 /**
6556 * 服务端写入时刻(秒)。请求里被忽略,响应里供客户端判断“谁更新”,
6557 * 这样并发拖拽时一个迟到的 GET 不会把刚摆好的窗口拽回旧位置。
6558 */
6559 updated_at?: number;
6560 /** 归一化宽度。 */
6561 w: number;
6562 x: number;
6563 y: number;
6564}
6565
6566/**
6567 * key 为参与者用户 id。
6568 */
6569export type EnvelopeVoiceLayoutDtoDataTiles = { [key: string]: VoiceTileDto };
6570
6571export type EnvelopeVoiceLayoutDtoData = {
6572 /** key 为参与者用户 id。 */
6573 tiles?: EnvelopeVoiceLayoutDtoDataTiles;
6574};
6575
6576export interface EnvelopeVoiceLayoutDto {
6577 code: number;
6578 data?: EnvelopeVoiceLayoutDtoData;
6579 /** @nullable */
6580 error?: string | null;
6581 /** @nullable */
6582 error_code?: string | null;
6583 message: string;
6584 request_id?: string;
6585}
6586
6587/**
6588 * 本次写入的服务端时刻,客户端用它给本地副本盖戳。
6589 */
6590export type EnvelopeVoiceLayoutSavedDtoData = {
6591 updated_at: number;
6592};
6593
6594export interface EnvelopeVoiceLayoutSavedDto {
6595 code: number;
6596 /** 本次写入的服务端时刻,客户端用它给本地副本盖戳。 */
6597 data?: EnvelopeVoiceLayoutSavedDtoData;
6598 /** @nullable */
6599 error?: string | null;
6600 /** @nullable */
6601 error_code?: string | null;
6602 message: string;
6603 request_id?: string;
6604}
6605
6606export type EnvelopeVoiceModerationDtoData = {
6607 action: string;
6608 ok: boolean;
6609 user_id: number;
6610};
6611
6612export interface EnvelopeVoiceModerationDto {
6613 code: number;
6614 data?: EnvelopeVoiceModerationDtoData;
6615 /** @nullable */
6616 error?: string | null;
6617 /** @nullable */
6618 error_code?: string | null;
6619 message: string;
6620 request_id?: string;
6621}
6622
6623export type EnvelopeVoiceRecordingDtoData = {
6624 active: boolean;
6625 egress_id: string;
6626};
6627
6628export interface EnvelopeVoiceRecordingDto {
6629 code: number;
6630 data?: EnvelopeVoiceRecordingDtoData;
6631 /** @nullable */
6632 error?: string | null;
6633 /** @nullable */
6634 error_code?: string | null;
6635 message: string;
6636 request_id?: string;
6637}
6638
6639export interface VoiceRoomStateDto {
6640 /** @minimum 0 */
6641 count: number;
6642 room_id: string;
6643}
6644
6645export type EnvelopeVoiceSpaceStatesDtoData = {
6646 rooms: VoiceRoomStateDto[];
6647};
6648
6649export interface EnvelopeVoiceSpaceStatesDto {
6650 code: number;
6651 data?: EnvelopeVoiceSpaceStatesDtoData;
6652 /** @nullable */
6653 error?: string | null;
6654 /** @nullable */
6655 error_code?: string | null;
6656 message: string;
6657 request_id?: string;
6658}
6659
6660export type EnvelopeVoiceTokenDtoData = {
6661 can_publish: boolean;
6662 /** @minimum 0 */
6663 expires_in_secs: number;
6664 hand_state?: null | HandState;
6665 is_stage: boolean;
6666 room_name: string;
6667 token: string;
6668 url: string;
6669};
6670
6671export interface EnvelopeVoiceTokenDto {
6672 code: number;
6673 data?: EnvelopeVoiceTokenDtoData;
6674 /** @nullable */
6675 error?: string | null;
6676 /** @nullable */
6677 error_code?: string | null;
6678 message: string;
6679 request_id?: string;
6680}
6681
6682export type EnvelopeWatchDtoData = {
6683 created_at: string;
6684 id: string;
6685 /** @nullable */
6686 issue_id?: string | null;
6687 mode: WatchMode;
6688 /** @nullable */
6689 updated_at?: string | null;
6690 user?: null | UserDto;
6691};
6692
6693export interface EnvelopeWatchDto {
6694 code: number;
6695 data?: EnvelopeWatchDtoData;
6696 /** @nullable */
6697 error?: string | null;
6698 /** @nullable */
6699 error_code?: string | null;
6700 message: string;
6701 request_id?: string;
6702}
6703
6704export type EnvelopeWebhookDtoData = {
6705 created_at: string;
6706 disabled: boolean;
6707 id: string;
6708 /** @nullable */
6709 last_used_at?: string | null;
6710 name: string;
6711 room_id: string;
6712};
6713
6714export interface EnvelopeWebhookDto {
6715 code: number;
6716 data?: EnvelopeWebhookDtoData;
6717 /** @nullable */
6718 error?: string | null;
6719 /** @nullable */
6720 error_code?: string | null;
6721 message: string;
6722 request_id?: string;
6723}
6724
6725export type EnvelopeWebhookSecretDtoData = {
6726 created_at: string;
6727 disabled: boolean;
6728 id: string;
6729 name: string;
6730 room_id: string;
6731 token: string;
6732};
6733
6734export interface EnvelopeWebhookSecretDto {
6735 code: number;
6736 data?: EnvelopeWebhookSecretDtoData;
6737 /** @nullable */
6738 error?: string | null;
6739 /** @nullable */
6740 error_code?: string | null;
6741 message: string;
6742 request_id?: string;
6743}
6744
6745export interface EnvelopeBool {
6746 code: number;
6747 data?: boolean;
6748 /** @nullable */
6749 error?: string | null;
6750 /** @nullable */
6751 error_code?: string | null;
6752 message: string;
6753 request_id?: string;
6754}
6755
6756export type IssueEventType =
6757 | "created"
6758 | "title_updated"
6759 | "description_updated"
6760 | "content_updated"
6761 | "milestone_updated"
6762 | "priority_updated"
6763 | "due_updated"
6764 | "closed"
6765 | "reopened"
6766 | "comment_created"
6767 | "comment_updated"
6768 | "comment_deleted"
6769 | "member_added"
6770 | "member_removed"
6771 | "label_added"
6772 | "label_removed"
6773 | "dependency_added"
6774 | "dependency_removed"
6775 | "pinned"
6776 | "unpinned"
6777 | "repo_relation_added"
6778 | "repo_relation_removed"
6779 | "pull_linked"
6780 | "pull_unlinked";
6781export interface EventDto {
6782 /** @nullable */
6783 comment_id?: string | null;
6784 /** @nullable */
6785 commit_sha?: string | null;
6786 /** @nullable */
6787 content?: string | null;
6788 created_at: string;
6789 event_type: IssueEventType;
6790 id: string;
6791 /** @nullable */
6792 issue_id?: string | null;
6793 /** @nullable */
6794 new_ref?: string | null;
6795 /** @nullable */
6796 new_title?: string | null;
6797 /** @nullable */
6798 old_ref?: string | null;
6799 /** @nullable */
6800 old_title?: string | null;
6801 user?: null | UserDto;
6802}
6803
6804export interface EventPath {
6805 board_id: string;
6806 issue_id: string;
6807 space_name: string;
6808}
6809
6810export interface ExploreViewerRequestDto {
6811 /** @nullable */
6812 cooldown_until?: string | null;
6813 created_at: string;
6814 /** @nullable */
6815 decided_at?: string | null;
6816 id: string;
6817 status: SpaceJoinRequestState;
6818}
6819
6820export interface ExploreViewerDto {
6821 is_member: boolean;
6822 request?: null | ExploreViewerRequestDto;
6823}
6824
6825export interface ExploreSpaceDto {
6826 allow_join: boolean;
6827 allow_join_level: AllowJoinLevel;
6828 /** @nullable */
6829 avatar_url?: string | null;
6830 /** @nullable */
6831 banner_url?: string | null;
6832 created_at: string;
6833 /** @nullable */
6834 description?: string | null;
6835 id: string;
6836 lower_name: string;
6837 members_count: number;
6838 name: string;
6839 viewer?: null | ExploreViewerDto;
6840}
6841
6842export interface FetchResultDto {
6843 new: string[];
6844 updated: string[];
6845}
6846
6847export interface FileEntryDto {
6848 /** @items.minimum 0 */
6849 content: number[];
6850 executable: boolean;
6851 path: string;
6852}
6853
6854export interface FinalizeAttachmentCmd {
6855 /** @nullable */
6856 duration_secs?: number | null;
6857 /** @nullable */
6858 height?: number | null;
6859 /** @nullable */
6860 width?: number | null;
6861}
6862
6863export interface ForwardMessageCmd {
6864 /** @nullable */
6865 comment?: string | null;
6866 target_room_id: string;
6867}
6868
6869export interface FsckDto {
6870 broken: number;
6871 dangling: number;
6872 ok: boolean;
6873}
6874
6875export interface GroupDto {
6876 color: string;
6877 created_at: string;
6878 created_by?: null | UserDto;
6879 /** @nullable */
6880 icon_hash?: string | null;
6881 id: string;
6882 name: string;
6883 permissions: string[];
6884 position: number;
6885 space_id: string;
6886 /** @nullable */
6887 unicode_emoji?: string | null;
6888 /** @nullable */
6889 updated_at?: string | null;
6890 version: number;
6891}
6892
6893export interface GroupOverwriteDto {
6894 allow_mask: number;
6895 deny_mask: number;
6896 dir_id: string;
6897 group_id: string;
6898}
6899
6900export interface HeadInfoDto {
6901 is_detached: boolean;
6902 name: string;
6903 object: string;
6904 object_type: number;
6905}
6906
6907export type HookEventKind =
6908 "pre_receive" | "post_receive" | "update" | "push" | "tag" | "merge_request";
6909export interface HookExecBody {
6910 args?: string[];
6911}
6912
6913/**
6914 * Which representation a read endpoint should hand back.
6915 */
6916export type ImageVariant = "preview" | "original";
6917export interface ImportResultDto {
6918 commit_count: number;
6919 default_branch: string;
6920}
6921
6922export interface IncludeRevokedQuery {
6923 /** @nullable */
6924 active?: boolean | null;
6925 /** @nullable */
6926 include_revoked?: boolean | null;
6927}
6928
6929export interface IngestPackDto {
6930 object_count: number;
6931 size: number;
6932}
6933
6934export interface InlineDraft {
6935 /** @nullable */
6936 body?: string | null;
6937 line: number;
6938 path: string;
6939 /** @nullable */
6940 side?: string | null;
6941}
6942
6943export interface IsAncestorResponse {
6944 is_ancestor: boolean;
6945}
6946
6947export interface IsObjectInRefResponse {
6948 contains: boolean;
6949}
6950
6951export interface IssueAttachmentDto {
6952 content_type: string;
6953 created_at: string;
6954 filename: string;
6955 id: string;
6956 /**
6957 * `None` until the draft is submitted with this attachment attached.
6958 * @nullable
6959 */
6960 issue_id?: string | null;
6961 size: number;
6962 status: IssueAttachmentStatus;
6963 uploader_id: number;
6964}
6965
6966export interface IssueDto {
6967 assignees: UserDto[];
6968 author?: null | UserDto;
6969 board_id: string;
6970 /** @nullable */
6971 closed_at?: string | null;
6972 content: string;
6973 created_at: string;
6974 /** @nullable */
6975 description?: string | null;
6976 /** @nullable */
6977 due_at?: string | null;
6978 id: string;
6979 /** @nullable */
6980 milestone_id?: string | null;
6981 number: number;
6982 priority: IssuePriority;
6983 state: IssueState;
6984 title: string;
6985 /** @nullable */
6986 updated_at?: string | null;
6987 viewer_watch?: null | WatchMode;
6988}
6989
6990export interface IssueLabelPath {
6991 board_id: string;
6992 issue_id: string;
6993 label_id: string;
6994 space_name: string;
6995}
6996
6997export interface LabelDto {
6998 color: string;
6999 created_at: string;
7000 /** @nullable */
7001 description?: string | null;
7002 dir_id: string;
7003 exclusive: boolean;
7004 exclusive_order: number;
7005 id: string;
7006 is_archived: boolean;
7007 name: string;
7008 /** @nullable */
7009 updated_at?: string | null;
7010}
7011
7012export interface IssueListItemDto {
7013 assignees: UserDto[];
7014 author?: null | UserDto;
7015 board_id: string;
7016 /** @nullable */
7017 closed_at?: string | null;
7018 created_at: string;
7019 /** @nullable */
7020 due_at?: string | null;
7021 id: string;
7022 /** Chips the list rows render; the detail view fetches these separately. */
7023 labels: LabelDto[];
7024 /** @nullable */
7025 milestone_id?: string | null;
7026 number: number;
7027 priority: IssuePriority;
7028 state: IssueState;
7029 title: string;
7030 /** @nullable */
7031 updated_at?: string | null;
7032}
7033
7034export interface IssueMemberDto {
7035 created_at: string;
7036 id: string;
7037 issue_id: string;
7038 kind: IssueMemberKind;
7039 /** @nullable */
7040 updated_at?: string | null;
7041 user?: null | UserDto;
7042}
7043
7044export interface IssueMemberPath {
7045 board_id: string;
7046 issue_id: string;
7047 member_id: string;
7048 space_name: string;
7049}
7050
7051export interface IssuePath {
7052 board_id: string;
7053 /** issue uuid or board-scoped number (e.g. "123") */
7054 issue_id: string;
7055 space_name: string;
7056}
7057
7058export interface IssuePullLinkDto {
7059 /** 建立关联的时间。 */
7060 linked_at: string;
7061 pull: PullDto;
7062 /** 关联行主键(issue_relation_pull.id),解除关联时作为路径参数回传。 */
7063 relation_id: string;
7064}
7065
7066export interface IssueUploadIntentDto {
7067 /** @minimum 0 */
7068 expires_secs: number;
7069 id: string;
7070 upload_url: string;
7071}
7072
7073export interface IssueUserDto {
7074 created_at: string;
7075 id: string;
7076 is_read: boolean;
7077 issue_id: string;
7078 user?: null | UserDto;
7079 user_id: number;
7080}
7081
7082export interface IssueUserPath {
7083 board_id: string;
7084 issue_id: string;
7085 space_name: string;
7086 user_id: number;
7087}
7088
7089export interface JoinRequestDto {
7090 created_at: string;
7091 /** @nullable */
7092 decided_at?: string | null;
7093 decided_by?: null | UserDto;
7094 id: string;
7095 /** @nullable */
7096 note?: string | null;
7097 space_id: string;
7098 status: SpaceJoinRequestState;
7099 updated_at: string;
7100 user?: null | UserDto;
7101}
7102
7103export interface JoinRuleDto {
7104 created_at: string;
7105 enabled: boolean;
7106 id: string;
7107 matcher: string;
7108 role_id: string;
7109 trigger: SpaceJoinTrigger;
7110 updated_at: string;
7111}
7112
7113export interface LabelPath {
7114 board_id: string;
7115 label_id: string;
7116 space_name: string;
7117}
7118
7119export interface LanguageStatDto {
7120 is_primary: boolean;
7121 language: string;
7122 percentage_bp: number;
7123 size: number;
7124}
7125
7126export interface LfsCleanupResponse {
7127 removed: number;
7128}
7129
7130export interface LfsLockBody {
7131 /** @nullable */
7132 oid?: string | null;
7133 path: string;
7134}
7135
7136export interface LfsLockListResponse {
7137 locks?: LfsLock[];
7138 /** @nullable */
7139 next_cursor?: string | null;
7140}
7141
7142export interface LfsVerifyLocksResponse {
7143 /** @nullable */
7144 next_cursor?: string | null;
7145 ours?: LfsLock[];
7146 theirs?: LfsLock[];
7147}
7148
7149export interface LicenseDto {
7150 body: string;
7151 created_at: string;
7152 /** @nullable */
7153 description?: string | null;
7154 display_name: string;
7155 name: string;
7156 updated_at: string;
7157 /** @nullable */
7158 url?: string | null;
7159}
7160
7161export interface LinkIssueCmd {
7162 /** PR 编号或 UUID。 */
7163 pull_ref: string;
7164 repo_name: string;
7165 space_name: string;
7166}
7167
7168export interface ListBoardQuery {
7169 /** @nullable */
7170 dir_id?: string | null;
7171 /**
7172 * @minimum 0
7173 * @nullable
7174 */
7175 limit?: number | null;
7176 /**
7177 * @minimum 0
7178 * @nullable
7179 */
7180 offset?: number | null;
7181 /** @nullable */
7182 q?: string | null;
7183}
7184
7185export interface ListCommentQuery {
7186 /**
7187 * @minimum 0
7188 * @nullable
7189 */
7190 limit?: number | null;
7191 /**
7192 * @minimum 0
7193 * @nullable
7194 */
7195 offset?: number | null;
7196 /** @nullable */
7197 parent_id?: string | null;
7198 /** @nullable */
7199 sort?: string | null;
7200}
7201
7202export interface ListContentHistoryQuery {
7203 /** @nullable */
7204 comment_id?: string | null;
7205 /**
7206 * @minimum 0
7207 * @nullable
7208 */
7209 limit?: number | null;
7210 /**
7211 * @minimum 0
7212 * @nullable
7213 */
7214 offset?: number | null;
7215}
7216
7217export interface ListEventQuery {
7218 /**
7219 * @minimum 0
7220 * @nullable
7221 */
7222 limit?: number | null;
7223 /**
7224 * @minimum 0
7225 * @nullable
7226 */
7227 offset?: number | null;
7228}
7229
7230export interface ListIssueMemberQuery {
7231 kind?: null | IssueMemberKind;
7232 /**
7233 * @minimum 0
7234 * @nullable
7235 */
7236 limit?: number | null;
7237 /**
7238 * @minimum 0
7239 * @nullable
7240 */
7241 offset?: number | null;
7242}
7243
7244export interface ListIssueQuery {
7245 /**
7246 * One id or a comma-separated id list (`a,b`); matches any of them.
7247 * @nullable
7248 */
7249 assignee_id?: string | null;
7250 /** @nullable */
7251 author_id?: number | null;
7252 /**
7253 * One id or a comma-separated id list (`a,b`); matches any of them.
7254 * @nullable
7255 */
7256 label_id?: string | null;
7257 /**
7258 * @minimum 0
7259 * @nullable
7260 */
7261 limit?: number | null;
7262 /**
7263 * One id or a comma-separated id list (`a,b`); `none` matches issues
7264 * without a milestone. Any of the listed values matches.
7265 * @nullable
7266 */
7267 milestone_id?: string | null;
7268 /**
7269 * @minimum 0
7270 * @nullable
7271 */
7272 offset?: number | null;
7273 /**
7274 * One priority or a comma-separated list (`high,urgent`).
7275 * @nullable
7276 */
7277 priority?: string | null;
7278 /** @nullable */
7279 q?: string | null;
7280 /** @nullable */
7281 sort?: string | null;
7282 state?: null | IssueState;
7283}
7284
7285export interface ListIssueUserQuery {
7286 /**
7287 * @minimum 0
7288 * @nullable
7289 */
7290 limit?: number | null;
7291 /**
7292 * @minimum 0
7293 * @nullable
7294 */
7295 offset?: number | null;
7296}
7297
7298export interface ListLabelQuery {
7299 /** @nullable */
7300 is_archived?: boolean | null;
7301 /**
7302 * @minimum 0
7303 * @nullable
7304 */
7305 limit?: number | null;
7306 /**
7307 * @minimum 0
7308 * @nullable
7309 */
7310 offset?: number | null;
7311 /** @nullable */
7312 q?: string | null;
7313}
7314
7315export interface ListLimitQuery {
7316 /**
7317 * @minimum 0
7318 * @nullable
7319 */
7320 limit?: number | null;
7321}
7322
7323export interface ListMessageQuery {
7324 /** @nullable */
7325 after_seq?: number | null;
7326 /** @nullable */
7327 author_id?: number | null;
7328 /** @nullable */
7329 before_seq?: number | null;
7330 /**
7331 * @minimum 0
7332 * @nullable
7333 */
7334 limit?: number | null;
7335 /** @nullable */
7336 thread_id?: string | null;
7337}
7338
7339export interface ListMilestoneQuery {
7340 /** @nullable */
7341 is_closed?: boolean | null;
7342 /**
7343 * @minimum 0
7344 * @nullable
7345 */
7346 limit?: number | null;
7347 /**
7348 * @minimum 0
7349 * @nullable
7350 */
7351 offset?: number | null;
7352 /** @nullable */
7353 q?: string | null;
7354}
7355
7356export interface ListThreadQuery {
7357 /** @nullable */
7358 archived?: boolean | null;
7359 /**
7360 * @minimum 0
7361 * @nullable
7362 */
7363 limit?: number | null;
7364 /**
7365 * @minimum 0
7366 * @nullable
7367 */
7368 offset?: number | null;
7369}
7370
7371export interface ListTrackedTimeQuery {
7372 /**
7373 * @minimum 0
7374 * @nullable
7375 */
7376 limit?: number | null;
7377 /**
7378 * @minimum 0
7379 * @nullable
7380 */
7381 offset?: number | null;
7382 /** @nullable */
7383 user_id?: number | null;
7384}
7385
7386export interface PowProofRequest {
7387 /** @minimum 0 */
7388 nonce: number;
7389 /** @items.minimum 0 */
7390 payload: number[];
7391}
7392
7393export interface LoginCodeRequest {
7394 email: string;
7395 pow_payload: PowProofRequest;
7396}
7397
7398export interface LoginCodeResponse {
7399 /** @minimum 0 */
7400 expires_in_secs: number;
7401}
7402
7403export interface LoginCodeVerifyRequest {
7404 email: string;
7405 email_code: string;
7406 pow_payload: PowProofRequest;
7407}
7408
7409export interface LoginVerifyRequest {
7410 challenge: string;
7411 code: string;
7412}
7413
7414export interface LogoutResponse {
7415 /** @nullable */
7416 user_id?: number | null;
7417}
7418
7419export interface MarkIssueReadCmd {
7420 read: boolean;
7421}
7422
7423export interface MarkNotificationsReadCmd {
7424 all?: boolean;
7425 /** @nullable */
7426 ids?: string[] | null;
7427}
7428
7429export interface MarkReadCmd {
7430 /** @nullable */
7431 message_id?: string | null;
7432 /** @nullable */
7433 seq?: number | null;
7434}
7435
7436export interface MarkThreadReadCmd {
7437 /** @nullable */
7438 message_id?: string | null;
7439}
7440
7441export interface MarkedCountResp {
7442 /** @minimum 0 */
7443 marked: number;
7444}
7445
7446export interface MeResp {
7447 profile?: null | ProfileDto;
7448 user: UserMeDto;
7449}
7450
7451export interface MeResponse {
7452 /** @nullable */
7453 avatar_url?: string | null;
7454 created_at: string;
7455 /** @nullable */
7456 displayname?: string | null;
7457 email: string;
7458 /** @nullable */
7459 email_verified_at?: string | null;
7460 is_admin: boolean;
7461 user_id: number;
7462 username: string;
7463 version: number;
7464}
7465
7466export interface MemberDto {
7467 /** @nullable */
7468 alias_avatar_url?: string | null;
7469 /** @nullable */
7470 alias_name?: string | null;
7471 created_at: string;
7472 hide_muted_channels: boolean;
7473 /** @nullable */
7474 invited_at?: string | null;
7475 invited_by?: null | UserDto;
7476 joined_at: string;
7477 /** @nullable */
7478 last_active_at?: string | null;
7479 /** @nullable */
7480 left_at?: string | null;
7481 message_notifications: MessageNotifications;
7482 mobile_push: boolean;
7483 /** @nullable */
7484 mute_until?: string | null;
7485 muted: boolean;
7486 space_id: string;
7487 status: MemberStatus;
7488 suppress_everyone: boolean;
7489 suppress_roles: boolean;
7490 /** @nullable */
7491 updated_at?: string | null;
7492 user?: null | UserDto;
7493}
7494
7495export interface MemberListQuery {
7496 /** @nullable */
7497 include_banned?: boolean | null;
7498 /** @nullable */
7499 include_inactive?: boolean | null;
7500 /**
7501 * @minimum 0
7502 * @nullable
7503 */
7504 page?: number | null;
7505 /**
7506 * @minimum 0
7507 * @nullable
7508 */
7509 page_size?: number | null;
7510}
7511
7512export interface MemberSummary {
7513 /** @nullable */
7514 alias_avatar_url?: string | null;
7515 /** @nullable */
7516 alias_name?: string | null;
7517 ban_allow_agent_join: boolean;
7518 ban_allow_comment_any: boolean;
7519 ban_allow_push_repo: boolean;
7520 ban_allow_speak: boolean;
7521 /** @nullable */
7522 ban_expires_at?: string | null;
7523 /** @nullable */
7524 ban_reason?: string | null;
7525 /** @nullable */
7526 banned_at?: string | null;
7527 /** @nullable */
7528 displayname?: string | null;
7529 hide_muted_channels: boolean;
7530 id: string;
7531 /** @nullable */
7532 invited_by?: number | null;
7533 join_method: SpaceJoinMethod;
7534 joined_at: string;
7535 /** @nullable */
7536 last_active_at?: string | null;
7537 /** @nullable */
7538 left_at?: string | null;
7539 message_notifications: MessageNotifications;
7540 mobile_push: boolean;
7541 /** @nullable */
7542 mute_until?: string | null;
7543 muted: boolean;
7544 organization_id: string;
7545 permissions: string[];
7546 role: SpaceMemberRole;
7547 role_keys: string[];
7548 suppress_everyone: boolean;
7549 suppress_roles: boolean;
7550 user_id: number;
7551 username: string;
7552 version: number;
7553}
7554
7555export interface MemeDto {
7556 content_type: string;
7557 created_at: string;
7558 /** @nullable */
7559 height?: number | null;
7560 id: string;
7561 name: string;
7562 size: number;
7563 url: string;
7564 /** @nullable */
7565 width?: number | null;
7566}
7567
7568export interface MergeCommitDto {
7569 author_at: string;
7570 author_email: string;
7571 author_name: string;
7572 message: string;
7573 parents: string[];
7574 sha: string;
7575 subject: string;
7576}
7577
7578export interface MergePullCmd {
7579 /** @nullable */
7580 delete_branch_after_merge?: boolean | null;
7581 /** @nullable */
7582 expect_head_sha?: string | null;
7583 /**
7584 * 允许在无冲突时直接快进(method=merge 时生效)。
7585 * @nullable
7586 */
7587 fast_forward_only?: boolean | null;
7588 /** @nullable */
7589 message?: string | null;
7590 method?: null | MergeMethod;
7591 /** @nullable */
7592 title?: string | null;
7593}
7594
7595export interface MergePullDto {
7596 pull: PullDto;
7597 result: MergeResultDto;
7598 summary: PullSummaryDto;
7599}
7600
7601export interface MergeStatusDto {
7602 conflicts: string[];
7603 fast_forwardable: boolean;
7604 mergeable: boolean;
7605}
7606
7607export interface MessageEditDto {
7608 content: string;
7609 created_at: string;
7610 editor?: null | UserDto;
7611 id: string;
7612 message_id: string;
7613}
7614
7615export interface MessagePage {
7616 has_more: boolean;
7617 items: MessageDto[];
7618 /** @nullable */
7619 newest_seq?: number | null;
7620 /** @nullable */
7621 oldest_seq?: number | null;
7622}
7623
7624export interface MessagePath {
7625 message_id: string;
7626 room_id: string;
7627}
7628
7629export interface MilestoneDto {
7630 board_id: string;
7631 closed_issues_count: number;
7632 created_at: string;
7633 /** @nullable */
7634 description?: string | null;
7635 /** @nullable */
7636 due_at?: string | null;
7637 id: string;
7638 is_closed: boolean;
7639 issues_count: number;
7640 name: string;
7641 /** @nullable */
7642 updated_at?: string | null;
7643}
7644
7645export interface MilestonePath {
7646 board_id: string;
7647 milestone_id: string;
7648 space_name: string;
7649}
7650
7651export interface MoveDirCmd {
7652 /** @nullable */
7653 parent_dir_id?: string | null;
7654 /** @nullable */
7655 position?: number | null;
7656}
7657
7658export interface MySpaceDto {
7659 permissions: string[];
7660 space: SpaceDto;
7661}
7662
7663export interface NoData {}
7664
7665export interface NotificationDto {
7666 /** @nullable */
7667 actor_id?: number | null;
7668 /** @nullable */
7669 body?: string | null;
7670 created_at: string;
7671 data?: null | Value;
7672 id: string;
7673 notification_type: NotificationType;
7674 /** @nullable */
7675 read_at?: string | null;
7676 title: string;
7677}
7678
7679export interface OpenDmCmd {
7680 /** @nullable */
7681 peer_user_id?: number | null;
7682 /** @nullable */
7683 peer_user_ids?: number[] | null;
7684}
7685
7686export interface OrgListQuery {
7687 /** @nullable */
7688 include_archived?: boolean | null;
7689 /**
7690 * @minimum 0
7691 * @nullable
7692 */
7693 page?: number | null;
7694 /**
7695 * @minimum 0
7696 * @nullable
7697 */
7698 page_size?: number | null;
7699}
7700
7701export interface OrganizationSummary {
7702 allow_invite: boolean;
7703 allow_join: boolean;
7704 allow_join_level: number;
7705 /** @nullable */
7706 archived_at?: string | null;
7707 /** @nullable */
7708 avatar_url?: string | null;
7709 created_at: string;
7710 /** @nullable */
7711 description?: string | null;
7712 id: string;
7713 join_policy: SpaceJoinPolicy;
7714 member_count: number;
7715 member_must_enable_2fa: boolean;
7716 my_role?: null | SpaceMemberRole;
7717 name: string;
7718 owner_user_id: number;
7719 require_email_verified: boolean;
7720 require_mfa: boolean;
7721 slug: string;
7722 status: SpaceStatus;
7723 updated_at: string;
7724 version: number;
7725 /** @nullable */
7726 welcome_message?: string | null;
7727}
7728
7729export interface OutboundWebhookDto {
7730 created_at: string;
7731 disabled: boolean;
7732 id: string;
7733 /** @nullable */
7734 last_status?: string | null;
7735 /** @nullable */
7736 last_used_at?: string | null;
7737 name: string;
7738 room_id: string;
7739 url: string;
7740}
7741
7742export interface OutboundWebhookSecretDto {
7743 created_at: string;
7744 id: string;
7745 name: string;
7746 room_id: string;
7747 secret: string;
7748 url: string;
7749}
7750
7751export interface PackStatsDto {
7752 loose_count: number;
7753 size_bytes: number;
7754}
7755
7756export interface Page {
7757 items: ThreadDto[];
7758 /** @minimum 0 */
7759 limit: number;
7760 /** @minimum 0 */
7761 offset: number;
7762 total: number;
7763}
7764
7765export interface PageQuery {
7766 /**
7767 * @minimum 0
7768 * @nullable
7769 */
7770 limit?: number | null;
7771 /**
7772 * @minimum 0
7773 * @nullable
7774 */
7775 offset?: number | null;
7776 /** @nullable */
7777 sort?: string | null;
7778}
7779
7780export type PageBookmarkDtoItemsItem = {
7781 created_at: string;
7782 created_by_id: number;
7783 /** @nullable */
7784 emoji?: string | null;
7785 id: string;
7786 position: number;
7787 room_id: string;
7788 title: string;
7789 /** @nullable */
7790 url?: string | null;
7791};
7792
7793export interface PageBookmarkDto {
7794 items: PageBookmarkDtoItemsItem[];
7795 /** @minimum 0 */
7796 limit: number;
7797 /** @minimum 0 */
7798 offset: number;
7799 total: number;
7800}
7801
7802export type PageBranchDtoItemsItem = {
7803 commit_sha: string;
7804 created_at: string;
7805 /** @nullable */
7806 deleted_at?: string | null;
7807 is_deleted: boolean;
7808 is_protected: boolean;
7809 name: string;
7810 updated_at: string;
7811};
7812
7813export interface PageBranchDto {
7814 items: PageBranchDtoItemsItem[];
7815 /** @minimum 0 */
7816 limit: number;
7817 /** @minimum 0 */
7818 offset: number;
7819 total: number;
7820}
7821
7822export type PageDmDtoItemsItem = {
7823 created_at: string;
7824 id: string;
7825 kind: RoomKind;
7826 /** @nullable */
7827 last_message_id?: string | null;
7828 last_read_seq: number;
7829 members?: UserDto[];
7830 name: string;
7831 peer?: null | UserDto;
7832 tip_seq: number;
7833 unread_count: number;
7834};
7835
7836export interface PageDmDto {
7837 items: PageDmDtoItemsItem[];
7838 /** @minimum 0 */
7839 limit: number;
7840 /** @minimum 0 */
7841 offset: number;
7842 total: number;
7843}
7844
7845export type PageDraftDtoItemsItem = {
7846 content: string;
7847 room_id: string;
7848 /** @nullable */
7849 thread_id?: string | null;
7850 updated_at: string;
7851};
7852
7853export interface PageDraftDto {
7854 items: PageDraftDtoItemsItem[];
7855 /** @minimum 0 */
7856 limit: number;
7857 /** @minimum 0 */
7858 offset: number;
7859 total: number;
7860}
7861
7862export type PageEmojiDtoItemsItem = {
7863 animated: boolean;
7864 created_at: string;
7865 disabled: boolean;
7866 id: string;
7867 name: string;
7868 space_id: string;
7869};
7870
7871export interface PageEmojiDto {
7872 items: PageEmojiDtoItemsItem[];
7873 /** @minimum 0 */
7874 limit: number;
7875 /** @minimum 0 */
7876 offset: number;
7877 total: number;
7878}
7879
7880export type PageIssueListItemDtoItemsItem = {
7881 assignees: UserDto[];
7882 author?: null | UserDto;
7883 board_id: string;
7884 /** @nullable */
7885 closed_at?: string | null;
7886 created_at: string;
7887 /** @nullable */
7888 due_at?: string | null;
7889 id: string;
7890 /** Chips the list rows render; the detail view fetches these separately. */
7891 labels: LabelDto[];
7892 /** @nullable */
7893 milestone_id?: string | null;
7894 number: number;
7895 priority: IssuePriority;
7896 state: IssueState;
7897 title: string;
7898 /** @nullable */
7899 updated_at?: string | null;
7900};
7901
7902export interface PageIssueListItemDto {
7903 items: PageIssueListItemDtoItemsItem[];
7904 /** @minimum 0 */
7905 limit: number;
7906 /** @minimum 0 */
7907 offset: number;
7908 total: number;
7909}
7910
7911export type PageMessageDtoItemsItem = {
7912 attachments: AttachmentDto[];
7913 author?: null | UserDto;
7914 author_id: number;
7915 author_type: AuthorType;
7916 content: string;
7917 created_at: string;
7918 /** @nullable */
7919 deleted_at?: string | null;
7920 /** @nullable */
7921 edited_at?: string | null;
7922 embeds?: MessageEmbed[];
7923 /** @nullable */
7924 forwarded_from_id?: string | null;
7925 has_thread: boolean;
7926 id: string;
7927 mention_everyone: boolean;
7928 mentions: number[];
7929 message_type: ChatMessageType;
7930 pinned: boolean;
7931 /** @nullable */
7932 pinned_at?: string | null;
7933 /** @nullable */
7934 pinned_by_id?: number | null;
7935 reactions?: ReactionAggDto[];
7936 /** @nullable */
7937 reply_to_id?: string | null;
7938 room_id: string;
7939 seq: number;
7940 thread_broadcast: boolean;
7941 /** @nullable */
7942 thread_id?: string | null;
7943 /** @nullable */
7944 webhook_id?: string | null;
7945};
7946
7947export interface PageMessageDto {
7948 items: PageMessageDtoItemsItem[];
7949 /** @minimum 0 */
7950 limit: number;
7951 /** @minimum 0 */
7952 offset: number;
7953 total: number;
7954}
7955
7956export type PageNotificationDtoItemsItem = {
7957 /** @nullable */
7958 actor_id?: number | null;
7959 /** @nullable */
7960 body?: string | null;
7961 created_at: string;
7962 data?: null | Value;
7963 id: string;
7964 notification_type: NotificationType;
7965 /** @nullable */
7966 read_at?: string | null;
7967 title: string;
7968};
7969
7970export interface PageNotificationDto {
7971 items: PageNotificationDtoItemsItem[];
7972 /** @minimum 0 */
7973 limit: number;
7974 /** @minimum 0 */
7975 offset: number;
7976 total: number;
7977}
7978
7979export type PagePullCommentDtoItemsItem = {
7980 author?: null | UserDto;
7981 body: string;
7982 /** @nullable */
7983 commit_sha?: string | null;
7984 created_at: string;
7985 id: string;
7986 /** @nullable */
7987 line?: number | null;
7988 /** @nullable */
7989 parent_comment_id?: string | null;
7990 /** @nullable */
7991 path?: string | null;
7992 pull_request_id: string;
7993 resolved: boolean;
7994 /** @nullable */
7995 resolved_by?: number | null;
7996 /** @nullable */
7997 review_id?: string | null;
7998 /** @nullable */
7999 side?: string | null;
8000 /** @nullable */
8001 updated_at?: string | null;
8002};
8003
8004export interface PagePullCommentDto {
8005 items: PagePullCommentDtoItemsItem[];
8006 /** @minimum 0 */
8007 limit: number;
8008 /** @minimum 0 */
8009 offset: number;
8010 total: number;
8011}
8012
8013export type PagePullDtoItemsItem = {
8014 additions: number;
8015 author?: null | UserDto;
8016 auto_merge: boolean;
8017 base: PullRefDto;
8018 body: string;
8019 /** @nullable */
8020 closed_at?: string | null;
8021 /** @nullable */
8022 commits_ahead?: number | null;
8023 /** @nullable */
8024 commits_behind?: number | null;
8025 /** @nullable */
8026 conflicts?: string[] | null;
8027 created_at: string;
8028 deletions: number;
8029 files_changed: number;
8030 head: PullRefDto;
8031 id: string;
8032 is_draft: boolean;
8033 /** @nullable */
8034 issue_id?: string | null;
8035 locked: boolean;
8036 merge_method: MergeMethod;
8037 /** @nullable */
8038 mergeable?: boolean | null;
8039 /** @nullable */
8040 mergeable_state?: string | null;
8041 /** @nullable */
8042 merged_at?: string | null;
8043 /** @nullable */
8044 merged_commit_sha?: string | null;
8045 merger?: null | UserDto;
8046 number: number;
8047 repo_id: string;
8048 /** @nullable */
8049 squash_commit_sha?: string | null;
8050 state: PullState;
8051 title: string;
8052 /** @nullable */
8053 updated_at?: string | null;
8054};
8055
8056export interface PagePullDto {
8057 items: PagePullDtoItemsItem[];
8058 /** @minimum 0 */
8059 limit: number;
8060 /** @minimum 0 */
8061 offset: number;
8062 total: number;
8063}
8064
8065export type PagePullEventDtoItemsItem = {
8066 actor?: null | UserDto;
8067 /** @nullable */
8068 commit_sha?: string | null;
8069 /** @nullable */
8070 content?: string | null;
8071 created_at: string;
8072 event_type: string;
8073 id: string;
8074 pull_request_id: string;
8075};
8076
8077export interface PagePullEventDto {
8078 items: PagePullEventDtoItemsItem[];
8079 /** @minimum 0 */
8080 limit: number;
8081 /** @minimum 0 */
8082 offset: number;
8083 total: number;
8084}
8085
8086export type PageRepoSummaryDtoItemsItem = {
8087 /** @nullable */
8088 avatar_url?: string | null;
8089 default_branch: string;
8090 /** @nullable */
8091 description?: string | null;
8092 id: string;
8093 is_archived: boolean;
8094 is_private: boolean;
8095 /** @nullable */
8096 license_name?: string | null;
8097 name: string;
8098 /** @nullable */
8099 primary_language?: string | null;
8100 size: number;
8101 stars_count: number;
8102 updated_at: string;
8103 watchers_count: number;
8104};
8105
8106export interface PageRepoSummaryDto {
8107 items: PageRepoSummaryDtoItemsItem[];
8108 /** @minimum 0 */
8109 limit: number;
8110 /** @minimum 0 */
8111 offset: number;
8112 total: number;
8113}
8114
8115export type PageRoomBanDtoItemsItem = {
8116 banned_by?: null | UserDto;
8117 created_at: string;
8118 /** @nullable */
8119 expires_at?: string | null;
8120 /** @nullable */
8121 reason?: string | null;
8122 room_id: string;
8123 user?: null | UserDto;
8124};
8125
8126export interface PageRoomBanDto {
8127 items: PageRoomBanDtoItemsItem[];
8128 /** @minimum 0 */
8129 limit: number;
8130 /** @minimum 0 */
8131 offset: number;
8132 total: number;
8133}
8134
8135export type PageRoomBriefDtoItemsItem = {
8136 created_at: string;
8137 favorite: boolean;
8138 hidden: boolean;
8139 id: string;
8140 is_private: boolean;
8141 kind: RoomKind;
8142 /** @nullable */
8143 last_message_id?: string | null;
8144 member_count: number;
8145 muted: boolean;
8146 name: string;
8147 nsfw: boolean;
8148 owner?: null | UserDto;
8149 owner_id: number;
8150 /** @nullable */
8151 parent_id?: string | null;
8152 position: number;
8153 /** @nullable */
8154 rate_limit_per_user?: number | null;
8155 /** @nullable */
8156 space_id?: string | null;
8157 /** @nullable */
8158 topic?: string | null;
8159 unread_count: number;
8160 unread_mentions: number;
8161};
8162
8163export interface PageRoomBriefDto {
8164 items: PageRoomBriefDtoItemsItem[];
8165 /** @minimum 0 */
8166 limit: number;
8167 /** @minimum 0 */
8168 offset: number;
8169 total: number;
8170}
8171
8172export type PageRoomInviteListItemDtoItemsItem = {
8173 /** @nullable */
8174 accepted_at?: string | null;
8175 created_at: string;
8176 /** @nullable */
8177 expires_at?: string | null;
8178 id: string;
8179 invitee?: null | UserDto;
8180 /** @nullable */
8181 invitee_id?: number | null;
8182 inviter?: null | UserDto;
8183 inviter_id: number;
8184 /** @nullable */
8185 revoked_at?: string | null;
8186 room_id: string;
8187};
8188
8189export interface PageRoomInviteListItemDto {
8190 items: PageRoomInviteListItemDtoItemsItem[];
8191 /** @minimum 0 */
8192 limit: number;
8193 /** @minimum 0 */
8194 offset: number;
8195 total: number;
8196}
8197
8198export type PageSessionDtoItemsItem = {
8199 /** @nullable */
8200 client_ip_hash?: string | null;
8201 created_at: string;
8202 /** @nullable */
8203 device_id?: string | null;
8204 expires_at: string;
8205 id: string;
8206 is_current: boolean;
8207 is_revoked: boolean;
8208 kind: SessionKind;
8209 last_seen_at: string;
8210 /** @nullable */
8211 revoked_at?: string | null;
8212 /** @nullable */
8213 user_agent_hash?: string | null;
8214};
8215
8216export interface PageSessionDto {
8217 items: PageSessionDtoItemsItem[];
8218 /** @minimum 0 */
8219 limit: number;
8220 /** @minimum 0 */
8221 offset: number;
8222 total: number;
8223}
8224
8225export type PageSpaceDtoItemsItem = {
8226 allow_invite: boolean;
8227 allow_join: boolean;
8228 allow_join_level: AllowJoinLevel;
8229 /** @nullable */
8230 avatar_url?: string | null;
8231 created_at: string;
8232 /** @nullable */
8233 description?: string | null;
8234 id: string;
8235 is_active: boolean;
8236 is_private: boolean;
8237 lower_name: string;
8238 member_must_enable_2fa: boolean;
8239 members_count: number;
8240 name: string;
8241 owner?: null | UserDto;
8242 updated_at: string;
8243 /** @nullable */
8244 welcome_message?: string | null;
8245 /** @nullable */
8246 welcome_object?: string | null;
8247};
8248
8249export interface PageSpaceDto {
8250 items: PageSpaceDtoItemsItem[];
8251 /** @minimum 0 */
8252 limit: number;
8253 /** @minimum 0 */
8254 offset: number;
8255 total: number;
8256}
8257
8258export type PageTagDtoItemsItem = {
8259 /** @nullable */
8260 created_at?: string | null;
8261 /** @nullable */
8262 message?: string | null;
8263 name: string;
8264 tag_type: TagType;
8265 /** @nullable */
8266 tagger_email?: string | null;
8267 /** @nullable */
8268 tagger_name?: string | null;
8269 target_sha: string;
8270};
8271
8272export interface PageTagDto {
8273 items: PageTagDtoItemsItem[];
8274 /** @minimum 0 */
8275 limit: number;
8276 /** @minimum 0 */
8277 offset: number;
8278 total: number;
8279}
8280
8281export type PageThreadDtoItemsItem = {
8282 archived: boolean;
8283 created_at: string;
8284 id: string;
8285 /** @nullable */
8286 last_reply_at?: string | null;
8287 /** @nullable */
8288 last_reply_id?: string | null;
8289 locked: boolean;
8290 /** @nullable */
8291 name?: string | null;
8292 owner?: null | UserDto;
8293 owner_id: number;
8294 participant_count: number;
8295 reply_count: number;
8296 room_id: string;
8297 root_message_id: string;
8298 updated_at: string;
8299};
8300
8301export interface PageThreadDto {
8302 items: PageThreadDtoItemsItem[];
8303 /** @minimum 0 */
8304 limit: number;
8305 /** @minimum 0 */
8306 offset: number;
8307 total: number;
8308}
8309
8310export type PageWebhookDtoItemsItem = {
8311 created_at: string;
8312 disabled: boolean;
8313 id: string;
8314 /** @nullable */
8315 last_used_at?: string | null;
8316 name: string;
8317 room_id: string;
8318};
8319
8320export interface PageWebhookDto {
8321 items: PageWebhookDtoItemsItem[];
8322 /** @minimum 0 */
8323 limit: number;
8324 /** @minimum 0 */
8325 offset: number;
8326 total: number;
8327}
8328
8329export interface ParsedPatchDto {
8330 additions: number;
8331 deletions: number;
8332 files: string[];
8333}
8334
8335export interface PasswordResetConfirmRequest {
8336 password_hash: string;
8337 pow_payload: PowProofRequest;
8338 token: string;
8339}
8340
8341export interface PasswordResetConfirmResponse {
8342 user_id: number;
8343}
8344
8345export interface PasswordResetRequest {
8346 email: string;
8347 pow_payload: PowProofRequest;
8348}
8349
8350export interface PasswordResetResponse {
8351 /** @minimum 0 */
8352 expires_in_secs: number;
8353}
8354
8355export interface PatchApplyBody {
8356 base: string;
8357 patch: string;
8358}
8359
8360export interface PatchDto {
8361 content: string;
8362 size: number;
8363}
8364
8365export interface PathLastUpdated {
8366 commit_id: string;
8367 last_updated: number;
8368 object_type: number;
8369 path: string;
8370}
8371
8372export interface PathLogEntryDto {
8373 author: string;
8374 date: string;
8375 path: string;
8376 short_sha: string;
8377 subject: string;
8378}
8379
8380export interface PermissionCheck {
8381 allowed: boolean;
8382 matched_by: string;
8383 organization_version: number;
8384 reason: string;
8385}
8386
8387export interface PinCmd {
8388 pinned: boolean;
8389}
8390
8391export interface PinDto {
8392 board_id: string;
8393 created_at: string;
8394 id: string;
8395 /** @nullable */
8396 issue_id?: string | null;
8397 pin_order: number;
8398}
8399
8400export interface PinPath {
8401 board_id: string;
8402 pin_id: string;
8403 space_name: string;
8404}
8405
8406export interface PresenceDto {
8407 activities: unknown;
8408 /** @nullable */
8409 last_seen_at?: string | null;
8410 online: boolean;
8411 status: PresenceStatus;
8412 user?: null | UserDto;
8413 user_id: number;
8414}
8415
8416export interface ProfileDetailDto {
8417 /** @nullable */
8418 accent_color?: string | null;
8419 avatar_url: string;
8420 /** @nullable */
8421 banner_url?: string | null;
8422 /** @nullable */
8423 bio?: string | null;
8424 /** @nullable */
8425 company?: string | null;
8426 display_name: string;
8427 /** @nullable */
8428 location?: string | null;
8429 /** @nullable */
8430 pronouns?: string | null;
8431 /** @nullable */
8432 real_name?: string | null;
8433 /** @nullable */
8434 show_activity?: boolean | null;
8435 /** @nullable */
8436 show_email?: boolean | null;
8437 /** @nullable */
8438 show_location?: boolean | null;
8439 /** @nullable */
8440 show_real_name?: boolean | null;
8441 updated_at: string;
8442 user_id: number;
8443 username: string;
8444 visibility?: null | ProfileVisibility;
8445 /** @nullable */
8446 website?: string | null;
8447}
8448
8449export interface PruneResultDto {
8450 reachable: number;
8451 total: number;
8452 unreachable: number;
8453}
8454
8455export interface PullAssigneeDto {
8456 created_at: string;
8457 id: string;
8458 user?: null | UserDto;
8459}
8460
8461export interface PullChecksDto {
8462 head_sha: string;
8463 statuses: CommitStatusDto[];
8464}
8465
8466/**
8467 * 线程视图:顶层评论 + 其下全部回复(无递归,便于文档生成)。
8468 */
8469export interface PullCommentThreadDto {
8470 replies: PullCommentDto[];
8471 root: PullCommentDto;
8472}
8473
8474export interface PullEventDto {
8475 actor?: null | UserDto;
8476 /** @nullable */
8477 commit_sha?: string | null;
8478 /** @nullable */
8479 content?: string | null;
8480 created_at: string;
8481 event_type: string;
8482 id: string;
8483 pull_request_id: string;
8484}
8485
8486export interface PullGateDto {
8487 conflicts: string[];
8488 gate: MergeGateDto;
8489 head_sha: string;
8490 mergeable: boolean;
8491 pending_review_requests: number;
8492}
8493
8494export interface PullReviewDto {
8495 /** @minimum 0 */
8496 comment_count: number;
8497 commit_sha: string;
8498 /** @nullable */
8499 content?: string | null;
8500 created_at: string;
8501 id: string;
8502 official: boolean;
8503 pull_request_id: string;
8504 state: ReviewState;
8505 /** @nullable */
8506 updated_at?: string | null;
8507 user?: null | UserDto;
8508}
8509
8510export interface PullReviewerDto {
8511 created_at: string;
8512 id: string;
8513 requested_by?: null | UserDto;
8514 required: boolean;
8515 /** @nullable */
8516 review_id?: string | null;
8517 state: ReviewerState;
8518 /** @nullable */
8519 updated_at?: string | null;
8520 user?: null | UserDto;
8521}
8522
8523/**
8524 * 前端注册 Service Worker 所需的公开参数。
8525 *
8526 * 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
8527 * 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
8528 * 而不是让用户点了才发现服务端没开。
8529 */
8530export interface PushConfigDto {
8531 enabled: boolean;
8532 public_key: string;
8533}
8534
8535export interface PushResultDto {
8536 pushed: string[];
8537 rejected: string[];
8538}
8539
8540export interface PushSubscriptionDto {
8541 created_at: string;
8542 endpoint: string;
8543 id: string;
8544 platform: PushSubscriptionPlatform;
8545 /** @nullable */
8546 updated_at?: string | null;
8547 /** @nullable */
8548 user_agent?: string | null;
8549}
8550
8551export interface RawDownloadDto {
8552 id: string;
8553 is_lfs_pointer: boolean;
8554 size: number;
8555}
8556
8557export interface ReactionCmd {
8558 emoji: string;
8559}
8560
8561export interface ReactionDto {
8562 created_at: string;
8563 emoji: string;
8564 id: string;
8565 scope: ReactionScope;
8566 target_id: string;
8567 user?: null | UserDto;
8568}
8569
8570export interface ReactionPath {
8571 board_id: string;
8572 issue_id: string;
8573 reaction_id: string;
8574 space_name: string;
8575}
8576
8577export interface ReactionUserDto {
8578 created_at: string;
8579 emoji: string;
8580 user: UserDto;
8581}
8582
8583export interface ReasonBody {
8584 /** @nullable */
8585 reason?: string | null;
8586}
8587
8588export interface RecentMentionDto {
8589 channel_id: string;
8590 created_at: string;
8591 id: string;
8592 message_id: string;
8593}
8594
8595export interface RecoveryCodesResp {
8596 codes: string[];
8597 /** @minimum 0 */
8598 total: number;
8599 /** @minimum 0 */
8600 used: number;
8601}
8602
8603export interface RedeemInviteBody {
8604 token: string;
8605}
8606
8607export interface RedeemInviteResponse {
8608 joined: boolean;
8609 member_id: string;
8610 organization_id: string;
8611}
8612
8613export interface RegenerateRecoveryCodesCmd {
8614 password: string;
8615}
8616
8617export interface RegisterCodeRequest {
8618 email: string;
8619 pow_payload: PowProofRequest;
8620}
8621
8622export interface RegisterCodeResponse {
8623 /** @minimum 0 */
8624 expires_in_secs: number;
8625}
8626
8627export interface ReleaseDto {
8628 /** @nullable */
8629 content?: string | null;
8630 created_at: string;
8631 id: string;
8632 is_draft: boolean;
8633 is_prerelease: boolean;
8634 num_commits: number;
8635 publisher?: null | UserDto;
8636 publisher_name: string;
8637 repo_id: string;
8638 sha: string;
8639 tag_name: string;
8640 target: string;
8641 title: string;
8642 updated_at: string;
8643}
8644
8645export interface ReminderDto {
8646 created_at: string;
8647 id: string;
8648 message_id: string;
8649 /** @nullable */
8650 message_preview?: string | null;
8651 /** @nullable */
8652 note?: string | null;
8653 remind_at: string;
8654 room_id: string;
8655 status: ReminderStatus;
8656}
8657
8658export interface RemoteAddBody {
8659 url: string;
8660}
8661
8662export interface RemoteAuthDto {
8663 /** @nullable */
8664 token?: string | null;
8665 /** @nullable */
8666 username?: string | null;
8667}
8668
8669export interface RemoteDto {
8670 /** @nullable */
8671 fetch_url?: string | null;
8672 name: string;
8673 /** @nullable */
8674 push_url?: string | null;
8675}
8676
8677export interface RemoteFetchBody {
8678 auth?: null | RemoteAuthDto;
8679 remote: string;
8680}
8681
8682export interface RemoteImportBody {
8683 auth?: null | RemoteAuthDto;
8684 url: string;
8685}
8686
8687export interface RemotePushBody {
8688 auth?: null | RemoteAuthDto;
8689 /** @nullable */
8690 refspec?: string | null;
8691 remote: string;
8692}
8693
8694export interface RenameBranchCmd {
8695 new_name: string;
8696}
8697
8698export interface RepairDirResp {
8699 fixed: number;
8700 scanned: number;
8701}
8702
8703export interface RepoDto {
8704 /** 是否允许在本仓库创建合并请求(关闭后页签隐藏、接口拒绝)。 */
8705 allow_pull_requests: boolean;
8706 /** @nullable */
8707 archived_at?: string | null;
8708 /** @nullable */
8709 avatar_url?: string | null;
8710 branches_count: number;
8711 commits_count: number;
8712 created_at: string;
8713 default_branch: string;
8714 /** @nullable */
8715 description?: string | null;
8716 enable_lfs: boolean;
8717 git_size: number;
8718 /** @nullable */
8719 http_clone_url?: string | null;
8720 id: string;
8721 is_archived: boolean;
8722 is_private: boolean;
8723 /** @nullable */
8724 last_pushed_at?: string | null;
8725 lfs_size: number;
8726 /** @nullable */
8727 license_name?: string | null;
8728 me?: null | RepoMeDto;
8729 name: string;
8730 object_format: string;
8731 /** @nullable */
8732 primary_language?: string | null;
8733 pulls_count: number;
8734 size: number;
8735 /** @nullable */
8736 ssh_clone_url?: string | null;
8737 stars_count: number;
8738 /** @nullable */
8739 storage_limit_size?: number | null;
8740 /** 中间页签顺序;空数组 = 默认顺序。 */
8741 tab_order: string[];
8742 tags_count: number;
8743 updated_at: string;
8744 watchers_count: number;
8745 /** @nullable */
8746 website?: string | null;
8747}
8748
8749export interface RepoRelDto {
8750 created_at: string;
8751 id: string;
8752 issue_id: string;
8753 repo_id: string;
8754}
8755
8756export interface RepoRelPath {
8757 board_id: string;
8758 issue_id: string;
8759 rel_id: string;
8760 space_name: string;
8761}
8762
8763export interface RepoStarDto {
8764 created_at: string;
8765 repo_id: string;
8766 user_id: number;
8767}
8768
8769export interface RepoStarResp {
8770 stars: number;
8771}
8772
8773export interface RepoSummaryDto {
8774 /** @nullable */
8775 avatar_url?: string | null;
8776 default_branch: string;
8777 /** @nullable */
8778 description?: string | null;
8779 id: string;
8780 is_archived: boolean;
8781 is_private: boolean;
8782 /** @nullable */
8783 license_name?: string | null;
8784 name: string;
8785 /** @nullable */
8786 primary_language?: string | null;
8787 size: number;
8788 stars_count: number;
8789 updated_at: string;
8790 watchers_count: number;
8791}
8792
8793export interface RepoWatchDto {
8794 created_at: string;
8795 mode: WatchMode;
8796 repo_id: string;
8797 updated_at: string;
8798 user_id: number;
8799}
8800
8801export interface ReportDto {
8802 created_at: string;
8803 /** @nullable */
8804 evidence?: string | null;
8805 id: string;
8806 reason: string;
8807 reported_id: number;
8808 status: ReportStatus;
8809}
8810
8811export interface RequestReviewersCmd {
8812 /** 是否计入必需审批人数。 */
8813 required?: boolean;
8814 /** 用户名或 UUID。 */
8815 reviewers: string[];
8816}
8817
8818export type ReviewIntent =
8819 "approve" | "request_changes" | "comment" | "pending";
8820export interface RoleSummary {
8821 /** @nullable */
8822 color?: string | null;
8823 created_at: string;
8824 default_role: boolean;
8825 /** @nullable */
8826 description?: string | null;
8827 /** @nullable */
8828 emoji?: string | null;
8829 /** @nullable */
8830 icon_hash?: string | null;
8831 id: string;
8832 key: string;
8833 member_count: number;
8834 name: string;
8835 organization_id: string;
8836 permissions: PermissionGrant[];
8837 position: number;
8838 rank: number;
8839 self_assignable: boolean;
8840 system: boolean;
8841 updated_at: string;
8842 version: number;
8843}
8844
8845export interface RoomBanDto {
8846 banned_by?: null | UserDto;
8847 created_at: string;
8848 /** @nullable */
8849 expires_at?: string | null;
8850 /** @nullable */
8851 reason?: string | null;
8852 room_id: string;
8853 user?: null | UserDto;
8854}
8855
8856export interface RoomBriefDto {
8857 created_at: string;
8858 favorite: boolean;
8859 hidden: boolean;
8860 id: string;
8861 is_private: boolean;
8862 kind: RoomKind;
8863 /** @nullable */
8864 last_message_id?: string | null;
8865 member_count: number;
8866 muted: boolean;
8867 name: string;
8868 nsfw: boolean;
8869 owner?: null | UserDto;
8870 owner_id: number;
8871 /** @nullable */
8872 parent_id?: string | null;
8873 position: number;
8874 /** @nullable */
8875 rate_limit_per_user?: number | null;
8876 /** @nullable */
8877 space_id?: string | null;
8878 /** @nullable */
8879 topic?: string | null;
8880 unread_count: number;
8881 unread_mentions: number;
8882}
8883
8884export interface RoomDto {
8885 created_at: string;
8886 id: string;
8887 is_active: boolean;
8888 is_private: boolean;
8889 kind: RoomKind;
8890 name: string;
8891 nsfw: boolean;
8892 owner_id: number;
8893 /** @nullable */
8894 parent_id?: string | null;
8895 position: number;
8896 /** @nullable */
8897 rate_limit_per_user?: number | null;
8898 /** @nullable */
8899 space_id?: string | null;
8900 /** @nullable */
8901 topic?: string | null;
8902 updated_at: string;
8903 /** @nullable */
8904 user_limit?: number | null;
8905}
8906
8907export interface RoomInviteDto {
8908 accept_code: string;
8909 created_at: string;
8910 /** @nullable */
8911 expires_at?: string | null;
8912 id: string;
8913 invitee?: null | UserDto;
8914 /** @nullable */
8915 invitee_id?: number | null;
8916 inviter?: null | UserDto;
8917 inviter_id: number;
8918 room_id: string;
8919}
8920
8921export interface RoomInviteListItemDto {
8922 /** @nullable */
8923 accepted_at?: string | null;
8924 created_at: string;
8925 /** @nullable */
8926 expires_at?: string | null;
8927 id: string;
8928 invitee?: null | UserDto;
8929 /** @nullable */
8930 invitee_id?: number | null;
8931 inviter?: null | UserDto;
8932 inviter_id: number;
8933 /** @nullable */
8934 revoked_at?: string | null;
8935 room_id: string;
8936}
8937
8938export interface RoomMemberDto {
8939 joined_at: string;
8940 /** @nullable */
8941 nick?: string | null;
8942 role: RoomMemberRole;
8943 user: UserDto;
8944}
8945
8946export interface RoomMemberQuery {
8947 /**
8948 * @minimum 0
8949 * @nullable
8950 */
8951 limit?: number | null;
8952 /**
8953 * @minimum 0
8954 * @nullable
8955 */
8956 offset?: number | null;
8957}
8958
8959export interface RoomSettingDto {
8960 favorite: boolean;
8961 hidden: boolean;
8962 /** @nullable */
8963 mute_until?: string | null;
8964 muted: boolean;
8965 notification_level: RoomNotificationLevel;
8966 room_id: string;
8967}
8968
8969export interface SaveMessageCmd {
8970 channel_id: string;
8971 message_id: string;
8972}
8973
8974export interface SavedMessageDto {
8975 channel_id: string;
8976 id: string;
8977 message_id: string;
8978 saved_at: string;
8979}
8980
8981export interface ScriptOutputDto {
8982 exit_code: number;
8983 stderr: string;
8984 stdout: string;
8985}
8986
8987export interface SendMessageCmd {
8988 attachments?: string[];
8989 content?: string;
8990 /** @nullable */
8991 forwarded_from?: string | null;
8992 /**
8993 * client-generated idempotency key, unique per room; retrying with the
8994 * same nonce returns the original message instead of duplicating
8995 * @nullable
8996 */
8997 nonce?: string | null;
8998 /** @nullable */
8999 reply_to_id?: string | null;
9000 thread_broadcast?: boolean;
9001 /** @nullable */
9002 thread_id?: string | null;
9003 urgent?: boolean;
9004}
9005
9006export interface SessionDto {
9007 /** @nullable */
9008 client_ip_hash?: string | null;
9009 created_at: string;
9010 /** @nullable */
9011 device_id?: string | null;
9012 expires_at: string;
9013 id: string;
9014 is_current: boolean;
9015 is_revoked: boolean;
9016 kind: SessionKind;
9017 last_seen_at: string;
9018 /** @nullable */
9019 revoked_at?: string | null;
9020 /** @nullable */
9021 user_agent_hash?: string | null;
9022}
9023
9024export interface SetCleanupVisibilityCmd {
9025 is_private: boolean;
9026}
9027
9028export interface SetCommitStatusCmd {
9029 context: string;
9030 /** @nullable */
9031 description?: string | null;
9032 sha: string;
9033 state: CommitStatusDtoState;
9034 /** @nullable */
9035 target_url?: string | null;
9036}
9037
9038export interface SetMemberRoleBody {
9039 expected_version?: number;
9040 role: SpaceMemberRole;
9041}
9042
9043export interface SetOverwriteCmd {
9044 allow_mask: number;
9045 deny_mask: number;
9046}
9047
9048export interface SetPresenceCmd {
9049 activities?: unknown;
9050 status: PresenceStatus;
9051}
9052
9053export interface SetRepoArchivedCmd {
9054 archived: boolean;
9055}
9056
9057export interface SetRolePermissionsBody {
9058 permissions?: PermissionGrant[];
9059}
9060
9061export interface SpaceImageDto {
9062 /** @minimum 0 */
9063 bytes: number;
9064 format: AvatarFormat;
9065 /** @nullable */
9066 height?: number | null;
9067 kind: SpaceImageKind;
9068 space_id: string;
9069 updated_at: string;
9070 url: string;
9071 /** @nullable */
9072 width?: number | null;
9073}
9074
9075/**
9076 * Banner geometry is recorded, not inferred: the browser knows the intrinsic
9077 * size for free, the server would have to decode the image to learn it.
9078 */
9079export interface SpaceImageUploadQuery {
9080 /** @nullable */
9081 height?: number | null;
9082 /** @nullable */
9083 width?: number | null;
9084}
9085
9086export interface SpaceInvitePath {
9087 invite_id: string;
9088 space_name: string;
9089}
9090
9091export interface SpaceMemberPath {
9092 member_id: string;
9093 space_name: string;
9094}
9095
9096export interface SpacePath {
9097 space_name: string;
9098}
9099
9100export interface SpaceReadStatePage {
9101 items: ReadStateDto[];
9102}
9103
9104export interface SpaceRolePath {
9105 role_id: string;
9106 space_name: string;
9107}
9108
9109export interface SshKeyAddRequest {
9110 /** @nullable */
9111 description?: string | null;
9112 /** @nullable */
9113 expires_at?: string | null;
9114 name: string;
9115 public_key: string;
9116}
9117
9118export interface SshKeySummary {
9119 algorithm: SshKeyAlgorithm;
9120 created_at: string;
9121 /** @nullable */
9122 description?: string | null;
9123 /** @nullable */
9124 expires_at?: string | null;
9125 fingerprint: string;
9126 id: string;
9127 /** @nullable */
9128 last_used_at?: string | null;
9129 name: string;
9130 public_key: string;
9131 /** @nullable */
9132 revoked_at?: string | null;
9133}
9134
9135export interface StargazerDto {
9136 avatar_url: string;
9137 display_name: string;
9138 starred_at: string;
9139 user_id: number;
9140 username: string;
9141}
9142
9143export interface StopwatchDto {
9144 /** @nullable */
9145 created_at?: string | null;
9146 /** @nullable */
9147 id?: string | null;
9148 issue_id: string;
9149 running: boolean;
9150 /** @nullable */
9151 started_at?: string | null;
9152 user?: null | UserDto;
9153}
9154
9155export interface StopwatchPath {
9156 board_id: string;
9157 issue_id: string;
9158 space_name: string;
9159}
9160
9161export interface SubmitReviewCmd {
9162 /** @nullable */
9163 body?: string | null;
9164 comments?: InlineDraft[];
9165 state: ReviewIntent;
9166}
9167
9168export interface SubmoduleDto {
9169 /** @nullable */
9170 branch?: string | null;
9171 /** @nullable */
9172 commit_sha?: string | null;
9173 path: string;
9174 url: string;
9175}
9176
9177export interface SuspensionDto {
9178 created_at: string;
9179 /** @nullable */
9180 ends_at?: string | null;
9181 id: string;
9182 /** @nullable */
9183 reason?: string | null;
9184 /** @nullable */
9185 revoked_at?: string | null;
9186 starts_at: string;
9187 suspension_type: SuspensionType;
9188}
9189
9190export interface TagDto {
9191 /** @nullable */
9192 created_at?: string | null;
9193 /** @nullable */
9194 message?: string | null;
9195 name: string;
9196 tag_type: TagType;
9197 /** @nullable */
9198 tagger_email?: string | null;
9199 /** @nullable */
9200 tagger_name?: string | null;
9201 target_sha: string;
9202}
9203
9204export interface TagPolicyDto {
9205 created_at: string;
9206 id: string;
9207 name_pattern: string;
9208 repo_id: string;
9209 updated_at: string;
9210}
9211
9212export interface TagWhitelistDto {
9213 policy_id: string;
9214 user?: null | UserDto;
9215 user_id: number;
9216}
9217
9218export type ThreadNotifyLevel = "None" | "All";
9219export interface ThreadMemberCmd {
9220 notify_level?: null | ThreadNotifyLevel;
9221}
9222
9223export interface TopicDto {
9224 created_at: string;
9225 id: string;
9226 name: string;
9227 updated_at: string;
9228}
9229
9230export interface TopicRepoDto {
9231 is_private: boolean;
9232 repo_id: string;
9233 repo_name: string;
9234 space_name: string;
9235}
9236
9237export interface TotpCodeCmd {
9238 code: string;
9239}
9240
9241export interface TotpEnableCmd {
9242 code: string;
9243 password: string;
9244}
9245
9246export interface TotpSetupResp {
9247 otpauth_uri: string;
9248 secret: string;
9249}
9250
9251export interface TotpStatusResp {
9252 enabled: boolean;
9253}
9254
9255export interface TrackedTimeDto {
9256 created_at: string;
9257 id: string;
9258 issue_id: string;
9259 seconds: number;
9260 user?: null | UserDto;
9261}
9262
9263export interface TrackedTimeIdPath {
9264 board_id: string;
9265 issue_id: string;
9266 space_name: string;
9267 time_id: string;
9268}
9269
9270export interface TrackedTimePath {
9271 board_id: string;
9272 issue_id: string;
9273 space_name: string;
9274}
9275
9276export interface TransferBody {
9277 target_user_id: number;
9278}
9279
9280export interface TransferOwnerCmd {
9281 user_id: number;
9282}
9283
9284export type TreeView = "entries" | "last_updated";
9285export interface UnreadCountResp {
9286 /** @minimum 0 */
9287 count: number;
9288}
9289
9290/**
9291 * 封禁更新:原因、到期时间与四个放行位。缺失表示不变,null 表示清空。
9292 */
9293export interface UpdateBanBody {
9294 /** @nullable */
9295 allow_agent_join?: boolean | null;
9296 /** @nullable */
9297 allow_comment_any?: boolean | null;
9298 /** @nullable */
9299 allow_push_repo?: boolean | null;
9300 /** @nullable */
9301 allow_speak?: boolean | null;
9302 /** @nullable */
9303 expires_at?: string | null;
9304 /** @nullable */
9305 reason?: string | null;
9306}
9307
9308export interface UpdateBoardCmd {
9309 /** @nullable */
9310 description?: string | null;
9311 /** @nullable */
9312 icon?: string | null;
9313 /** @nullable */
9314 name?: string | null;
9315 /** @nullable */
9316 prefix?: string | null;
9317}
9318
9319export interface UpdateBookmarkCmd {
9320 /** @nullable */
9321 emoji?: string | null;
9322 /** @nullable */
9323 position?: number | null;
9324 /** @nullable */
9325 title?: string | null;
9326 /** @nullable */
9327 url?: string | null;
9328}
9329
9330export interface UpdateBranchDto {
9331 pull: PullDto;
9332 result: MergeResultDto;
9333}
9334
9335/**
9336 * 分支保护策略的更新请求(三态字段语义与其它 PATCH 一致)。
9337 */
9338export interface UpdateBranchPolicyCmd {
9339 /** @nullable */
9340 block_on_change_requested_reviews?: boolean | null;
9341 /** @nullable */
9342 block_on_outdated_branch?: boolean | null;
9343 /** @nullable */
9344 block_on_rejected_reviews?: boolean | null;
9345 /** @nullable */
9346 branch_pattern?: string | null;
9347 /** @nullable */
9348 dismiss_stale_approvals?: boolean | null;
9349 /** @nullable */
9350 enable_approvals_whitelist?: boolean | null;
9351 /** @nullable */
9352 enable_force_push?: boolean | null;
9353 /** @nullable */
9354 enable_merge_whitelist?: boolean | null;
9355 /** @nullable */
9356 enable_push?: boolean | null;
9357 /** @nullable */
9358 enable_push_whitelist?: boolean | null;
9359 /** @nullable */
9360 protected_file_patterns?: string | null;
9361 /** @nullable */
9362 require_signed_commits?: boolean | null;
9363 /** @nullable */
9364 required_approvals?: number | null;
9365 /** @nullable */
9366 required_status_contexts?: string | null;
9367 /** @nullable */
9368 unprotected_file_patterns?: string | null;
9369}
9370
9371export interface UpdateCodeCommentCmd {
9372 body: string;
9373}
9374
9375export interface UpdateCommentCmd {
9376 content: string;
9377}
9378
9379export interface UpdateDirCmd {
9380 name: string;
9381}
9382
9383export interface UpdateGroupCmd {
9384 /** @nullable */
9385 color?: string | null;
9386 /** @nullable */
9387 icon_hash?: string | null;
9388 /** @nullable */
9389 name?: string | null;
9390 /** @nullable */
9391 permissions?: string[] | null;
9392 /** @nullable */
9393 position?: number | null;
9394 /** @nullable */
9395 unicode_emoji?: string | null;
9396}
9397
9398export interface UpdateIssueCmd {
9399 /** @nullable */
9400 assignee_ids?: number[] | null;
9401 /** @nullable */
9402 content?: string | null;
9403 /** @nullable */
9404 description?: string | null;
9405 /** @nullable */
9406 due_at?: string | null;
9407 /** @nullable */
9408 label_ids?: string[] | null;
9409 /** @nullable */
9410 milestone_id?: string | null;
9411 priority?: null | IssuePriority;
9412 /** @nullable */
9413 title?: string | null;
9414}
9415
9416export interface UpdateIssueUserCmd {
9417 /** @nullable */
9418 is_read?: boolean | null;
9419}
9420
9421export interface UpdateJoinRuleCmd {
9422 /** @nullable */
9423 enabled?: boolean | null;
9424 /** @nullable */
9425 matcher?: string | null;
9426}
9427
9428export interface UpdateLabelCmd {
9429 /** @nullable */
9430 color?: string | null;
9431 /** @nullable */
9432 description?: string | null;
9433 /** @nullable */
9434 exclusive?: boolean | null;
9435 /** @nullable */
9436 exclusive_order?: number | null;
9437 /** @nullable */
9438 is_archived?: boolean | null;
9439 /** @nullable */
9440 name?: string | null;
9441}
9442
9443/**
9444 * 会籍更新:管理端可改别名、通知偏好、免打扰与封禁附加信息。
9445 * 所有字段缺失表示不变,显式 null 表示清空(仅限 Option 字段)。
9446 */
9447export interface UpdateMemberBody {
9448 /** @nullable */
9449 alias_avatar_url?: string | null;
9450 /** @nullable */
9451 alias_name?: string | null;
9452 expected_version?: number;
9453 /** @nullable */
9454 hide_muted_channels?: boolean | null;
9455 message_notifications?: null | MessageNotifications;
9456 /** @nullable */
9457 mobile_push?: boolean | null;
9458 /** @nullable */
9459 mute_until?: string | null;
9460 /** @nullable */
9461 muted?: boolean | null;
9462 /** @nullable */
9463 suppress_everyone?: boolean | null;
9464 /** @nullable */
9465 suppress_roles?: boolean | null;
9466}
9467
9468export interface UpdateMessageCmd {
9469 content: string;
9470}
9471
9472export interface UpdateMilestoneCmd {
9473 /** @nullable */
9474 description?: string | null;
9475 /** @nullable */
9476 due_at?: string | null;
9477 /** @nullable */
9478 is_closed?: boolean | null;
9479 /** @nullable */
9480 name?: string | null;
9481}
9482
9483export interface UpdateOrganizationBody {
9484 /** @nullable */
9485 allow_invite?: boolean | null;
9486 /** @nullable */
9487 allow_join?: boolean | null;
9488 /** @nullable */
9489 allow_join_level?: number | null;
9490 /** @nullable */
9491 avatar_url?: string | null;
9492 /** @nullable */
9493 description?: string | null;
9494 expected_version?: number;
9495 join_policy?: null | SpaceJoinPolicy;
9496 /** @nullable */
9497 member_must_enable_2fa?: boolean | null;
9498 /** @nullable */
9499 name?: string | null;
9500 /** @nullable */
9501 require_email_verified?: boolean | null;
9502 /** @nullable */
9503 require_mfa?: boolean | null;
9504 /** @nullable */
9505 welcome_message?: string | null;
9506}
9507
9508export interface UpdateOutboundWebhookCmd {
9509 /** @nullable */
9510 disabled?: boolean | null;
9511 /** @nullable */
9512 name?: string | null;
9513 /** @nullable */
9514 url?: string | null;
9515}
9516
9517export interface UpdatePinCmd {
9518 pin_order: number;
9519}
9520
9521export interface UpdatePreferencesCmd {
9522 allow_dms_from?: null | Audience;
9523 allow_mentions_from?: null | Audience;
9524 /** @nullable */
9525 board_view_mode?: string | null;
9526 /** @nullable */
9527 diff_view_style?: string | null;
9528 /** @nullable */
9529 email_digest?: boolean | null;
9530 /** @nullable */
9531 email_flags?: number | null;
9532 /** @nullable */
9533 in_app_flags?: number | null;
9534 /**
9535 * 三态:缺省不动、`null` 清除、给值设置(与 `lib/webapi/src/openapi.rs`
9536 * 声明的 PATCH 语义一致)。
9537 * @nullable
9538 */
9539 mute_until?: string | null;
9540 /** @nullable */
9541 push_flags?: number | null;
9542 /** @nullable */
9543 show_online_status?: boolean | null;
9544 /** @nullable */
9545 theme_mode?: string | null;
9546}
9547
9548export interface UpdateProfileCmd {
9549 /** @nullable */
9550 bio?: string | null;
9551 /** @nullable */
9552 company?: string | null;
9553 /** @nullable */
9554 date_of_birth?: string | null;
9555 /** @nullable */
9556 display_name?: string | null;
9557 /** @nullable */
9558 language?: string | null;
9559 /** @nullable */
9560 locale?: string | null;
9561 /** @nullable */
9562 location?: string | null;
9563 /** @nullable */
9564 pronouns?: string | null;
9565 /** @nullable */
9566 real_name?: string | null;
9567 /** @nullable */
9568 show_activity?: boolean | null;
9569 /** @nullable */
9570 show_email?: boolean | null;
9571 /** @nullable */
9572 show_location?: boolean | null;
9573 /** @nullable */
9574 show_real_name?: boolean | null;
9575 /** @nullable */
9576 timezone?: string | null;
9577 visibility?: null | ProfileVisibility;
9578 /** @nullable */
9579 website?: string | null;
9580}
9581
9582export interface UpdatePullCmd {
9583 /** @nullable */
9584 auto_merge?: boolean | null;
9585 /** @nullable */
9586 base_branch?: string | null;
9587 /** @nullable */
9588 body?: string | null;
9589 /** @nullable */
9590 draft?: boolean | null;
9591 /** @nullable */
9592 issue_id?: string | null;
9593 /** @nullable */
9594 title?: string | null;
9595}
9596
9597export interface UpdatePullCommentCmd {
9598 body: string;
9599}
9600
9601export interface UpdateRefResultDto {
9602 name: string;
9603 new_oid: string;
9604 /** @nullable */
9605 old_oid?: string | null;
9606 protected: boolean;
9607}
9608
9609export interface UpdateReleaseCmd {
9610 /** @nullable */
9611 content?: string | null;
9612 /** @nullable */
9613 is_draft?: boolean | null;
9614 /** @nullable */
9615 is_prerelease?: boolean | null;
9616 /** @nullable */
9617 title?: string | null;
9618}
9619
9620export interface UpdateReminderCmd {
9621 /** @nullable */
9622 note?: string | null;
9623 /** @nullable */
9624 remind_at?: string | null;
9625}
9626
9627export interface UpdateRepoCmd {
9628 /** @nullable */
9629 allow_pull_requests?: boolean | null;
9630 /** @nullable */
9631 default_branch?: string | null;
9632 /** @nullable */
9633 description?: string | null;
9634 /** @nullable */
9635 enable_lfs?: boolean | null;
9636 /** @nullable */
9637 is_private?: boolean | null;
9638 /**
9639 * 中间页签顺序;传空数组恢复默认顺序。
9640 * @nullable
9641 */
9642 tab_order?: string[] | null;
9643 /** @nullable */
9644 website?: string | null;
9645}
9646
9647export interface UpdateRoleBody {
9648 /** @nullable */
9649 default_role?: boolean | null;
9650 /** @nullable */
9651 description?: string | null;
9652 expected_version?: number;
9653 /** @nullable */
9654 name?: string | null;
9655 /** @nullable */
9656 rank?: number | null;
9657 /** @nullable */
9658 self_assignable?: boolean | null;
9659}
9660
9661export interface UpdateRoomCmd {
9662 /** @nullable */
9663 is_private?: boolean | null;
9664 /** @nullable */
9665 name?: string | null;
9666 /** @nullable */
9667 nsfw?: boolean | null;
9668 /**
9669 * Move the room under another directory node of the same space; `null` puts
9670 * it back at the space root. Absent means "leave the parent alone".
9671 * @nullable
9672 */
9673 parent_id?: string | null;
9674 /** @nullable */
9675 position?: number | null;
9676 /** @nullable */
9677 rate_limit_per_user?: number | null;
9678 /** @nullable */
9679 topic?: string | null;
9680}
9681
9682export interface UpdateRoomMemberCmd {
9683 /** @nullable */
9684 nick?: string | null;
9685 role?: null | RoomMemberRole;
9686}
9687
9688export interface UpdateRoomSettingCmd {
9689 /** @nullable */
9690 favorite?: boolean | null;
9691 /** @nullable */
9692 hidden?: boolean | null;
9693 /** @nullable */
9694 mute_minutes?: number | null;
9695 /** @nullable */
9696 muted?: boolean | null;
9697 notification_level?: null | RoomNotificationLevel;
9698}
9699
9700export interface UpdateTagPolicyCmd {
9701 /** @nullable */
9702 name_pattern?: string | null;
9703}
9704
9705export interface UpdateThreadCmd {
9706 /** @nullable */
9707 archived?: boolean | null;
9708 /** @nullable */
9709 locked?: boolean | null;
9710 /** @nullable */
9711 name?: string | null;
9712}
9713
9714export interface UpdateTrackedTimeCmd {
9715 seconds: number;
9716}
9717
9718export interface UpdateUsernameCmd {
9719 username: string;
9720}
9721
9722export interface UpdateWebhookCmd {
9723 /** @nullable */
9724 disabled?: boolean | null;
9725 /** @nullable */
9726 name?: string | null;
9727}
9728
9729export interface UploadEmojiCmd {
9730 animated?: boolean;
9731 content_type: string;
9732 data_base64: string;
9733 name: string;
9734}
9735
9736export interface UploadIntentDto {
9737 /** @minimum 0 */
9738 expires_secs: number;
9739 id: string;
9740 upload_url: string;
9741}
9742
9743export interface UpsertDraftCmd {
9744 content: string;
9745 /** @nullable */
9746 thread_id?: string | null;
9747}
9748
9749export interface UpsertLicenseCmd {
9750 body: string;
9751 /** @nullable */
9752 description?: string | null;
9753 display_name: string;
9754 /** @nullable */
9755 url?: string | null;
9756}
9757
9758export interface UpsertMemeCmd {
9759 content_type: string;
9760 /** @nullable */
9761 height?: number | null;
9762 name: string;
9763 size: number;
9764 url: string;
9765 /** @nullable */
9766 width?: number | null;
9767}
9768
9769export interface UpsertPushCmd {
9770 auth_key: string;
9771 endpoint: string;
9772 p256dh_key: string;
9773 platform: PushSubscriptionPlatform;
9774 /** @nullable */
9775 user_agent?: string | null;
9776}
9777
9778export interface UpsertWatchCmd {
9779 mode: WatchMode;
9780}
9781
9782export interface UserLoginRequest {
9783 identity: string;
9784 password_hash: string;
9785 pow_payload: PowProofRequest;
9786}
9787
9788export interface UserLoginResponse {
9789 /** @nullable */
9790 challenge?: string | null;
9791 /** @nullable */
9792 displayname?: string | null;
9793 mfa_required: boolean;
9794 user_id: number;
9795 username: string;
9796}
9797
9798export interface UserOverwriteDto {
9799 allow_mask: number;
9800 deny_mask: number;
9801 dir_id: string;
9802 user?: null | UserDto;
9803 user_id: number;
9804}
9805
9806export interface UserPreferencesDto {
9807 allow_dms_from: Audience;
9808 allow_mentions_from: Audience;
9809 /** Default view for the 问题集 page: `board` or `list`. */
9810 board_view_mode: string;
9811 /** @nullable */
9812 diff_view_style?: string | null;
9813 email_digest: boolean;
9814 email_flags: number;
9815 in_app_flags: number;
9816 /** @nullable */
9817 mute_until?: string | null;
9818 push_flags: number;
9819 show_online_status: boolean;
9820 theme_mode: string;
9821}
9822
9823export interface UserPublic {
9824 avatar_url: string;
9825 display_name: string;
9826 user_id: number;
9827 username: string;
9828}
9829
9830export interface UserRegisterRequest {
9831 birth_date: string;
9832 /** @nullable */
9833 displayname?: string | null;
9834 email: string;
9835 email_code: string;
9836 password_hash: string;
9837 pow_payload: PowProofRequest;
9838 username: string;
9839}
9840
9841export interface UserRegisterResponse {
9842 /** @nullable */
9843 displayname?: string | null;
9844 user_id: number;
9845 username: string;
9846}
9847
9848export interface UserReportDto {
9849 created_at: string;
9850 /** @nullable */
9851 evidence?: string | null;
9852 id: string;
9853 reason: string;
9854 reported_id: number;
9855 /** @nullable */
9856 resolution_note?: string | null;
9857 status: ReportStatus;
9858 updated_at: string;
9859}
9860
9861export interface VerifyResultDto {
9862 /** @nullable */
9863 error_message?: string | null;
9864 /** @nullable */
9865 key_id?: string | null;
9866 signed: boolean;
9867 /** @nullable */
9868 signer?: string | null;
9869 valid: boolean;
9870}
9871
9872export interface VoiceConfigDto {
9873 enabled: boolean;
9874 recording_enabled: boolean;
9875 url: string;
9876}
9877
9878export interface VoiceHandsDto {
9879 can_moderate: boolean;
9880 hands: HandDto[];
9881 my_state?: null | HandState;
9882}
9883
9884/**
9885 * key 为参与者用户 id。
9886 */
9887export type VoiceLayoutDtoTiles = { [key: string]: VoiceTileDto };
9888
9889export interface VoiceLayoutDto {
9890 /** key 为参与者用户 id。 */
9891 tiles?: VoiceLayoutDtoTiles;
9892}
9893
9894/**
9895 * 需要新增或覆盖的窗口(key = 参与者用户 id)。
9896 */
9897export type VoiceLayoutPatchDtoTiles = { [key: string]: VoiceTileDto };
9898
9899/**
9900 * 布局写入是**按 key 合并**的补丁而不是整表替换:每个客户端只提交自己刚拖的
9901 * 那一格,收回的格子里列在 `removed`,两个人同时摆不同窗口互不吞没。
9902 */
9903export interface VoiceLayoutPatchDto {
9904 /** 需要收回自动网格的窗口 key。 */
9905 removed?: string[];
9906 /** 需要新增或覆盖的窗口(key = 参与者用户 id)。 */
9907 tiles?: VoiceLayoutPatchDtoTiles;
9908}
9909
9910/**
9911 * 本次写入的服务端时刻,客户端用它给本地副本盖戳。
9912 */
9913export interface VoiceLayoutSavedDto {
9914 updated_at: number;
9915}
9916
9917export interface VoiceModerationDto {
9918 action: string;
9919 ok: boolean;
9920 user_id: number;
9921}
9922
9923/**
9924 * 房间参与者快照。
9925 *
9926 * 权威来源是 LiveKit 的 list_participants,Redis 只补主持人静音等本地状态;
9927 * 这是「谁在这个频道里」的服务端视图,用于侧栏人数与未加入时的预览。
9928 * 会中界面的发言高亮、静音图标与画面轨道一律直接读浏览器里的 Room,
9929 * 因为本接口不是事件流,返回值天然是快照。
9930 */
9931export interface VoiceParticipantDto {
9932 /** @nullable */
9933 avatar_url?: string | null;
9934 can_publish: boolean;
9935 display_name: string;
9936 joined_at: number;
9937 moderator_muted: boolean;
9938 /**
9939 * 快照值:list_participants 不返回发言状态,因此这里恒为 false;
9940 * 实时发言指示由前端从 Room 的 activeSpeakers 读取。
9941 */
9942 speaking: boolean;
9943 tracks: VoiceTrackDto[];
9944 user_id: number;
9945}
9946
9947export interface VoiceRecordingDto {
9948 active: boolean;
9949 egress_id: string;
9950}
9951
9952export interface VoiceSpaceStatesDto {
9953 rooms: VoiceRoomStateDto[];
9954}
9955
9956export interface VoiceTokenDto {
9957 can_publish: boolean;
9958 /** @minimum 0 */
9959 expires_in_secs: number;
9960 hand_state?: null | HandState;
9961 is_stage: boolean;
9962 room_name: string;
9963 token: string;
9964 url: string;
9965}
9966
9967export interface WatchDto {
9968 created_at: string;
9969 id: string;
9970 /** @nullable */
9971 issue_id?: string | null;
9972 mode: WatchMode;
9973 /** @nullable */
9974 updated_at?: string | null;
9975 user?: null | UserDto;
9976}
9977
9978export interface WatchPath {
9979 board_id: string;
9980 issue_id: string;
9981 space_name: string;
9982}
9983
9984export interface WatcherDto {
9985 avatar_url: string;
9986 display_name: string;
9987 mode: WatchMode;
9988 user_id: number;
9989 username: string;
9990 watching_since: string;
9991}
9992
9993export interface WebhookDto {
9994 created_at: string;
9995 disabled: boolean;
9996 id: string;
9997 /** @nullable */
9998 last_used_at?: string | null;
9999 name: string;
10000 room_id: string;
10001}
10002
10003export interface WebhookPostCmd {
10004 content?: string;
10005 /** @nullable */
10006 nonce?: string | null;
10007 /** @nullable */
10008 thread_id?: string | null;
10009}
10010
10011export interface WebhookSecretDto {
10012 created_at: string;
10013 disabled: boolean;
10014 id: string;
10015 name: string;
10016 room_id: string;
10017 token: string;
10018}
10019
10020export interface WriteBlobBody {
10021 data: string;
10022}
10023
10024export interface WriteObjectResultDto {
10025 id: string;
10026}
10027
10028export interface WriteTreeBody {
10029 files: FileEntryDto[];
10030}
10031
10032455export type AuthSshKeyListParams = {
10033456 /**
10034457 * 页码,从 1 开始;默认 1
@@ -10040,1113 +463,4 @@
10040463 * @minimum 0
10041464 */
10042465 page_size?: number;
10043};
10044
10045export type DownloadAttachmentParams = {
10046 variant?: null | ImageVariant;
10047};
10048
10049export type ListDmsParams = {
10050 /**
10051 * @minimum 0
10052 * @nullable
10053 */
10054 limit?: number | null;
10055 /**
10056 * @minimum 0
10057 * @nullable
10058 */
10059 offset?: number | null;
10060 /**
10061 * @nullable
10062 */
10063 sort?: string | null;
10064};
10065
10066export type ListRoomBansParams = {
10067 /**
10068 * @minimum 0
10069 * @nullable
10070 */
10071 limit?: number | null;
10072 /**
10073 * @minimum 0
10074 * @nullable
10075 */
10076 offset?: number | null;
10077 /**
10078 * @nullable
10079 */
10080 sort?: string | null;
10081};
10082
10083export type ListBookmarksParams = {
10084 /**
10085 * @minimum 0
10086 * @nullable
10087 */
10088 limit?: number | null;
10089 /**
10090 * @minimum 0
10091 * @nullable
10092 */
10093 offset?: number | null;
10094 /**
10095 * @nullable
10096 */
10097 sort?: string | null;
10098};
10099
10100export type GetDraftParams = {
10101 /**
10102 * @nullable
10103 */
10104 thread_id?: string | null;
10105};
10106
10107export type DeleteDraftParams = {
10108 /**
10109 * thread scope
10110 */
10111 thread_id?: string;
10112};
10113
10114export type ListRoomMembersParams = {
10115 /**
10116 * @minimum 0
10117 * @nullable
10118 */
10119 limit?: number | null;
10120 /**
10121 * @minimum 0
10122 * @nullable
10123 */
10124 offset?: number | null;
10125};
10126
10127export type ListMessagesParams = {
10128 /**
10129 * @nullable
10130 */
10131 before_seq?: number | null;
10132 /**
10133 * @nullable
10134 */
10135 after_seq?: number | null;
10136 /**
10137 * @minimum 0
10138 * @nullable
10139 */
10140 limit?: number | null;
10141 /**
10142 * @nullable
10143 */
10144 thread_id?: string | null;
10145 /**
10146 * @nullable
10147 */
10148 author_id?: number | null;
10149};
10150
10151export type ListThreadsParams = {
10152 /**
10153 * @nullable
10154 */
10155 archived?: boolean | null;
10156 /**
10157 * @minimum 0
10158 * @nullable
10159 */
10160 limit?: number | null;
10161 /**
10162 * @minimum 0
10163 * @nullable
10164 */
10165 offset?: number | null;
10166};
10167
10168export type ModerateMuteParams = {
10169 /**
10170 * false to unmute
10171 */
10172 muted?: boolean;
10173};
10174
10175export type ListWebhooksParams = {
10176 /**
10177 * @minimum 0
10178 * @nullable
10179 */
10180 limit?: number | null;
10181 /**
10182 * @minimum 0
10183 * @nullable
10184 */
10185 offset?: number | null;
10186 /**
10187 * @nullable
10188 */
10189 sort?: string | null;
10190};
10191
10192export type ListMyThreadsParams = {
10193 /**
10194 * @minimum 0
10195 * @nullable
10196 */
10197 limit?: number | null;
10198 /**
10199 * @minimum 0
10200 * @nullable
10201 */
10202 offset?: number | null;
10203 /**
10204 * @nullable
10205 */
10206 sort?: string | null;
10207};
10208
10209export type ListBoardsParams = {
10210 /**
10211 * @nullable
10212 */
10213 dir_id?: string | null;
10214 /**
10215 * @nullable
10216 */
10217 q?: string | null;
10218 /**
10219 * @minimum 0
10220 * @nullable
10221 */
10222 limit?: number | null;
10223 /**
10224 * @minimum 0
10225 * @nullable
10226 */
10227 offset?: number | null;
10228};
10229
10230export type ListIssuesParams = {
10231 state?: null | IssueState;
10232 /**
10233 * @nullable
10234 */
10235 author_id?: number | null;
10236 /**
10237 * One id or a comma-separated id list (`a,b`); `none` matches issues
10238 * without a milestone. Any of the listed values matches.
10239 * @nullable
10240 */
10241 milestone_id?: string | null;
10242 /**
10243 * One id or a comma-separated id list (`a,b`); matches any of them.
10244 * @nullable
10245 */
10246 label_id?: string | null;
10247 /**
10248 * One id or a comma-separated id list (`a,b`); matches any of them.
10249 * @nullable
10250 */
10251 assignee_id?: string | null;
10252 /**
10253 * One priority or a comma-separated list (`high,urgent`).
10254 * @nullable
10255 */
10256 priority?: string | null;
10257 /**
10258 * @nullable
10259 */
10260 sort?: string | null;
10261 /**
10262 * @nullable
10263 */
10264 q?: string | null;
10265 /**
10266 * @minimum 0
10267 * @nullable
10268 */
10269 limit?: number | null;
10270 /**
10271 * @minimum 0
10272 * @nullable
10273 */
10274 offset?: number | null;
10275};
10276
10277export type ListCommentsParams = {
10278 /**
10279 * @nullable
10280 */
10281 parent_id?: string | null;
10282 /**
10283 * @minimum 0
10284 * @nullable
10285 */
10286 limit?: number | null;
10287 /**
10288 * @minimum 0
10289 * @nullable
10290 */
10291 offset?: number | null;
10292 /**
10293 * @nullable
10294 */
10295 sort?: string | null;
10296};
10297
10298export type RemoveCommentReactionParams = {
10299 emoji: string;
10300};
10301
10302export type ListEventsParams = {
10303 /**
10304 * @minimum 0
10305 * @nullable
10306 */
10307 limit?: number | null;
10308 /**
10309 * @minimum 0
10310 * @nullable
10311 */
10312 offset?: number | null;
10313};
10314
10315export type ListContentHistoryParams = {
10316 /**
10317 * @nullable
10318 */
10319 comment_id?: string | null;
10320 /**
10321 * @minimum 0
10322 * @nullable
10323 */
10324 limit?: number | null;
10325 /**
10326 * @minimum 0
10327 * @nullable
10328 */
10329 offset?: number | null;
10330};
10331
10332export type ListIssueMembersParams = {
10333 kind?: null | IssueMemberKind;
10334 /**
10335 * @minimum 0
10336 * @nullable
10337 */
10338 limit?: number | null;
10339 /**
10340 * @minimum 0
10341 * @nullable
10342 */
10343 offset?: number | null;
10344};
10345
10346export type RemoveIssueReactionParams = {
10347 emoji: string;
10348};
10349
10350export type ListTrackedTimeParams = {
10351 /**
10352 * @nullable
10353 */
10354 user_id?: number | null;
10355 /**
10356 * @minimum 0
10357 * @nullable
10358 */
10359 limit?: number | null;
10360 /**
10361 * @minimum 0
10362 * @nullable
10363 */
10364 offset?: number | null;
10365};
10366
10367export type ListIssueUsersParams = {
10368 /**
10369 * @minimum 0
10370 * @nullable
10371 */
10372 limit?: number | null;
10373 /**
10374 * @minimum 0
10375 * @nullable
10376 */
10377 offset?: number | null;
10378};
10379
10380export type ListLabelsParams = {
10381 /**
10382 * @nullable
10383 */
10384 q?: string | null;
10385 /**
10386 * @nullable
10387 */
10388 is_archived?: boolean | null;
10389 /**
10390 * @minimum 0
10391 * @nullable
10392 */
10393 limit?: number | null;
10394 /**
10395 * @minimum 0
10396 * @nullable
10397 */
10398 offset?: number | null;
10399};
10400
10401export type ListMilestonesParams = {
10402 /**
10403 * @nullable
10404 */
10405 is_closed?: boolean | null;
10406 /**
10407 * @nullable
10408 */
10409 q?: string | null;
10410 /**
10411 * @minimum 0
10412 * @nullable
10413 */
10414 limit?: number | null;
10415 /**
10416 * @minimum 0
10417 * @nullable
10418 */
10419 offset?: number | null;
10420};
10421
10422export type ListLicensesParams = {
10423 /**
10424 * @minimum 0
10425 * @nullable
10426 */
10427 limit?: number | null;
10428 /**
10429 * @minimum 0
10430 * @nullable
10431 */
10432 offset?: number | null;
10433};
10434
10435export type ListDevicesParams = {
10436 /**
10437 * @minimum 0
10438 * @nullable
10439 */
10440 limit?: number | null;
10441 /**
10442 * @minimum 0
10443 * @nullable
10444 */
10445 offset?: number | null;
10446 /**
10447 * @nullable
10448 */
10449 sort?: string | null;
10450};
10451
10452export type ListMemesParams = {
10453 /**
10454 * @minimum 0
10455 * @nullable
10456 */
10457 limit?: number | null;
10458};
10459
10460export type ListSavedMessagesParams = {
10461 /**
10462 * @minimum 0
10463 * @nullable
10464 */
10465 limit?: number | null;
10466 /**
10467 * @minimum 0
10468 * @nullable
10469 */
10470 offset?: number | null;
10471 /**
10472 * @nullable
10473 */
10474 sort?: string | null;
10475};
10476
10477export type ListNotificationsParams = {
10478 /**
10479 * @minimum 0
10480 * @nullable
10481 */
10482 limit?: number | null;
10483 /**
10484 * @minimum 0
10485 * @nullable
10486 */
10487 offset?: number | null;
10488 type?: null | NotificationType;
10489 /**
10490 * @nullable
10491 */
10492 unread?: boolean | null;
10493};
10494
10495export type ListPushSubscriptionsParams = {
10496 /**
10497 * @minimum 0
10498 * @nullable
10499 */
10500 limit?: number | null;
10501 /**
10502 * @minimum 0
10503 * @nullable
10504 */
10505 offset?: number | null;
10506 /**
10507 * @nullable
10508 */
10509 sort?: string | null;
10510};
10511
10512export type RecentMentionsParams = {
10513 /**
10514 * @minimum 0
10515 * @nullable
10516 */
10517 limit?: number | null;
10518};
10519
10520export type MyReportsParams = {
10521 /**
10522 * @minimum 0
10523 * @nullable
10524 */
10525 limit?: number | null;
10526 /**
10527 * @minimum 0
10528 * @nullable
10529 */
10530 offset?: number | null;
10531 /**
10532 * @nullable
10533 */
10534 sort?: string | null;
10535};
10536
10537export type ListSessionsParams = {
10538 kind?: null | SessionKind;
10539 /**
10540 * @nullable
10541 */
10542 include_revoked?: boolean | null;
10543 /**
10544 * @minimum 0
10545 * @nullable
10546 */
10547 limit?: number | null;
10548 /**
10549 * @minimum 0
10550 * @nullable
10551 */
10552 offset?: number | null;
10553};
10554
10555export type MySpacesParams = {
10556 /**
10557 * @minimum 0
10558 * @nullable
10559 */
10560 limit?: number | null;
10561 /**
10562 * @minimum 0
10563 * @nullable
10564 */
10565 offset?: number | null;
10566 /**
10567 * @nullable
10568 */
10569 sort?: string | null;
10570};
10571
10572export type MySuspensionsParams = {
10573 /**
10574 * @nullable
10575 */
10576 include_revoked?: boolean | null;
10577 /**
10578 * @nullable
10579 */
10580 active?: boolean | null;
10581};
10582
10583export type ListMyPullsParams = {
10584 /**
10585 * open | closed | merged | all
10586 * @nullable
10587 */
10588 state?: string | null;
10589 /**
10590 * @minimum 0
10591 * @nullable
10592 */
10593 limit?: number | null;
10594 /**
10595 * @minimum 0
10596 * @nullable
10597 */
10598 offset?: number | null;
10599};
10600
10601export type ListReposParams = {
10602 /**
10603 * @minimum 0
10604 * @nullable
10605 */
10606 limit?: number | null;
10607 /**
10608 * @minimum 0
10609 * @nullable
10610 */
10611 offset?: number | null;
10612 /**
10613 * @nullable
10614 */
10615 sort?: string | null;
10616};
10617
10618export type CodeActivityParams = {
10619 /**
10620 * @nullable
10621 */
10622 branch?: string | null;
10623};
10624
10625export type GetArchiveParams = {
10626 /**
10627 * archive format
10628 */
10629 format: string;
10630 /**
10631 * path filter
10632 */
10633 path_filter?: string;
10634};
10635
10636export type BlameParams = {
10637 revision: string;
10638 path: string;
10639 /**
10640 * @minimum 0
10641 * @nullable
10642 */
10643 range_start?: number | null;
10644 /**
10645 * @minimum 0
10646 * @nullable
10647 */
10648 range_end?: number | null;
10649};
10650
10651export type ListBranchesParams = {
10652 /**
10653 * @minimum 0
10654 * @nullable
10655 */
10656 limit?: number | null;
10657 /**
10658 * @minimum 0
10659 * @nullable
10660 */
10661 offset?: number | null;
10662 /**
10663 * @nullable
10664 */
10665 sort?: string | null;
10666};
10667
10668export type DeleteBranchParams = {
10669 /**
10670 * @nullable
10671 */
10672 force?: boolean | null;
10673};
10674
10675export type ListCodeCommentsParams = {
10676 /**
10677 * @nullable
10678 */
10679 path?: string | null;
10680 /**
10681 * @nullable
10682 */
10683 revision?: string | null;
10684 /**
10685 * @nullable
10686 */
10687 resolved?: boolean | null;
10688 /**
10689 * @minimum 0
10690 * @nullable
10691 */
10692 limit?: number | null;
10693 /**
10694 * @minimum 0
10695 * @nullable
10696 */
10697 offset?: number | null;
10698};
10699
10700export type ListCommitsParams = {
10701 /**
10702 * start revision
10703 */
10704 revision?: string;
10705 /**
10706 * path filter
10707 */
10708 path?: string;
10709 /**
10710 * max commits
10711 * @minimum 0
10712 */
10713 max_count?: number;
10714 /**
10715 * skip commits before returning (offset)
10716 * @minimum 0
10717 */
10718 skip?: number;
10719 /**
10720 * since date
10721 */
10722 since?: string;
10723 /**
10724 * until date
10725 */
10726 until?: string;
10727 /**
10728 * first parent only
10729 */
10730 first_parent: boolean;
10731};
10732
10733export type IsAncestorParams = {
10734 ancestor: string;
10735 descendant: string;
10736};
10737
10738export type CommitStatsParams = {
10739 revision: string;
10740 /**
10741 * @nullable
10742 */
10743 path?: string | null;
10744};
10745
10746export type GetConflictsParams = {
10747 base: string;
10748 head: string;
10749 /**
10750 * @nullable
10751 */
10752 ancestor?: string | null;
10753};
10754
10755export type ConflictDetailParams = {
10756 base: string;
10757 head: string;
10758 path: string;
10759};
10760
10761export type GetDiffParams = {
10762 base: string;
10763 head: string;
10764 view?: DiffView;
10765 use_merge_base?: boolean;
10766};
10767
10768export type RangeDiffParams = {
10769 from: string;
10770 to: string;
10771 /**
10772 * @nullable
10773 */
10774 base?: string | null;
10775};
10776
10777export type DiffRawParams = {
10778 base: string;
10779 head: string;
10780};
10781
10782export type ListLfsPointersParams = {
10783 revision: string;
10784 /**
10785 * @minimum 0
10786 * @nullable
10787 */
10788 limit?: number | null;
10789};
10790
10791export type ListLocksParams = {
10792 /**
10793 * @nullable
10794 */
10795 cursor?: string | null;
10796 /**
10797 * @minimum 0
10798 * @nullable
10799 */
10800 limit?: number | null;
10801};
10802
10803export type UnlockParams = {
10804 path: string;
10805 /**
10806 * @nullable
10807 */
10808 force?: boolean | null;
10809};
10810
10811export type VerifyLocksParams = {
10812 /**
10813 * @minimum 0
10814 * @nullable
10815 */
10816 limit?: number | null;
10817};
10818
10819export type UnlockByIdParams = {
10820 /**
10821 * @nullable
10822 */
10823 force?: boolean | null;
10824};
10825
10826export type PatchGenerateParams = {
10827 base: string;
10828 head: string;
10829};
10830
10831export type PathLogParams = {
10832 commit_hash: string;
10833 target_dir: string;
10834};
10835
10836export type ListPullsParams = {
10837 /**
10838 * open | closed | merged | all
10839 * @nullable
10840 */
10841 state?: string | null;
10842 /**
10843 * @nullable
10844 */
10845 author?: string | null;
10846 /**
10847 * @nullable
10848 */
10849 base?: string | null;
10850 /**
10851 * @nullable
10852 */
10853 head?: string | null;
10854 /**
10855 * @nullable
10856 */
10857 draft?: boolean | null;
10858 /**
10859 * @nullable
10860 */
10861 search?: string | null;
10862 /**
10863 * number | created | updated
10864 * @nullable
10865 */
10866 sort?: string | null;
10867 /**
10868 * asc | desc
10869 * @nullable
10870 */
10871 order?: string | null;
10872 /**
10873 * @minimum 0
10874 * @nullable
10875 */
10876 limit?: number | null;
10877 /**
10878 * @minimum 0
10879 * @nullable
10880 */
10881 offset?: number | null;
10882};
10883
10884export type ListPullCommentsParams = {
10885 /**
10886 * @minimum 0
10887 * @nullable
10888 */
10889 limit?: number | null;
10890 /**
10891 * @minimum 0
10892 * @nullable
10893 */
10894 offset?: number | null;
10895 /**
10896 * @nullable
10897 */
10898 sort?: string | null;
10899};
10900
10901export type ListPullEventsParams = {
10902 /**
10903 * @minimum 0
10904 * @nullable
10905 */
10906 limit?: number | null;
10907 /**
10908 * @minimum 0
10909 * @nullable
10910 */
10911 offset?: number | null;
10912 /**
10913 * @nullable
10914 */
10915 sort?: string | null;
10916};
10917
10918export type ListReleasesParams = {
10919 /**
10920 * @minimum 0
10921 * @nullable
10922 */
10923 limit?: number | null;
10924 /**
10925 * @minimum 0
10926 * @nullable
10927 */
10928 offset?: number | null;
10929 /**
10930 * 仅返回草稿(true)或仅返回已发布(false);缺省返回全部。
10931 * @nullable
10932 */
10933 draft?: boolean | null;
10934};
10935
10936export type ListStargazersParams = {
10937 /**
10938 * @minimum 0
10939 * @nullable
10940 */
10941 limit?: number | null;
10942 /**
10943 * @minimum 0
10944 * @nullable
10945 */
10946 offset?: number | null;
10947};
10948
10949export type SubmoduleListParams = {
10950 revision: string;
10951};
10952
10953export type SubmoduleResolveParams = {
10954 revision: string;
10955 path: string;
10956};
10957
10958export type ListTagsParams = {
10959 /**
10960 * @minimum 0
10961 * @nullable
10962 */
10963 limit?: number | null;
10964 /**
10965 * @minimum 0
10966 * @nullable
10967 */
10968 offset?: number | null;
10969 /**
10970 * @nullable
10971 */
10972 sort?: string | null;
10973};
10974
10975export type GetTreeParams = {
10976 path?: string;
10977 recurse?: boolean;
10978 resolve?: boolean;
10979 show_trees?: boolean;
10980 view?: null | TreeView;
10981};
10982
10983export type ListWatchersParams = {
10984 /**
10985 * @minimum 0
10986 * @nullable
10987 */
10988 limit?: number | null;
10989 /**
10990 * @minimum 0
10991 * @nullable
10992 */
10993 offset?: number | null;
10994 mode?: null | WatchMode;
10995};
10996
10997export type ExploreSpacesParams = {
10998 /**
10999 * @nullable
11000 */
11001 q?: string | null;
11002 /**
11003 * @nullable
11004 */
11005 sort?: string | null;
11006 /**
11007 * @minimum 0
11008 * @nullable
11009 */
11010 limit?: number | null;
11011 /**
11012 * @minimum 0
11013 * @nullable
11014 */
11015 offset?: number | null;
11016};
11017
11018export type SpaceDeleteParams = {
11019 /**
11020 * 是否连成员一并清理
11021 */
11022 force?: boolean;
11023 /**
11024 * 删除原因,最长 512 字符
11025 */
11026 reason?: string;
11027};
11028
11029export type SpaceBanListParams = {
11030 /**
11031 * 页码,从 1 开始
11032 * @minimum 0
11033 */
11034 page?: number;
11035 /**
11036 * 每页条数
11037 * @minimum 0
11038 */
11039 page_size?: number;
11040};
11041
11042export type GetSpaceDirTreeParams = {
11043 /**
11044 * @nullable
11045 */
11046 parent_id?: string | null;
11047};
11048
11049export type ListGroupsParams = {
11050 /**
11051 * @minimum 0
11052 * @nullable
11053 */
11054 limit?: number | null;
11055 /**
11056 * @minimum 0
11057 * @nullable
11058 */
11059 offset?: number | null;
11060 /**
11061 * @nullable
11062 */
11063 sort?: string | null;
11064};
11065
11066export type UploadSpaceImageParams = {
11067 /**
11068 * @nullable
11069 */
11070 width?: number | null;
11071 /**
11072 * @nullable
11073 */
11074 height?: number | null;
11075};
11076
11077export type GetSpaceImageFileParams = {
11078 variant?: null | ImageVariant;
11079};
11080
11081export type SpaceInviteListParams = {
11082 /**
11083 * 包含已撤销邀请
11084 */
11085 include_revoked?: boolean;
11086};
11087
11088export type ListJoinRequestsParams = {
11089 status?: null | SpaceJoinRequestState;
11090 /**
11091 * @minimum 0
11092 * @nullable
11093 */
11094 limit?: number | null;
11095 /**
11096 * @minimum 0
11097 * @nullable
11098 */
11099 offset?: number | null;
11100};
11101
11102export type SpaceMemberListParams = {
11103 /**
11104 * 包含已退出成员
11105 */
11106 include_inactive?: boolean;
11107 /**
11108 * 包含已封禁成员
11109 */
11110 include_banned?: boolean;
11111};
11112
11113export type SpaceMemberRemoveParams = {
11114 /**
11115 * 移除原因
11116 */
11117 reason?: string;
11118};
11119
11120export type ListTopicsParams = {
11121 /**
11122 * @minimum 0
11123 * @nullable
11124 */
11125 limit?: number | null;
11126 /**
11127 * @minimum 0
11128 * @nullable
11129 */
11130 offset?: number | null;
11131};
11132
11133export type ListReposByTopicParams = {
11134 /**
11135 * @minimum 0
11136 * @nullable
11137 */
11138 limit?: number | null;
11139 /**
11140 * @minimum 0
11141 * @nullable
11142 */
11143 offset?: number | null;
11144};
11145
11146export type ListUsersBatchParams = {
11147 ids: number[];
11148};
11149
11150export type GetUserAvatarParams = {
11151 variant?: null | ImageVariant;
11152466};