fix(openapi): declare path/query parameters to match route templates
Mark Query structs with into_params(parameter_in = Query), derive IntoParams on project path structs, inline path params for tuple path extractors, drop duplicate inline params, normalize {path:path} templates
zhenyi committed
Modified lib/auth/handler/oauth/callback.rs lib/auth/handler/oauth/callback.rs +1 −0 View lib/auth/handler/oauth/callback.rs
@@ -11,6 +11,7 @@
1111use super::super::cookies;
1212
1313#[derive(Debug, Deserialize, utoipa::IntoParams)]
14#[into_params(parameter_in = Query)]
1415pub(crate) struct CallbackQuery {
1516 pub provider: OAuthProvider,
1617 pub code: String,
Modified lib/export/issues/comment.rs lib/export/issues/comment.rs +1 −0 View lib/export/issues/comment.rs
@@ -55,6 +55,7 @@
5555}
5656
5757#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
58#[into_params(parameter_in = Query)]
5859pub struct ListCommentQuery {
5960 pub parent_id: Option<Uuid>,
6061 pub limit: Option<u64>,
Modified lib/export/issues/issue.rs lib/export/issues/issue.rs +1 −0 View lib/export/issues/issue.rs
@@ -87,6 +87,7 @@
8787}
8888
8989#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
90#[into_params(parameter_in = Query)]
9091pub struct ListIssueQuery {
9192 pub state: Option<IssueState>,
9293 pub author_id: Option<Uuid>,
Modified lib/export/issues/issue_attachment.rs lib/export/issues/issue_attachment.rs +1 −0 View lib/export/issues/issue_attachment.rs
@@ -53,6 +53,7 @@
5353}
5454
5555#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
56#[into_params(parameter_in = Query)]
5657pub struct ListAttachmentQuery {
5758 pub limit: Option<u64>,
5859 pub offset: Option<u64>,
Modified lib/export/issues/issue_content_history.rs lib/export/issues/issue_content_history.rs +1 −0 View lib/export/issues/issue_content_history.rs
@@ -43,6 +43,7 @@
4343}
4444
4545#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
46#[into_params(parameter_in = Query)]
4647pub struct ListContentHistoryQuery {
4748 pub comment_id: Option<Uuid>,
4849 pub limit: Option<u64>,
Modified lib/export/issues/issue_event.rs lib/export/issues/issue_event.rs +1 −0 View lib/export/issues/issue_event.rs
@@ -51,6 +51,7 @@
5151}
5252
5353#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
54#[into_params(parameter_in = Query)]
5455pub struct ListEventQuery {
5556 pub limit: Option<u64>,
5657 pub offset: Option<u64>,
Modified lib/export/issues/issue_member.rs lib/export/issues/issue_member.rs +1 −0 View lib/export/issues/issue_member.rs
@@ -48,6 +48,7 @@
4848}
4949
5050#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
51#[into_params(parameter_in = Query)]
5152pub struct ListMemberQuery {
5253 pub kind: Option<String>,
5354 pub limit: Option<u64>,
Modified lib/export/issues/issue_reaction.rs lib/export/issues/issue_reaction.rs +1 −0 View lib/export/issues/issue_reaction.rs
@@ -61,6 +61,7 @@
6161}
6262
6363#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
64#[into_params(parameter_in = Query)]
6465pub struct ListReactionQuery {
6566 pub limit: Option<u64>,
6667 pub offset: Option<u64>,
Modified lib/export/issues/issue_tracked_time.rs lib/export/issues/issue_tracked_time.rs +1 −0 View lib/export/issues/issue_tracked_time.rs
@@ -37,6 +37,7 @@
3737}
3838
3939#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
40#[into_params(parameter_in = Query)]
4041pub struct ListTrackedTimeQuery {
4142 pub user_id: Option<Uuid>,
4243 pub limit: Option<u64>,
Modified lib/export/issues/issues.rs lib/export/issues/issues.rs +1 −0 View lib/export/issues/issues.rs
@@ -64,6 +64,7 @@
6464}
6565
6666#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
67#[into_params(parameter_in = Query)]
6768pub struct ListCollectionQuery {
6869 pub channel_id: Option<Uuid>,
6970 pub q: Option<String>,
Modified lib/export/issues/label.rs lib/export/issues/label.rs +1 −0 View lib/export/issues/label.rs
@@ -69,6 +69,7 @@
6969}
7070
7171#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
72#[into_params(parameter_in = Query)]
7273pub struct ListLabelQuery {
7374 pub q: Option<String>,
7475 pub is_archived: Option<bool>,
Modified lib/export/issues/milestone.rs lib/export/issues/milestone.rs +1 −0 View lib/export/issues/milestone.rs
@@ -65,6 +65,7 @@
6565}
6666
6767#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
68#[into_params(parameter_in = Query)]
6869pub struct ListMilestoneQuery {
6970 pub is_closed: Option<bool>,
7071 pub q: Option<String>,
Modified lib/export/post/views.rs lib/export/post/views.rs +1 −0 View lib/export/post/views.rs
@@ -169,6 +169,7 @@
169169}
170170
171171#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
172#[into_params(parameter_in = Query)]
172173pub struct ListPostQuery {
173174 pub status: Option<PostStatusView>,
174175 pub author_id: Option<Uuid>,
Modified lib/export/project/activities.rs lib/export/project/activities.rs +1 −0 View lib/export/project/activities.rs
@@ -17,6 +17,7 @@
1717}
1818
1919#[derive(Debug, Clone, Deserialize, ToSchema, IntoParams)]
20#[into_params(parameter_in = Query)]
2021pub struct ListActivityQuery {
2122 pub verb: Option<String>,
2223 #[serde(default = "default_page")]
Modified lib/export/repo/archive.rs lib/export/repo/archive.rs +1 −0 View lib/export/repo/archive.rs
@@ -9,6 +9,7 @@
99}
1010
1111#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub struct ArchiveFormatQuery {
1314 pub format: Option<String>,
1415 pub ref_name: Option<String>,
Modified lib/export/repo/branch.rs lib/export/repo/branch.rs +1 −0 View lib/export/repo/branch.rs
@@ -121,6 +121,7 @@
121121}
122122
123123#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
124#[into_params(parameter_in = Query)]
124125pub struct ListBranchQuery {
125126 pub page: Option<u64>,
126127 pub limit: Option<u64>,
Modified lib/export/repo/branch_protection.rs lib/export/repo/branch_protection.rs +1 −0 View lib/export/repo/branch_protection.rs
@@ -187,6 +187,7 @@
187187}
188188
189189#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
190#[into_params(parameter_in = Query)]
190191pub struct ListBranchProtectionQuery {
191192 pub page: Option<u64>,
192193 pub limit: Option<u64>,
Modified lib/export/repo/collab.rs lib/export/repo/collab.rs +1 −0 View lib/export/repo/collab.rs
@@ -64,6 +64,7 @@
6464}
6565
6666#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
67#[into_params(parameter_in = Query)]
6768pub struct ListCollaboratorQuery {
6869 pub page: Option<u64>,
6970 pub limit: Option<u64>,
Modified lib/export/repo/contents.rs lib/export/repo/contents.rs +1 −0 View lib/export/repo/contents.rs
@@ -164,6 +164,7 @@
164164}
165165
166166#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
167#[into_params(parameter_in = Query)]
167168pub struct ContentsQuery {
168169 #[serde(rename = "ref")]
169170 pub ref_: Option<String>,
Modified lib/export/repo/deploy_key.rs lib/export/repo/deploy_key.rs +1 −0 View lib/export/repo/deploy_key.rs
@@ -67,6 +67,7 @@
6767}
6868
6969#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
70#[into_params(parameter_in = Query)]
7071pub struct ListDeployKeyQuery {
7172 pub key_id: Option<Uuid>,
7273 pub fingerprint: Option<String>,
Modified lib/export/repo/extras.rs lib/export/repo/extras.rs +3 −0 View lib/export/repo/extras.rs
@@ -33,6 +33,7 @@
3333}
3434
3535#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
36#[into_params(parameter_in = Query)]
3637pub struct RepoSearchQuery {
3738 pub q: Option<String>,
3839 pub topic: Option<bool>,
@@ -154,6 +155,7 @@
154155}
155156
156157#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
158#[into_params(parameter_in = Query)]
157159pub struct CommitsQuery {
158160 pub sha: Option<String>,
159161 pub path: Option<String>,
@@ -252,6 +254,7 @@
252254}
253255
254256#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
257#[into_params(parameter_in = Query)]
255258pub struct ForksQuery {
256259 pub page: Option<u64>,
257260 pub limit: Option<u64>,
Modified lib/export/repo/lifecycle.rs lib/export/repo/lifecycle.rs +1 −0 View lib/export/repo/lifecycle.rs
@@ -313,6 +313,7 @@
313313}
314314
315315#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
316#[into_params(parameter_in = Query)]
316317pub struct ListRepoQuery {
317318 pub channel_id: Option<Uuid>,
318319 pub owner_user_id: Option<Uuid>,
Modified lib/export/repo/pull_request.rs lib/export/repo/pull_request.rs +1 −0 View lib/export/repo/pull_request.rs
@@ -208,6 +208,7 @@
208208}
209209
210210#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
211#[into_params(parameter_in = Query)]
211212pub struct ListPullRequestQuery {
212213 pub page: Option<u64>,
213214 pub limit: Option<u64>,
Modified lib/export/repo/release.rs lib/export/repo/release.rs +1 −0 View lib/export/repo/release.rs
@@ -122,6 +122,7 @@
122122}
123123
124124#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
125#[into_params(parameter_in = Query)]
125126pub struct ListReleaseQuery {
126127 pub draft: Option<bool>,
127128 pub prerelease: Option<bool>,
Modified lib/export/repo/subscriber.rs lib/export/repo/subscriber.rs +1 −0 View lib/export/repo/subscriber.rs
@@ -41,6 +41,7 @@
4141}
4242
4343#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
44#[into_params(parameter_in = Query)]
4445pub struct ListSubscriberQuery {
4546 pub page: Option<u64>,
4647 pub limit: Option<u64>,
Modified lib/export/repo/tag.rs lib/export/repo/tag.rs +1 −0 View lib/export/repo/tag.rs
@@ -71,6 +71,7 @@
7171}
7272
7373#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
74#[into_params(parameter_in = Query)]
7475pub struct ListTagQuery {
7576 pub page: Option<u64>,
7677 pub limit: Option<u64>,
Modified lib/export/repo/tag_protection.rs lib/export/repo/tag_protection.rs +1 −0 View lib/export/repo/tag_protection.rs
@@ -63,6 +63,7 @@
6363}
6464
6565#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
66#[into_params(parameter_in = Query)]
6667pub struct ListTagProtectionQuery {
6768 pub page: Option<u64>,
6869 pub limit: Option<u64>,
Modified lib/export/repo/topic.rs lib/export/repo/topic.rs +1 −0 View lib/export/repo/topic.rs
@@ -33,6 +33,7 @@
3333}
3434
3535#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
36#[into_params(parameter_in = Query)]
3637pub struct TopicSearchQuery {
3738 pub q: Option<String>,
3839 pub page: Option<u64>,
Modified lib/issues/handler/comment/create.rs lib/issues/handler/comment/create.rs +4 −0 View lib/issues/handler/comment/create.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/comments",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CreateCommentOption>,
1519 responses((status = 201, description = "Create comment", body = AppResponseData<CommentView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/comment/delete.rs lib/issues/handler/comment/delete.rs +5 −0 View lib/issues/handler/comment/delete.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/comments/{comment_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("comment_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Delete comment")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/comment/get.rs lib/issues/handler/comment/get.rs +5 −0 View lib/issues/handler/comment/get.rs
@@ -11,6 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/comments/{comment_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ("comment_id" = Uuid, Path),
18 ),
1419 responses((status = 200, description = "Get comment", body = AppResponseData<CommentView>)),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/issues/handler/comment/list.rs lib/issues/handler/comment/list.rs +5 −1 View lib/issues/handler/comment/list.rs
@@ -11,7 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/comments",
1313 tag = "issues",
14 params(ListCommentQuery),
14 params(
15 ListCommentQuery,
16 ("space_name" = String, Path),
17 ("issue_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List comments")),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/issues/handler/comment/update.rs lib/issues/handler/comment/update.rs +5 −0 View lib/issues/handler/comment/update.rs
@@ -11,6 +11,11 @@
1111 patch,
1212 path = "/issues/{space_name}/{issue_id}/comments/{comment_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ("comment_id" = Uuid, Path),
18 ),
1419 request_body = AppRequestData<UpdateCommentOption>,
1520 responses((status = 200, description = "Update comment", body = AppResponseData<CommentView>)),
1621 security(("bearer_auth" = []))
Modified lib/issues/handler/issue/close.rs lib/issues/handler/issue/close.rs +4 −0 View lib/issues/handler/issue/close.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/close",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CloseIssueOption>,
1519 responses((status = 200, description = "Open/close issue", body = AppResponseData<IssueView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue/create.rs lib/issues/handler/issue/create.rs +3 −0 View lib/issues/handler/issue/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/issues/{space_name}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreateIssueOption>,
1417 responses((status = 201, description = "Create an issue in this channel's board", body = AppResponseData<IssueView>)),
1518 security(("bearer_auth" = []))
Modified lib/issues/handler/issue/delete.rs lib/issues/handler/issue/delete.rs +4 −0 View lib/issues/handler/issue/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Delete issue")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/issue/get.rs lib/issues/handler/issue/get.rs +4 −0 View lib/issues/handler/issue/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get issue", body = AppResponseData<IssueView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue/update.rs lib/issues/handler/issue/update.rs +4 −0 View lib/issues/handler/issue/update.rs
@@ -11,6 +11,10 @@
1111 patch,
1212 path = "/issues/{space_name}/{issue_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<UpdateIssueOption>,
1519 responses((status = 200, description = "Update issue", body = AppResponseData<IssueView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_attachment/delete.rs lib/issues/handler/issue_attachment/delete.rs +6 −0 View lib/issues/handler/issue_attachment/delete.rs
@@ -11,6 +11,12 @@
1111 delete,
1212 path = "/issues/{space_name}/attachments/{owner_type}/{owner_id}/{att_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("owner_type" = String, Path),
17 ("owner_id" = Uuid, Path),
18 ("att_id" = Uuid, Path),
19 ),
1420 responses((status = 204, description = "Delete attachment")),
1521 security(("bearer_auth" = []))
1622)]
Modified lib/issues/handler/issue_attachment/list.rs lib/issues/handler/issue_attachment/list.rs +6 −1 View lib/issues/handler/issue_attachment/list.rs
@@ -11,7 +11,12 @@
1111 get,
1212 path = "/issues/{space_name}/attachments/{owner_type}/{owner_id}",
1313 tag = "issues",
14 params(ListAttachmentQuery),
14 params(
15 ListAttachmentQuery,
16 ("space_name" = String, Path),
17 ("owner_type" = String, Path),
18 ("owner_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "List attachments")),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/issues/handler/issue_attachment/upload.rs lib/issues/handler/issue_attachment/upload.rs +5 −0 View lib/issues/handler/issue_attachment/upload.rs
@@ -13,6 +13,11 @@
1313 post,
1414 path = "/issues/{space_name}/attachments/{owner_type}/{owner_id}",
1515 tag = "issues",
16 params(
17 ("space_name" = String, Path),
18 ("owner_type" = String, Path),
19 ("owner_id" = Uuid, Path),
20 ),
1621 request_body = AppRequestData<UploadAttachmentInput>,
1722 responses((status = 201, description = "Upload attachment", body = AppResponseData<AttachmentView>)),
1823 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_content_history/list.rs lib/issues/handler/issue_content_history/list.rs +5 −1 View lib/issues/handler/issue_content_history/list.rs
@@ -11,7 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/content_history",
1313 tag = "issues",
14 params(ListContentHistoryQuery),
14 params(
15 ListContentHistoryQuery,
16 ("space_name" = String, Path),
17 ("issue_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List content history")),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/issues/handler/issue_dependency/create.rs lib/issues/handler/issue_dependency/create.rs +4 −0 View lib/issues/handler/issue_dependency/create.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/dependencies",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CreateDependencyOption>,
1519 responses((status = 201, description = "Create dependency", body = AppResponseData<DependencyView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_dependency/delete.rs lib/issues/handler/issue_dependency/delete.rs +5 −0 View lib/issues/handler/issue_dependency/delete.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/dependencies/{dep_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("dep_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Delete dependency")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/issue_dependency/list.rs lib/issues/handler/issue_dependency/list.rs +4 −0 View lib/issues/handler/issue_dependency/list.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/dependencies",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List dependencies")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_event/list.rs lib/issues/handler/issue_event/list.rs +5 −1 View lib/issues/handler/issue_event/list.rs
@@ -11,7 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/events",
1313 tag = "issues",
14 params(ListEventQuery),
14 params(
15 ListEventQuery,
16 ("space_name" = String, Path),
17 ("issue_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List issue events")),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/issues/handler/issue_member/create.rs lib/issues/handler/issue_member/create.rs +4 −0 View lib/issues/handler/issue_member/create.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/members",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CreateMemberOption>,
1519 responses((status = 201, description = "Create member", body = AppResponseData<MemberView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_member/delete.rs lib/issues/handler/issue_member/delete.rs +5 −0 View lib/issues/handler/issue_member/delete.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/members/{member_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("member_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Delete member")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/issue_member/list.rs lib/issues/handler/issue_member/list.rs +5 −1 View lib/issues/handler/issue_member/list.rs
@@ -11,7 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/members",
1313 tag = "issues",
14 params(ListMemberQuery),
14 params(
15 ListMemberQuery,
16 ("space_name" = String, Path),
17 ("issue_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List members")),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/issues/handler/issue_pin/create.rs lib/issues/handler/issue_pin/create.rs +3 −0 View lib/issues/handler/issue_pin/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/issues/{space_name}/pins",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreatePinOption>,
1417 responses((status = 201, description = "Pin issue", body = AppResponseData<PinView>)),
1518 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_pin/delete.rs lib/issues/handler/issue_pin/delete.rs +4 −0 View lib/issues/handler/issue_pin/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/pins/{pin_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("pin_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Unpin issue")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/issue_pin/list.rs lib/issues/handler/issue_pin/list.rs +3 −0 View lib/issues/handler/issue_pin/list.rs
@@ -10,6 +10,9 @@
1010 get,
1111 path = "/issues/{space_name}/pins",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 responses((status = 200, description = "List pinned issues")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/issues/handler/issue_reaction/create.rs lib/issues/handler/issue_reaction/create.rs +4 −0 View lib/issues/handler/issue_reaction/create.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/reactions",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CreateReactionOption>,
1519 responses((status = 201, description = "React to issue", body = AppResponseData<ReactionView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_reaction/create_comment.rs lib/issues/handler/issue_reaction/create_comment.rs +5 −0 View lib/issues/handler/issue_reaction/create_comment.rs
@@ -11,6 +11,11 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/comments/{comment_id}/reactions",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ("comment_id" = Uuid, Path),
18 ),
1419 request_body = AppRequestData<CreateReactionOption>,
1520 responses((status = 201, description = "React to comment", body = AppResponseData<ReactionView>)),
1621 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_reaction/delete.rs lib/issues/handler/issue_reaction/delete.rs +5 −0 View lib/issues/handler/issue_reaction/delete.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/reactions/{reaction_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("reaction_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Delete reaction")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/issue_reaction/list.rs lib/issues/handler/issue_reaction/list.rs +4 −0 View lib/issues/handler/issue_reaction/list.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/reactions",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List issue reactions")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_reaction/list_comment.rs lib/issues/handler/issue_reaction/list_comment.rs +5 −0 View lib/issues/handler/issue_reaction/list_comment.rs
@@ -11,6 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/comments/{comment_id}/reactions",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ("comment_id" = Uuid, Path),
18 ),
1419 responses((status = 200, description = "List comment reactions")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/issues/handler/issue_repo_rel/create.rs lib/issues/handler/issue_repo_rel/create.rs +4 −0 View lib/issues/handler/issue_repo_rel/create.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/repo_relations",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<CreateRepoRelOption>,
1519 responses((status = 201, description = "Link repo to issue", body = AppResponseData<RepoRelView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_repo_rel/delete.rs lib/issues/handler/issue_repo_rel/delete.rs +5 −0 View lib/issues/handler/issue_repo_rel/delete.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/repo_relations/{rel_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("rel_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Unlink repo from issue")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/issue_repo_rel/list.rs lib/issues/handler/issue_repo_rel/list.rs +4 −0 View lib/issues/handler/issue_repo_rel/list.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/repo_relations",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List repo relations")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_stopwatch/get.rs lib/issues/handler/issue_stopwatch/get.rs +4 −0 View lib/issues/handler/issue_stopwatch/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/stopwatch",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get my stopwatch", body = AppResponseData<StopwatchView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_stopwatch/start.rs lib/issues/handler/issue_stopwatch/start.rs +4 −0 View lib/issues/handler/issue_stopwatch/start.rs
@@ -11,6 +11,10 @@
1111 post,
1212 path = "/issues/{space_name}/{issue_id}/stopwatch",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 201, description = "Start stopwatch", body = AppResponseData<StopwatchView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_stopwatch/stop.rs lib/issues/handler/issue_stopwatch/stop.rs +4 −0 View lib/issues/handler/issue_stopwatch/stop.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/stopwatch",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Stop stopwatch")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/issue_tracked_time/list.rs lib/issues/handler/issue_tracked_time/list.rs +5 −1 View lib/issues/handler/issue_tracked_time/list.rs
@@ -11,7 +11,11 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/tracked_time",
1313 tag = "issues",
14 params(ListTrackedTimeQuery),
14 params(
15 ListTrackedTimeQuery,
16 ("space_name" = String, Path),
17 ("issue_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List tracked time")),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/issues/handler/issue_user/list.rs lib/issues/handler/issue_user/list.rs +4 −0 View lib/issues/handler/issue_user/list.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/users",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List issue users")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_user/update.rs lib/issues/handler/issue_user/update.rs +5 −0 View lib/issues/handler/issue_user/update.rs
@@ -11,6 +11,11 @@
1111 patch,
1212 path = "/issues/{space_name}/{issue_id}/users/{uid}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ("uid" = Uuid, Path),
18 ),
1419 request_body = AppRequestData<UpdateIssueUserOption>,
1520 responses((status = 200, description = "Update issue user", body = AppResponseData<IssueUserView>)),
1621 security(("bearer_auth" = []))
Modified lib/issues/handler/issue_watch/delete.rs lib/issues/handler/issue_watch/delete.rs +4 −0 View lib/issues/handler/issue_watch/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/watch",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Delete watch state")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/issue_watch/get.rs lib/issues/handler/issue_watch/get.rs +4 −0 View lib/issues/handler/issue_watch/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/watch",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get my watch state", body = AppResponseData<WatchView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/issue_watch/upsert.rs lib/issues/handler/issue_watch/upsert.rs +4 −0 View lib/issues/handler/issue_watch/upsert.rs
@@ -11,6 +11,10 @@
1111 put,
1212 path = "/issues/{space_name}/{issue_id}/watch",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<UpsertWatchOption>,
1519 responses((status = 200, description = "Upsert watch state", body = AppResponseData<WatchView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/issues/delete.rs lib/issues/handler/issues/delete.rs +3 −0 View lib/issues/handler/issues/delete.rs
@@ -9,6 +9,9 @@
99 delete,
1010 path = "/issues/{space_name}",
1111 tag = "issues",
12 params(
13 ("space_name" = String, Path),
14 ),
1215 responses((status = 204, description = "Delete default issue board")),
1316 security(("bearer_auth" = []))
1417)]
Modified lib/issues/handler/issues/get.rs lib/issues/handler/issues/get.rs +3 −0 View lib/issues/handler/issues/get.rs
@@ -22,6 +22,9 @@
2222 get,
2323 path = "/issues/{space_name}",
2424 tag = "issues",
25 params(
26 ("space_name" = String, Path),
27 ),
2528 responses((status = 200, description = "Default issue board OR issue list (when query.state/q/author_id/milestone_id is set)")),
2629 security(("bearer_auth" = []))
2730)]
Modified lib/issues/handler/issues/update.rs lib/issues/handler/issues/update.rs +3 −0 View lib/issues/handler/issues/update.rs
@@ -10,6 +10,9 @@
1010 patch,
1111 path = "/issues/{space_name}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<UpdateCollectionOption>,
1417 responses((status = 200, description = "Update default issue board", body = AppResponseData<CollectionView>)),
1518 security(("bearer_auth" = []))
Modified lib/issues/handler/label/bind.rs lib/issues/handler/label/bind.rs +5 −0 View lib/issues/handler/label/bind.rs
@@ -10,6 +10,11 @@
1010 post,
1111 path = "/issues/{space_name}/{issue_id}/labels/{label_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("label_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Bind label to issue")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/label/create.rs lib/issues/handler/label/create.rs +3 −0 View lib/issues/handler/label/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/issues/{space_name}/labels",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreateLabelOption>,
1417 responses((status = 201, description = "Create label", body = AppResponseData<LabelView>)),
1518 security(("bearer_auth" = []))
Modified lib/issues/handler/label/delete.rs lib/issues/handler/label/delete.rs +4 −0 View lib/issues/handler/label/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/labels/{label_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("label_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Delete label")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/label/get.rs lib/issues/handler/label/get.rs +4 −0 View lib/issues/handler/label/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/labels/{label_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("label_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get label", body = AppResponseData<LabelView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/label/list.rs lib/issues/handler/label/list.rs +4 −1 View lib/issues/handler/label/list.rs
@@ -10,7 +10,10 @@
1010 get,
1111 path = "/issues/{space_name}/labels",
1212 tag = "issues",
13 params(ListLabelQuery),
13 params(
14 ListLabelQuery,
15 ("space_name" = String, Path),
16 ),
1417 responses((status = 200, description = "List labels")),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/issues/handler/label/list_for_issue.rs lib/issues/handler/label/list_for_issue.rs +4 −0 View lib/issues/handler/label/list_for_issue.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/{issue_id}/labels",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("issue_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List labels for issue")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/label/unbind.rs lib/issues/handler/label/unbind.rs +5 −0 View lib/issues/handler/label/unbind.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/issues/{space_name}/{issue_id}/labels/{label_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("issue_id" = Uuid, Path),
16 ("label_id" = Uuid, Path),
17 ),
1318 responses((status = 204, description = "Unbind label from issue")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/issues/handler/label/update.rs lib/issues/handler/label/update.rs +4 −0 View lib/issues/handler/label/update.rs
@@ -11,6 +11,10 @@
1111 patch,
1212 path = "/issues/{space_name}/labels/{label_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("label_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<UpdateLabelOption>,
1519 responses((status = 200, description = "Update label", body = AppResponseData<LabelView>)),
1620 security(("bearer_auth" = []))
Modified lib/issues/handler/milestone/create.rs lib/issues/handler/milestone/create.rs +3 −0 View lib/issues/handler/milestone/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/issues/{space_name}/milestones",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreateMilestoneOption>,
1417 responses((status = 201, description = "Create milestone", body = AppResponseData<MilestoneView>)),
1518 security(("bearer_auth" = []))
Modified lib/issues/handler/milestone/delete.rs lib/issues/handler/milestone/delete.rs +4 −0 View lib/issues/handler/milestone/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/issues/{space_name}/milestones/{milestone_id}",
1212 tag = "issues",
13 params(
14 ("space_name" = String, Path),
15 ("milestone_id" = Uuid, Path),
16 ),
1317 responses((status = 204, description = "Delete milestone")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/issues/handler/milestone/get.rs lib/issues/handler/milestone/get.rs +4 −0 View lib/issues/handler/milestone/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/issues/{space_name}/milestones/{milestone_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("milestone_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get milestone", body = AppResponseData<MilestoneView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/issues/handler/milestone/list.rs lib/issues/handler/milestone/list.rs +4 −1 View lib/issues/handler/milestone/list.rs
@@ -10,7 +10,10 @@
1010 get,
1111 path = "/issues/{space_name}/milestones",
1212 tag = "issues",
13 params(ListMilestoneQuery),
13 params(
14 ListMilestoneQuery,
15 ("space_name" = String, Path),
16 ),
1417 responses((status = 200, description = "List milestones")),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/issues/handler/milestone/update.rs lib/issues/handler/milestone/update.rs +4 −0 View lib/issues/handler/milestone/update.rs
@@ -11,6 +11,10 @@
1111 patch,
1212 path = "/issues/{space_name}/milestones/{milestone_id}",
1313 tag = "issues",
14 params(
15 ("space_name" = String, Path),
16 ("milestone_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<UpdateMilestoneOption>,
1519 responses((status = 200, description = "Update milestone", body = AppResponseData<MilestoneView>)),
1620 security(("bearer_auth" = []))
Modified lib/post/handler/post/archive.rs lib/post/handler/post/archive.rs +4 −0 View lib/post/handler/post/archive.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/archive",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Archive a post", body = AppResponseData<PostView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post/close.rs lib/post/handler/post/close.rs +4 −0 View lib/post/handler/post/close.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/close",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Close a post", body = AppResponseData<PostView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post/create.rs lib/post/handler/post/create.rs +3 −0 View lib/post/handler/post/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/posts/{space_name}",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreatePostOption>,
1417 responses((status = 201, description = "Create a post (thread)", body = AppResponseData<PostView>)),
1518 security(("bearer_auth" = []))
Modified lib/post/handler/post/delete.rs lib/post/handler/post/delete.rs +4 −0 View lib/post/handler/post/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/posts/{space_name}/{number}",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Delete a post")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post/get.rs lib/post/handler/post/get.rs +4 −0 View lib/post/handler/post/get.rs
@@ -10,6 +10,10 @@
1010 get,
1111 path = "/posts/{space_name}/{number}",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Get a post", body = AppResponseData<PostView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post/reopen.rs lib/post/handler/post/reopen.rs +4 −0 View lib/post/handler/post/reopen.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/reopen",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Reopen a post", body = AppResponseData<PostView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post/update.rs lib/post/handler/post/update.rs +4 −0 View lib/post/handler/post/update.rs
@@ -10,6 +10,10 @@
1010 patch,
1111 path = "/posts/{space_name}/{number}",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 request_body = AppRequestData<UpdatePostOption>,
1418 responses((status = 200, description = "Update a post", body = AppResponseData<PostView>)),
1519 security(("bearer_auth" = []))
Modified lib/post/handler/post_label/bind.rs lib/post/handler/post_label/bind.rs +5 −0 View lib/post/handler/post_label/bind.rs
@@ -11,6 +11,11 @@
1111 post,
1212 path = "/posts/{space_name}/{number}/labels/{label_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("number" = i64, Path),
17 ("label_id" = Uuid, Path),
18 ),
1419 responses((status = 200, description = "Bind a label to a post")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/post/handler/post_label/create.rs lib/post/handler/post_label/create.rs +3 −0 View lib/post/handler/post_label/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/posts/{space_name}/labels",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreatePostLabelOption>,
1417 responses((status = 201, description = "Create a board label", body = AppResponseData<PostLabelView>)),
1518 security(("bearer_auth" = []))
Modified lib/post/handler/post_label/delete.rs lib/post/handler/post_label/delete.rs +4 −0 View lib/post/handler/post_label/delete.rs
@@ -11,6 +11,10 @@
1111 delete,
1212 path = "/posts/{space_name}/labels/{label_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("label_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Delete a board label")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/post/handler/post_label/get.rs lib/post/handler/post_label/get.rs +4 −0 View lib/post/handler/post_label/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/posts/{space_name}/labels/{label_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("label_id" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get a board label", body = AppResponseData<PostLabelView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/post/handler/post_label/list.rs lib/post/handler/post_label/list.rs +5 −1 View lib/post/handler/post_label/list.rs
@@ -9,6 +9,7 @@
99use crate::features::post_label::PostLabelPage;
1010
1111#[derive(Debug, Clone, Serialize, Deserialize, IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub(crate) struct ListLabelQuery {
1314 pub q: Option<String>,
1415 pub is_archived: Option<bool>,
@@ -20,7 +21,10 @@
2021 get,
2122 path = "/posts/{space_name}/labels",
2223 tag = "posts",
23 params(ListLabelQuery),
24 params(
25 ListLabelQuery,
26 ("space_name" = String, Path),
27 ),
2428 responses((status = 200, description = "List board labels", body = AppResponseData<PostLabelPage>)),
2529 security(("bearer_auth" = []))
2630)]
Modified lib/post/handler/post_label/list_for_post.rs lib/post/handler/post_label/list_for_post.rs +4 −0 View lib/post/handler/post_label/list_for_post.rs
@@ -10,6 +10,10 @@
1010 get,
1111 path = "/posts/{space_name}/{number}/labels",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "List labels bound to a post", body = AppResponseData<Vec<PostLabelView>>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post_label/unbind.rs lib/post/handler/post_label/unbind.rs +5 −0 View lib/post/handler/post_label/unbind.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/posts/{space_name}/{number}/labels/{label_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("number" = i64, Path),
17 ("label_id" = Uuid, Path),
18 ),
1419 responses((status = 200, description = "Unbind a label from a post")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/post/handler/post_label/update.rs lib/post/handler/post_label/update.rs +4 −0 View lib/post/handler/post_label/update.rs
@@ -11,6 +11,10 @@
1111 patch,
1212 path = "/posts/{space_name}/labels/{label_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("label_id" = Uuid, Path),
17 ),
1418 request_body = AppRequestData<UpdatePostLabelOption>,
1519 responses((status = 200, description = "Update a board label", body = AppResponseData<PostLabelView>)),
1620 security(("bearer_auth" = []))
Modified lib/post/handler/post_mention/create.rs lib/post/handler/post_mention/create.rs +4 −0 View lib/post/handler/post_mention/create.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/mentions",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 request_body = AppRequestData<CreateMentionOption>,
1418 responses((status = 201, description = "Mention a user/role in a post", body = AppResponseData<PostMentionView>)),
1519 security(("bearer_auth" = []))
Modified lib/post/handler/post_mention/list.rs lib/post/handler/post_mention/list.rs +6 −1 View lib/post/handler/post_mention/list.rs
@@ -9,6 +9,7 @@
99use crate::features::post_mention::PostMentionView;
1010
1111#[derive(Debug, Clone, Serialize, Deserialize, IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub(crate) struct ListMentionQuery {
1314 pub limit: Option<u64>,
1415 pub offset: Option<u64>,
@@ -18,7 +19,11 @@
1819 get,
1920 path = "/posts/{space_name}/{number}/mentions",
2021 tag = "posts",
21 params(ListMentionQuery),
22 params(
23 ListMentionQuery,
24 ("space_name" = String, Path),
25 ("number" = i64, Path),
26 ),
2227 responses((status = 200, description = "List mentions", body = AppResponseData<Vec<PostMentionView>>)),
2328 security(("bearer_auth" = []))
2429)]
Modified lib/post/handler/post_reaction/create.rs lib/post/handler/post_reaction/create.rs +4 −0 View lib/post/handler/post_reaction/create.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/reactions",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 request_body = AppRequestData<CreatePostReactionOption>,
1418 responses((status = 201, description = "React to a post", body = AppResponseData<PostReactionView>)),
1519 security(("bearer_auth" = []))
Modified lib/post/handler/post_reaction/delete.rs lib/post/handler/post_reaction/delete.rs +5 −0 View lib/post/handler/post_reaction/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/posts/{space_name}/{number}/reactions/{reaction_id}",
1313 tag = "posts",
14 params(
15 ("space_name" = String, Path),
16 ("number" = i64, Path),
17 ("reaction_id" = Uuid, Path),
18 ),
1419 responses((status = 200, description = "Remove a reaction")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/post/handler/post_reaction/list.rs lib/post/handler/post_reaction/list.rs +6 −1 View lib/post/handler/post_reaction/list.rs
@@ -9,6 +9,7 @@
99use crate::features::post_reaction::PostReactionView;
1010
1111#[derive(Debug, Clone, Serialize, Deserialize, IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub(crate) struct ListReactionQuery {
1314 pub limit: Option<u64>,
1415 pub offset: Option<u64>,
@@ -18,7 +19,11 @@
1819 get,
1920 path = "/posts/{space_name}/{number}/reactions",
2021 tag = "posts",
21 params(ListReactionQuery),
22 params(
23 ListReactionQuery,
24 ("space_name" = String, Path),
25 ("number" = i64, Path),
26 ),
2227 responses((status = 200, description = "List reactions", body = AppResponseData<Vec<PostReactionView>>)),
2328 security(("bearer_auth" = []))
2429)]
Modified lib/post/handler/post_reply/create.rs lib/post/handler/post_reply/create.rs +4 −0 View lib/post/handler/post_reply/create.rs
@@ -10,6 +10,10 @@
1010 post,
1111 path = "/posts/{space_name}/{number}/replies",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 request_body = AppRequestData<CreateReplyOption>,
1418 responses((status = 201, description = "Create a reply", body = AppResponseData<PostReplyView>)),
1519 security(("bearer_auth" = []))
Modified lib/post/handler/post_reply/list.rs lib/post/handler/post_reply/list.rs +6 −1 View lib/post/handler/post_reply/list.rs
@@ -9,6 +9,7 @@
99use crate::features::post_reply::PostReplyPage;
1010
1111#[derive(Debug, Clone, Serialize, Deserialize, IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub(crate) struct ListReplyQuery {
1314 pub limit: Option<u64>,
1415 pub offset: Option<u64>,
@@ -18,7 +19,11 @@
1819 get,
1920 path = "/posts/{space_name}/{number}/replies",
2021 tag = "posts",
21 params(ListReplyQuery),
22 params(
23 ListReplyQuery,
24 ("space_name" = String, Path),
25 ("number" = i64, Path),
26 ),
2227 responses((status = 200, description = "List replies", body = AppResponseData<PostReplyPage>)),
2328 security(("bearer_auth" = []))
2429)]
Modified lib/post/handler/post_watch/delete.rs lib/post/handler/post_watch/delete.rs +4 −0 View lib/post/handler/post_watch/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/posts/{space_name}/{number}/watch",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Delete my watch state")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post_watch/get.rs lib/post/handler/post_watch/get.rs +4 −0 View lib/post/handler/post_watch/get.rs
@@ -10,6 +10,10 @@
1010 get,
1111 path = "/posts/{space_name}/{number}/watch",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 responses((status = 200, description = "Get my watch state", body = AppResponseData<PostWatchView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/post/handler/post_watch/upsert.rs lib/post/handler/post_watch/upsert.rs +4 −0 View lib/post/handler/post_watch/upsert.rs
@@ -10,6 +10,10 @@
1010 put,
1111 path = "/posts/{space_name}/{number}/watch",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ("number" = i64, Path),
16 ),
1317 request_body = AppRequestData<UpsertPostWatchOption>,
1418 responses((status = 200, description = "Upsert watch state", body = AppResponseData<PostWatchView>)),
1519 security(("bearer_auth" = []))
Modified lib/post/handler/posts/create.rs lib/post/handler/posts/create.rs +3 −0 View lib/post/handler/posts/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/posts/{space_name}/boards",
1212 tag = "posts",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreatePostBoardOption>,
1417 responses((status = 201, description = "Create a posts board (collection)", body = AppResponseData<PostBoardView>)),
1518 security(("bearer_auth" = []))
Modified lib/post/handler/posts/list.rs lib/post/handler/posts/list.rs +3 −0 View lib/post/handler/posts/list.rs
@@ -22,6 +22,9 @@
2222 get,
2323 path = "/posts/{space_name}",
2424 tag = "posts",
25 params(
26 ("space_name" = String, Path),
27 ),
2528 responses((status = 200, description = "Posts board view OR post list (when query.status/q/author_id is set)")),
2629 security(("bearer_auth" = []))
2730)]
Modified lib/project/handler/activities/list.rs lib/project/handler/activities/list.rs +3 −1 View lib/project/handler/activities/list.rs
@@ -11,7 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/activities",
1313 tag = "project",
14 params(ListActivityQuery),
14 params(
15 ListActivityQuery, ProjectPath,
16 ),
1517 responses((status = 200, description = "List activities", body = AppResponseData<ActivityPage>)),
1618 security(("bearer_auth" = []))
1719)]
Modified lib/project/handler/documents/create.rs lib/project/handler/documents/create.rs +3 −0 View lib/project/handler/documents/create.rs
@@ -11,6 +11,9 @@
1111 post,
1212 path = "/projects/{space_name}/{project_id}/documents",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<CreateDocumentCmd>,
1518 responses((status = 201, description = "Create a document", body = AppResponseData<DocumentView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/documents/delete.rs lib/project/handler/documents/delete.rs +3 −0 View lib/project/handler/documents/delete.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}/documents/{doc_id}",
1212 tag = "project",
13 params(
14 DocumentPath,
15 ),
1316 responses((status = 204, description = "Delete a document")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/documents/get.rs lib/project/handler/documents/get.rs +3 −0 View lib/project/handler/documents/get.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/documents/{doc_id}",
1313 tag = "project",
14 params(
15 DocumentPath,
16 ),
1417 responses((status = 200, description = "Get a document", body = AppResponseData<DocumentView>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/documents/list.rs lib/project/handler/documents/list.rs +3 −0 View lib/project/handler/documents/list.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/documents",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "List documents", body = AppResponseData<DocumentPage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/documents/update.rs lib/project/handler/documents/update.rs +3 −0 View lib/project/handler/documents/update.rs
@@ -11,6 +11,9 @@
1111 patch,
1212 path = "/projects/{space_name}/{project_id}/documents/{doc_id}",
1313 tag = "project",
14 params(
15 DocumentPath,
16 ),
1417 request_body = AppRequestData<UpdateDocumentCmd>,
1518 responses((status = 200, description = "Update a document", body = AppResponseData<DocumentView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/favorites/add.rs lib/project/handler/favorites/add.rs +3 −0 View lib/project/handler/favorites/add.rs
@@ -11,6 +11,9 @@
1111 post,
1212 path = "/projects/{space_name}/{project_id}/favorites",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<AddFavoriteCmd>,
1518 responses((status = 201, description = "Add a favorite", body = AppResponseData<FavoriteView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/favorites/list.rs lib/project/handler/favorites/list.rs +3 −0 View lib/project/handler/favorites/list.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/favorites",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "List favorites", body = AppResponseData<FavoritePage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/favorites/remove.rs lib/project/handler/favorites/remove.rs +3 −0 View lib/project/handler/favorites/remove.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}/favorites/{favorite_id}",
1212 tag = "project",
13 params(
14 FavoritePath,
15 ),
1316 responses((status = 204, description = "Remove a favorite")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/lifecycle/create.rs lib/project/handler/lifecycle/create.rs +3 −0 View lib/project/handler/lifecycle/create.rs
@@ -10,6 +10,9 @@
1010 post,
1111 path = "/projects/{space_name}",
1212 tag = "project",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 request_body = AppRequestData<CreateProjectCmd>,
1417 responses((status = 201, description = "Create a project", body = AppResponseData<ProjectView>)),
1518 security(("bearer_auth" = []))
Modified lib/project/handler/lifecycle/delete.rs lib/project/handler/lifecycle/delete.rs +3 −0 View lib/project/handler/lifecycle/delete.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}",
1212 tag = "project",
13 params(
14 ProjectPath,
15 ),
1316 responses((status = 204, description = "Delete a project")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/lifecycle/get.rs lib/project/handler/lifecycle/get.rs +3 −0 View lib/project/handler/lifecycle/get.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "Get a project", body = AppResponseData<ProjectView>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/lifecycle/list.rs lib/project/handler/lifecycle/list.rs +3 −0 View lib/project/handler/lifecycle/list.rs
@@ -10,6 +10,9 @@
1010 get,
1111 path = "/projects/{space_name}",
1212 tag = "project",
13 params(
14 ("space_name" = String, Path),
15 ),
1316 responses((status = 200, description = "List projects", body = AppResponseData<ProjectPage>)),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/lifecycle/update.rs lib/project/handler/lifecycle/update.rs +3 −0 View lib/project/handler/lifecycle/update.rs
@@ -11,6 +11,9 @@
1111 patch,
1212 path = "/projects/{space_name}/{project_id}",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<UpdateProjectCmd>,
1518 responses((status = 200, description = "Update a project", body = AppResponseData<ProjectView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/links/add.rs lib/project/handler/links/add.rs +3 −0 View lib/project/handler/links/add.rs
@@ -11,6 +11,9 @@
1111 post,
1212 path = "/projects/{space_name}/{project_id}/links",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<AddLinkCmd>,
1518 responses((status = 201, description = "Add a link", body = AppResponseData<LinkView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/links/list.rs lib/project/handler/links/list.rs +3 −0 View lib/project/handler/links/list.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/links",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "List links", body = AppResponseData<LinkPage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/links/remove.rs lib/project/handler/links/remove.rs +3 −0 View lib/project/handler/links/remove.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}/links/{link_id}",
1212 tag = "project",
13 params(
14 LinkPath,
15 ),
1316 responses((status = 204, description = "Remove a link")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/members/add.rs lib/project/handler/members/add.rs +3 −0 View lib/project/handler/members/add.rs
@@ -11,6 +11,9 @@
1111 post,
1212 path = "/projects/{space_name}/{project_id}/members",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<AddMemberCmd>,
1518 responses((status = 201, description = "Add a member", body = AppResponseData<MemberView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/members/get.rs lib/project/handler/members/get.rs +3 −0 View lib/project/handler/members/get.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/members/{user_id}",
1313 tag = "project",
14 params(
15 MemberPath,
16 ),
1417 responses((status = 200, description = "Get a member", body = AppResponseData<MemberView>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/members/list.rs lib/project/handler/members/list.rs +3 −0 View lib/project/handler/members/list.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/members",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "List members", body = AppResponseData<MemberPage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/members/remove.rs lib/project/handler/members/remove.rs +3 −0 View lib/project/handler/members/remove.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}/members/{user_id}",
1212 tag = "project",
13 params(
14 MemberPath,
15 ),
1316 responses((status = 204, description = "Remove a member")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/members/update.rs lib/project/handler/members/update.rs +3 −0 View lib/project/handler/members/update.rs
@@ -11,6 +11,9 @@
1111 patch,
1212 path = "/projects/{space_name}/{project_id}/members/{user_id}",
1313 tag = "project",
14 params(
15 MemberPath,
16 ),
1417 request_body = AppRequestData<UpdateMemberCmd>,
1518 responses((status = 200, description = "Update a member", body = AppResponseData<MemberView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/views/create.rs lib/project/handler/views/create.rs +3 −0 View lib/project/handler/views/create.rs
@@ -11,6 +11,9 @@
1111 post,
1212 path = "/projects/{space_name}/{project_id}/views",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 request_body = AppRequestData<CreateViewCmd>,
1518 responses((status = 201, description = "Create a view", body = AppResponseData<ViewView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/views/delete.rs lib/project/handler/views/delete.rs +3 −0 View lib/project/handler/views/delete.rs
@@ -10,6 +10,9 @@
1010 delete,
1111 path = "/projects/{space_name}/{project_id}/views/{view_id}",
1212 tag = "project",
13 params(
14 ViewPath,
15 ),
1316 responses((status = 204, description = "Delete a view")),
1417 security(("bearer_auth" = []))
1518)]
Modified lib/project/handler/views/get.rs lib/project/handler/views/get.rs +3 −0 View lib/project/handler/views/get.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/views/{view_id}",
1313 tag = "project",
14 params(
15 ViewPath,
16 ),
1417 responses((status = 200, description = "Get a view", body = AppResponseData<ViewView>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/views/list.rs lib/project/handler/views/list.rs +3 −0 View lib/project/handler/views/list.rs
@@ -11,6 +11,9 @@
1111 get,
1212 path = "/projects/{space_name}/{project_id}/views",
1313 tag = "project",
14 params(
15 ProjectPath,
16 ),
1417 responses((status = 200, description = "List views", body = AppResponseData<ViewPage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/project/handler/views/update.rs lib/project/handler/views/update.rs +3 −0 View lib/project/handler/views/update.rs
@@ -11,6 +11,9 @@
1111 patch,
1212 path = "/projects/{space_name}/{project_id}/views/{view_id}",
1313 tag = "project",
14 params(
15 ViewPath,
16 ),
1417 request_body = AppRequestData<UpdateViewCmd>,
1518 responses((status = 200, description = "Update a view", body = AppResponseData<ViewView>)),
1619 security(("bearer_auth" = []))
Modified lib/project/handler/query.rs lib/project/handler/query.rs +7 −6 View lib/project/handler/query.rs
@@ -1,41 +1,42 @@
11use serde::Deserialize;
2use utoipa::IntoParams;
23use uuid::Uuid;
34
4#[derive(Debug, Clone, Deserialize)]
5#[derive(Debug, Clone, Deserialize, IntoParams)]
56pub struct ProjectPath {
67 pub space_name: String,
78 pub project_id: Uuid,
89}
910
10#[derive(Debug, Clone, Deserialize)]
11#[derive(Debug, Clone, Deserialize, IntoParams)]
1112pub struct MemberPath {
1213 pub space_name: String,
1314 pub project_id: Uuid,
1415 pub user_id: Uuid,
1516}
1617
17#[derive(Debug, Clone, Deserialize)]
18#[derive(Debug, Clone, Deserialize, IntoParams)]
1819pub struct ViewPath {
1920 pub space_name: String,
2021 pub project_id: Uuid,
2122 pub view_id: Uuid,
2223}
2324
24#[derive(Debug, Clone, Deserialize)]
25#[derive(Debug, Clone, Deserialize, IntoParams)]
2526pub struct DocumentPath {
2627 pub space_name: String,
2728 pub project_id: Uuid,
2829 pub doc_id: Uuid,
2930}
3031
31#[derive(Debug, Clone, Deserialize)]
32#[derive(Debug, Clone, Deserialize, IntoParams)]
3233pub struct LinkPath {
3334 pub space_name: String,
3435 pub project_id: Uuid,
3536 pub link_id: Uuid,
3637}
3738
38#[derive(Debug, Clone, Deserialize)]
39#[derive(Debug, Clone, Deserialize, IntoParams)]
3940pub struct FavoritePath {
4041 pub space_name: String,
4142 pub project_id: Uuid,
Modified lib/repo/features/commit_status/types.rs lib/repo/features/commit_status/types.rs +1 −0 View lib/repo/features/commit_status/types.rs
@@ -109,6 +109,7 @@
109109}
110110
111111#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
112#[into_params(parameter_in = Query)]
112113pub struct ListStatusQuery {
113114 pub sort: Option<String>,
114115 pub state: Option<String>,
Modified lib/repo/handler/archive/get.rs lib/repo/handler/archive/get.rs +7 −1 View lib/repo/handler/archive/get.rs
@@ -14,7 +14,13 @@
1414 get,
1515 path = "/repos/{space_name}/{repo_id}/archive/{archive_format}/{ref_name}",
1616 tag = "repo",
17 params(ArchiveFormatQuery),
17 params(
18 ArchiveFormatQuery,
19 ("space_name" = String, Path),
20 ("repo_id" = Uuid, Path),
21 ("archive_format" = String, Path),
22 ("ref_name" = String, Path),
23 ),
1824 responses((status = 200, description = "Download an archive")),
1925 security(("bearer_auth" = []))
2026)]
Modified lib/repo/handler/branch/create.rs lib/repo/handler/branch/create.rs +4 −0 View lib/repo/handler/branch/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/branches",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateBranchOption>,
1620 responses((status = 201, description = "Create a branch", body = AppResponseData<BranchView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/branch/delete.rs lib/repo/handler/branch/delete.rs +5 −0 View lib/repo/handler/branch/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/branches/{branch_name}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("branch_name" = String, Path),
18 ),
1419 responses((status = 204, description = "Delete a branch")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/branch/get.rs lib/repo/handler/branch/get.rs +5 −0 View lib/repo/handler/branch/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/branches/{branch_name}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("branch_name" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a branch", body = AppResponseData<BranchView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/branch/list.rs lib/repo/handler/branch/list.rs +5 −1 View lib/repo/handler/branch/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/branches",
1414 tag = "repo",
15 params(ListBranchQuery),
15 params(
16 ListBranchQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List branches", body = AppResponseData<BranchPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/branch/merge_upstream.rs lib/repo/handler/branch/merge_upstream.rs +4 −0 View lib/repo/handler/branch/merge_upstream.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/merge-upstream",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<MergeUpstreamRequest>,
1620 responses((status = 200, description = "Merge upstream", body = AppResponseData<MergeUpstreamResponse>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/branch/rename.rs lib/repo/handler/branch/rename.rs +5 −0 View lib/repo/handler/branch/rename.rs
@@ -12,6 +12,11 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}/branches/{branch_name}/rename",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("branch_name" = String, Path),
19 ),
1520 request_body = AppRequestData<RenameBranchOption>,
1621 responses((status = 200, description = "Rename a branch", body = AppResponseData<BranchView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/branch/update.rs lib/repo/handler/branch/update.rs +5 −0 View lib/repo/handler/branch/update.rs
@@ -12,6 +12,11 @@
1212 put,
1313 path = "/repos/{space_name}/{repo_id}/branches/{branch_name}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("branch_name" = String, Path),
19 ),
1520 request_body = AppRequestData<UpdateBranchOption>,
1621 responses((status = 200, description = "Update a branch", body = AppResponseData<BranchView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/branch_protection/create.rs lib/repo/handler/branch_protection/create.rs +4 −0 View lib/repo/handler/branch_protection/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/branch_protections",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateBranchProtectionOption>,
1620 responses((status = 201, description = "Create a branch protection", body = AppResponseData<BranchProtectionView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/branch_protection/delete.rs lib/repo/handler/branch_protection/delete.rs +5 −0 View lib/repo/handler/branch_protection/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/branch_protections/{policy_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("policy_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "Delete a branch protection")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/branch_protection/edit.rs lib/repo/handler/branch_protection/edit.rs +5 −0 View lib/repo/handler/branch_protection/edit.rs
@@ -12,6 +12,11 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}/branch_protections/{policy_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("policy_id" = Uuid, Path),
19 ),
1520 request_body = AppRequestData<EditBranchProtectionOption>,
1621 responses((status = 200, description = "Edit a branch protection", body = AppResponseData<BranchProtectionView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/branch_protection/get.rs lib/repo/handler/branch_protection/get.rs +5 −0 View lib/repo/handler/branch_protection/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/branch_protections/{policy_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("policy_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "Get a branch protection", body = AppResponseData<BranchProtectionView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/branch_protection/list.rs lib/repo/handler/branch_protection/list.rs +5 −1 View lib/repo/handler/branch_protection/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/branch_protections",
1414 tag = "repo",
15 params(ListBranchProtectionQuery),
15 params(
16 ListBranchProtectionQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List branch protections", body = AppResponseData<BranchProtectionPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/branch_protection/priority.rs lib/repo/handler/branch_protection/priority.rs +4 −0 View lib/repo/handler/branch_protection/priority.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/branch_protections/priority",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<UpdateBranchProtectionPriorities>,
1620 responses((status = 204, description = "Update branch protection priorities")),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/collab/add.rs lib/repo/handler/collab/add.rs +5 −0 View lib/repo/handler/collab/add.rs
@@ -12,6 +12,11 @@
1212 put,
1313 path = "/repos/{space_name}/{repo_id}/collaborators/{user_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("user_id" = Uuid, Path),
19 ),
1520 request_body = AppRequestData<AddCollaboratorOption>,
1621 responses((status = 204, description = "Add or update a collaborator")),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/collab/delete.rs lib/repo/handler/collab/delete.rs +5 −0 View lib/repo/handler/collab/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/collaborators/{user_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("user_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "Remove a collaborator")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/collab/is.rs lib/repo/handler/collab/is.rs +5 −0 View lib/repo/handler/collab/is.rs
@@ -11,6 +11,11 @@
1111 get,
1212 path = "/repos/{space_name}/{repo_id}/collaborators/{user_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("user_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "User is a collaborator")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/collab/list.rs lib/repo/handler/collab/list.rs +5 −1 View lib/repo/handler/collab/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/collaborators",
1414 tag = "repo",
15 params(ListCollaboratorQuery),
15 params(
16 ListCollaboratorQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List collaborators", body = AppResponseData<CollaboratorPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/collab/permission.rs lib/repo/handler/collab/permission.rs +5 −0 View lib/repo/handler/collab/permission.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/collaborators/{user_id}/permission",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("user_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "Get collaborator permission", body = AppResponseData<RepoCollaboratorPermission>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/commit_status/combined.rs lib/repo/handler/commit_status/combined.rs +5 −0 View lib/repo/handler/commit_status/combined.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/commits/{ref}/status",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("ref" = String, Path),
19 ),
1520 responses((status = 200, description = "Get combined status by ref", body = AppResponseData<CombinedStatusView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/commit_status/create.rs lib/repo/handler/commit_status/create.rs +5 −0 View lib/repo/handler/commit_status/create.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/statuses/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 request_body = AppRequestData<CreateStatusOption>,
1621 responses((status = 201, description = "Create a commit status", body = AppResponseData<CommitStatusView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/commit_status/list.rs lib/repo/handler/commit_status/list.rs +6 −1 View lib/repo/handler/commit_status/list.rs
@@ -12,7 +12,12 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/statuses/{sha}",
1414 tag = "repo",
15 params(ListStatusQuery),
15 params(
16 ListStatusQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ("sha" = String, Path),
20 ),
1621 responses((status = 200, description = "List commit statuses", body = AppResponseData<CommitStatusPage>)),
1722 security(("bearer_auth" = []))
1823)]
Modified lib/repo/handler/commit_status/list_by_ref.rs lib/repo/handler/commit_status/list_by_ref.rs +6 −1 View lib/repo/handler/commit_status/list_by_ref.rs
@@ -12,7 +12,12 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/commits/{ref}/statuses",
1414 tag = "repo",
15 params(ListStatusQuery),
15 params(
16 ListStatusQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ("ref" = String, Path),
20 ),
1621 responses((status = 200, description = "List commit statuses by ref", body = AppResponseData<CommitStatusPage>)),
1722 security(("bearer_auth" = []))
1823)]
Modified lib/repo/handler/compare/compare.rs lib/repo/handler/compare/compare.rs +6 −0 View lib/repo/handler/compare/compare.rs
@@ -12,6 +12,12 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/compare/{base}...{head}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("base" = String, Path),
19 ("head" = String, Path),
20 ),
1521 responses((status = 200, description = "Compare two refs", body = AppResponseData<CompareView>)),
1622 security(("bearer_auth" = []))
1723)]
Modified lib/repo/handler/contents/change_files.rs lib/repo/handler/contents/change_files.rs +4 −0 View lib/repo/handler/contents/change_files.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/contents/change",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<ChangeFilesOptions>,
1620 responses((status = 200, description = "Multi-file change", body = AppResponseData<ContentsListResponse>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/contents/create.rs lib/repo/handler/contents/create.rs +5 −0 View lib/repo/handler/contents/create.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/contents/{path}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("path" = String, Path),
19 ),
1520 request_body = AppRequestData<CreateFileOption>,
1621 responses((status = 201, description = "Create a file", body = AppResponseData<ContentsResponse>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/contents/delete.rs lib/repo/handler/contents/delete.rs +5 −0 View lib/repo/handler/contents/delete.rs
@@ -12,6 +12,11 @@
1212 delete,
1313 path = "/repos/{space_name}/{repo_id}/contents/{path}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("path" = String, Path),
19 ),
1520 request_body = AppRequestData<DeleteFileOption>,
1621 responses((status = 204, description = "Delete a file")),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/contents/diff_patch.rs lib/repo/handler/contents/diff_patch.rs +4 −0 View lib/repo/handler/contents/diff_patch.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/diffpatch",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<ApplyDiffPatchFileOptions>,
1620 responses((status = 200, description = "Apply a diff patch", body = AppResponseData<ContentsResponse>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/contents/get.rs lib/repo/handler/contents/get.rs +6 −1 View lib/repo/handler/contents/get.rs
@@ -12,7 +12,12 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/contents/{path}",
1414 tag = "repo",
15 params(ContentsQuery),
15 params(
16 ContentsQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ("path" = String, Path),
20 ),
1621 responses((status = 200, description = "Get a file or directory", body = AppResponseData<ContentsResponse>)),
1722 security(("bearer_auth" = []))
1823)]
Modified lib/repo/handler/contents/get_list.rs lib/repo/handler/contents/get_list.rs +5 −1 View lib/repo/handler/contents/get_list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/contents",
1414 tag = "repo",
15 params(ContentsQuery),
15 params(
16 ContentsQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List contents at root", body = AppResponseData<ContentsListResponse>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/contents/update.rs lib/repo/handler/contents/update.rs +5 −0 View lib/repo/handler/contents/update.rs
@@ -12,6 +12,11 @@
1212 put,
1313 path = "/repos/{space_name}/{repo_id}/contents/{path}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("path" = String, Path),
19 ),
1520 request_body = AppRequestData<UpdateFileOption>,
1621 responses((status = 200, description = "Update a file", body = AppResponseData<ContentsResponse>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/deploy_key/create.rs lib/repo/handler/deploy_key/create.rs +4 −0 View lib/repo/handler/deploy_key/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/keys",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateDeployKeyOption>,
1620 responses((status = 201, description = "Create a deploy key", body = AppResponseData<DeployKeyView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/deploy_key/delete.rs lib/repo/handler/deploy_key/delete.rs +5 −0 View lib/repo/handler/deploy_key/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/keys/{key_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("key_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "Delete a deploy key")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/deploy_key/get.rs lib/repo/handler/deploy_key/get.rs +5 −0 View lib/repo/handler/deploy_key/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/keys/{key_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("key_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "Get a deploy key", body = AppResponseData<DeployKeyView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/deploy_key/list.rs lib/repo/handler/deploy_key/list.rs +5 −1 View lib/repo/handler/deploy_key/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/keys",
1414 tag = "repo",
15 params(ListDeployKeyQuery),
15 params(
16 ListDeployKeyQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List deploy keys", body = AppResponseData<DeployKeyPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/extras/assigns.rs lib/repo/handler/extras/assigns.rs +5 −0 View lib/repo/handler/extras/assigns.rs
@@ -11,6 +11,11 @@
1111 get,
1212 path = "/repos/{space_name}/{repo_id}/assignees/{assignee}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("assignee" = String, Path),
18 ),
1419 responses((status = 204, description = "User is a valid assignee")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/extras/avatar.rs lib/repo/handler/extras/avatar.rs +8 −0 View lib/repo/handler/extras/avatar.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/avatar",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<UpdateAvatarOption>,
1620 responses((status = 204, description = "Update repo avatar")),
1721 security(("bearer_auth" = []))
@@ -34,6 +38,10 @@
3438 delete,
3539 path = "/repos/{space_name}/{repo_id}/avatar",
3640 tag = "repo",
41 params(
42 ("space_name" = String, Path),
43 ("repo_id" = Uuid, Path),
44 ),
3745 responses((status = 204, description = "Delete repo avatar")),
3846 security(("bearer_auth" = []))
3947)]
Modified lib/repo/handler/extras/commit_status_ref.rs lib/repo/handler/extras/commit_status_ref.rs +11 −1 View lib/repo/handler/extras/commit_status_ref.rs
@@ -14,7 +14,12 @@
1414 get,
1515 path = "/repos/{space_name}/{repo_id}/commits/{ref}/statuses",
1616 tag = "repo",
17 params(ListStatusQuery),
17 params(
18 ListStatusQuery,
19 ("space_name" = String, Path),
20 ("repo_id" = Uuid, Path),
21 ("ref" = String, Path),
22 ),
1823 responses((status = 200, description = "List commit statuses by ref", body = AppResponseData<CommitStatusPage>)),
1924 security(("bearer_auth" = []))
2025)]
@@ -38,6 +43,11 @@
3843 get,
3944 path = "/repos/{space_name}/{repo_id}/commits/{ref}/status",
4045 tag = "repo",
46 params(
47 ("space_name" = String, Path),
48 ("repo_id" = Uuid, Path),
49 ("ref" = String, Path),
50 ),
4151 responses((status = 200, description = "Get combined commit status by ref", body = AppResponseData<CombinedStatusView>)),
4252 security(("bearer_auth" = []))
4353)]
Modified lib/repo/handler/extras/commits.rs lib/repo/handler/extras/commits.rs +15 −1 View lib/repo/handler/extras/commits.rs
@@ -16,7 +16,11 @@
1616 get,
1717 path = "/repos/{space_name}/{repo_id}/commits",
1818 tag = "repo",
19 params(CommitsQuery),
19 params(
20 CommitsQuery,
21 ("space_name" = String, Path),
22 ("repo_id" = Uuid, Path),
23 ),
2024 responses((status = 200, description = "List commits", body = AppResponseData<CommitsResponse>)),
2125 security(("bearer_auth" = []))
2226)]
@@ -37,6 +41,11 @@
3741 get,
3842 path = "/repos/{space_name}/{repo_id}/git/commits/{sha}",
3943 tag = "repo",
44 params(
45 ("space_name" = String, Path),
46 ("repo_id" = Uuid, Path),
47 ("sha" = String, Path),
48 ),
4049 responses((status = 200, description = "Get a commit", body = AppResponseData<CommitSummary>)),
4150 security(("bearer_auth" = []))
4251)]
@@ -57,6 +66,11 @@
5766 get,
5867 path = "/repos/{space_name}/{repo_id}/git/commits/diff/{sha}",
5968 tag = "repo",
69 params(
70 ("space_name" = String, Path),
71 ("repo_id" = Uuid, Path),
72 ("sha" = String, Path),
73 ),
6074 responses((status = 200, description = "Get commit diff or patch", content_type = "text/plain")),
6175 security(("bearer_auth" = []))
6276)]
Modified lib/repo/handler/extras/contents_ext.rs lib/repo/handler/extras/contents_ext.rs +12 −3 View lib/repo/handler/extras/contents_ext.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/contents-ext",
1414 tag = "repo",
15 params(ContentsQuery),
15 params(
16 ContentsQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List contents (ext form)", body = ContentsExtResponse)),
1721 security(("bearer_auth" = []))
1822)]
@@ -34,9 +38,14 @@
3438
3539#[utoipa::path(
3640 get,
37 path = "/repos/{space_name}/{repo_id}/contents-ext/{path:path}",
41 path = "/repos/{space_name}/{repo_id}/contents-ext/{path}",
3842 tag = "repo",
39 params(ContentsQuery),
43 params(
44 ContentsQuery,
45 ("space_name" = String, Path),
46 ("repo_id" = Uuid, Path),
47 ("path" = String, Path),
48 ),
4049 responses((status = 200, description = "Get contents (ext form)", body = ContentsExtResponse)),
4150 security(("bearer_auth" = []))
4251)]
Modified lib/repo/handler/extras/editorconfig.rs lib/repo/handler/extras/editorconfig.rs +6 −1 View lib/repo/handler/extras/editorconfig.rs
@@ -10,8 +10,13 @@
1010
1111#[utoipa::path(
1212 get,
13 path = "/repos/{space_name}/{repo_id}/editorconfig/{filename:path}",
13 path = "/repos/{space_name}/{repo_id}/editorconfig/{filename}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("filename" = String, Path),
19 ),
1520 responses((status = 200, description = "Get EditorConfig", content_type = "text/plain")),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/extras/file_contents.rs lib/repo/handler/extras/file_contents.rs +8 −0 View lib/repo/handler/extras/file_contents.rs
@@ -13,6 +13,10 @@
1313 get,
1414 path = "/repos/{space_name}/{repo_id}/file-contents",
1515 tag = "repo",
16 params(
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "Batch read files", body = AppResponseData<FilesResponse>)),
1721 security(("bearer_auth" = []))
1822)]
@@ -61,6 +65,10 @@
6165 post,
6266 path = "/repos/{space_name}/{repo_id}/file-contents",
6367 tag = "repo",
68 params(
69 ("space_name" = String, Path),
70 ("repo_id" = Uuid, Path),
71 ),
6472 request_body = AppRequestData<Vec<String>>,
6573 responses((status = 200, description = "Batch read files", body = AppResponseData<FileDeleteResponse>)),
6674 security(("bearer_auth" = []))
Modified lib/repo/handler/extras/fork.rs lib/repo/handler/extras/fork.rs +5 −1 View lib/repo/handler/extras/fork.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/forks",
1414 tag = "repo",
15 params(ForksQuery),
15 params(
16 ForksQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List forks", body = AppResponseData<ForksResponse>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/extras/issue_template.rs lib/repo/handler/extras/issue_template.rs +4 −0 View lib/repo/handler/extras/issue_template.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/issue_templates",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List issue templates", body = AppResponseData<Vec<IssueTemplate>>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/extras/language.rs lib/repo/handler/extras/language.rs +4 −0 View lib/repo/handler/extras/language.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/languages",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get repo language stats", body = AppResponseData<LanguagesResponse>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/extras/license.rs lib/repo/handler/extras/license.rs +4 −0 View lib/repo/handler/extras/license.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/licenses",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List detected licenses", body = AppResponseData<LicensesResponse>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/extras/media.rs lib/repo/handler/extras/media.rs +6 −1 View lib/repo/handler/extras/media.rs
@@ -10,8 +10,13 @@
1010
1111#[utoipa::path(
1212 get,
13 path = "/repos/{space_name}/{repo_id}/media/{filepath:path}",
13 path = "/repos/{space_name}/{repo_id}/media/{filepath}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("filepath" = String, Path),
19 ),
1520 responses((status = 200, description = "Get media (raw or LFS pointer)", content_type = "application/octet-stream")),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/extras/pin.rs lib/repo/handler/extras/pin.rs +4 −0 View lib/repo/handler/extras/pin.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/new_pin_allowed",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Whether new issue pins are allowed", body = AppResponseData<NewPinAllowedResponse>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/extras/raw.rs lib/repo/handler/extras/raw.rs +6 −1 View lib/repo/handler/extras/raw.rs
@@ -10,8 +10,13 @@
1010
1111#[utoipa::path(
1212 get,
13 path = "/repos/{space_name}/{repo_id}/raw/{filepath:path}",
13 path = "/repos/{space_name}/{repo_id}/raw/{filepath}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("filepath" = String, Path),
19 ),
1520 responses((status = 200, description = "Get raw file content", content_type = "application/octet-stream")),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/extras/release_attachment.rs lib/repo/handler/extras/release_attachment.rs +11 −0 View lib/repo/handler/extras/release_attachment.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/releases/{release_id}/assets",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("release_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "List release attachments", body = AppResponseData<ReleaseAttachmentListResponse>)),
1621 security(("bearer_auth" = []))
1722)]
@@ -33,6 +38,12 @@
3338 get,
3439 path = "/repos/{space_name}/{repo_id}/releases/{release_id}/assets/{attachment_id}",
3540 tag = "repo",
41 params(
42 ("space_name" = String, Path),
43 ("repo_id" = Uuid, Path),
44 ("release_id" = Uuid, Path),
45 ("attachment_id" = Uuid, Path),
46 ),
3647 responses((status = 200, description = "Get a release attachment", body = AppResponseData<ReleaseAttachmentView>)),
3748 security(("bearer_auth" = []))
3849)]
Modified lib/repo/handler/extras/repo_by_id.rs lib/repo/handler/extras/repo_by_id.rs +3 −0 View lib/repo/handler/extras/repo_by_id.rs
@@ -12,6 +12,9 @@
1212 get,
1313 path = "/repositories/{id}",
1414 tag = "repo",
15 params(
16 ("id" = Uuid, Path),
17 ),
1518 responses((status = 200, description = "Get a repository by id", body = AppResponseData<RepoSummary>)),
1619 security(("bearer_auth" = []))
1720)]
Modified lib/repo/handler/extras/repo_extra.rs lib/repo/handler/extras/repo_extra.rs +8 −0 View lib/repo/handler/extras/repo_extra.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/issue_config",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get issue config", body = AppResponseData<IssueConfig>)),
1620 security(("bearer_auth" = []))
1721)]
@@ -31,6 +35,10 @@
3135 get,
3236 path = "/repos/{space_name}/{repo_id}/issue_config/validate",
3337 tag = "repo",
38 params(
39 ("space_name" = String, Path),
40 ("repo_id" = Uuid, Path),
41 ),
3442 responses((status = 200, description = "Validate issue config", body = AppResponseData<IssueConfigValidation>)),
3543 security(("bearer_auth" = []))
3644)]
Modified lib/repo/handler/extras/reviews.rs lib/repo/handler/extras/reviews.rs +4 −0 View lib/repo/handler/extras/reviews.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/reviewers",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List reviewers", body = AppResponseData<Vec<UserMini>>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/extras/signing_key.rs lib/repo/handler/extras/signing_key.rs +8 −0 View lib/repo/handler/extras/signing_key.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/signing-key.gpg",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "GPG signing key", content_type = "text/plain")),
1620 security(("bearer_auth" = []))
1721)]
@@ -39,6 +43,10 @@
3943 get,
4044 path = "/repos/{space_name}/{repo_id}/signing-key.pub",
4145 tag = "repo",
46 params(
47 ("space_name" = String, Path),
48 ("repo_id" = Uuid, Path),
49 ),
4250 responses((status = 200, description = "SSH signing key", content_type = "text/plain")),
4351 security(("bearer_auth" = []))
4452)]
Modified lib/repo/handler/extras/stargazer.rs lib/repo/handler/extras/stargazer.rs +6 −1 View lib/repo/handler/extras/stargazer.rs
@@ -9,6 +9,7 @@
99use crate::features::extras::UserMini;
1010
1111#[derive(serde::Deserialize, utoipa::IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub struct StargazerQuery {
1314 pub page: Option<u64>,
1415 pub limit: Option<u64>,
@@ -18,7 +19,11 @@
1819 get,
1920 path = "/repos/{space_name}/{repo_id}/stargazers",
2021 tag = "repo",
21 params(StargazerQuery),
22 params(
23 StargazerQuery,
24 ("space_name" = String, Path),
25 ("repo_id" = Uuid, Path),
26 ),
2227 responses((status = 200, description = "List stargazers", body = AppResponseData<Vec<UserMini>>)),
2328 security(("bearer_auth" = []))
2429)]
Modified lib/repo/handler/extras/subscription.rs lib/repo/handler/extras/subscription.rs +12 −0 View lib/repo/handler/extras/subscription.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/subscription",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get current user's subscription", body = AppResponseData<Subscription>)),
1620 security(("bearer_auth" = []))
1721)]
@@ -35,6 +39,10 @@
3539 put,
3640 path = "/repos/{space_name}/{repo_id}/subscription",
3741 tag = "repo",
42 params(
43 ("space_name" = String, Path),
44 ("repo_id" = Uuid, Path),
45 ),
3846 responses((status = 204, description = "Watch the repo")),
3947 security(("bearer_auth" = []))
4048)]
@@ -54,6 +62,10 @@
5462 delete,
5563 path = "/repos/{space_name}/{repo_id}/subscription",
5664 tag = "repo",
65 params(
66 ("space_name" = String, Path),
67 ("repo_id" = Uuid, Path),
68 ),
5769 responses((status = 204, description = "Unwatch the repo")),
5870 security(("bearer_auth" = []))
5971)]
Modified lib/repo/handler/git_ref/annotated_tag.rs lib/repo/handler/git_ref/annotated_tag.rs +5 −0 View lib/repo/handler/git_ref/annotated_tag.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/tags/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 responses((status = 200, description = "Get an annotated tag", body = AppResponseData<CommitView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/blob.rs lib/repo/handler/git_ref/blob.rs +5 −0 View lib/repo/handler/git_ref/blob.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/blobs/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a blob", body = AppResponseData<BlobView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/commit.rs lib/repo/handler/git_ref/commit.rs +5 −0 View lib/repo/handler/git_ref/commit.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/commits/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a commit", body = AppResponseData<CommitView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/commit_diff.rs lib/repo/handler/git_ref/commit_diff.rs +5 −0 View lib/repo/handler/git_ref/commit_diff.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/commits/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a commit", body = AppResponseData<CommitView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/diff.rs lib/repo/handler/git_ref/diff.rs +6 −0 View lib/repo/handler/git_ref/diff.rs
@@ -13,6 +13,12 @@
1313 get,
1414 path = "/repos/{space_name}/{repo_id}/git/commits/{sha}.{diff_type}",
1515 tag = "repo",
16 params(
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ("sha" = String, Path),
20 ("diff_type" = String, Path),
21 ),
1622 responses((status = 200, description = "Get commit diff or patch", body = CommitDiffPayload)),
1723 security(("bearer_auth" = []))
1824)]
Modified lib/repo/handler/git_ref/notes.rs lib/repo/handler/git_ref/notes.rs +5 −0 View lib/repo/handler/git_ref/notes.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/notes/{sha}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("sha" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a note", body = AppResponseData<NoteView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/refs.rs lib/repo/handler/git_ref/refs.rs +4 −0 View lib/repo/handler/git_ref/refs.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/refs",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List git refs", body = AppResponseData<Vec<GitRef>>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/git_ref/refs_filter.rs lib/repo/handler/git_ref/refs_filter.rs +5 −0 View lib/repo/handler/git_ref/refs_filter.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/git/refs/{filter}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("filter" = String, Path),
19 ),
1520 responses((status = 200, description = "Filter git refs", body = AppResponseData<Vec<GitRef>>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/git_ref/tree.rs lib/repo/handler/git_ref/tree.rs +7 −1 View lib/repo/handler/git_ref/tree.rs
@@ -9,6 +9,7 @@
99use crate::features::git_ref::TreeView;
1010
1111#[derive(serde::Deserialize, utoipa::IntoParams)]
12#[into_params(parameter_in = Query)]
1213pub struct TreeQuery {
1314 pub recursive: Option<bool>,
1415}
@@ -17,7 +18,12 @@
1718 get,
1819 path = "/repos/{space_name}/{repo_id}/git/trees/{sha}",
1920 tag = "repo",
20 params(TreeQuery),
21 params(
22 TreeQuery,
23 ("space_name" = String, Path),
24 ("repo_id" = Uuid, Path),
25 ("sha" = String, Path),
26 ),
2127 responses((status = 200, description = "Get a tree", body = AppResponseData<TreeView>)),
2228 security(("bearer_auth" = []))
2329)]
Modified lib/repo/handler/lifecycle/archive.rs lib/repo/handler/lifecycle/archive.rs +4 −0 View lib/repo/handler/lifecycle/archive.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/archive",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<ArchiveRepoOption>,
1620 responses((status = 200, description = "Archive / unarchive a repository", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/lifecycle/delete.rs lib/repo/handler/lifecycle/delete.rs +4 −0 View lib/repo/handler/lifecycle/delete.rs
@@ -11,6 +11,10 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ),
1418 responses((status = 204, description = "Delete a repository")),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/repo/handler/lifecycle/fork.rs lib/repo/handler/lifecycle/fork.rs +4 −0 View lib/repo/handler/lifecycle/fork.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/forks",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<ForkRepoOption>,
1620 responses((status = 201, description = "Fork a repository", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/lifecycle/generate.rs lib/repo/handler/lifecycle/generate.rs +4 −0 View lib/repo/handler/lifecycle/generate.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/generate",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<GenerateRepoOption>,
1620 responses((status = 201, description = "Generate a repository from template", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/lifecycle/get.rs lib/repo/handler/lifecycle/get.rs +4 −0 View lib/repo/handler/lifecycle/get.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get a repository", body = AppResponseData<RepoView>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/lifecycle/rename.rs lib/repo/handler/lifecycle/rename.rs +4 −0 View lib/repo/handler/lifecycle/rename.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/rename",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<RenameRepoOption>,
1620 responses((status = 200, description = "Rename a repository", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/lifecycle/transfer.rs lib/repo/handler/lifecycle/transfer.rs +4 −0 View lib/repo/handler/lifecycle/transfer.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/transfer",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<TransferRepoOption>,
1620 responses((status = 200, description = "Transfer a repository", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/lifecycle/update.rs lib/repo/handler/lifecycle/update.rs +4 −0 View lib/repo/handler/lifecycle/update.rs
@@ -12,6 +12,10 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<UpdateRepoOption>,
1620 responses((status = 200, description = "Update a repository", body = AppResponseData<RepoView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/pull_request/comment/create.rs lib/repo/handler/pull_request/comment/create.rs +5 −0 View lib/repo/handler/pull_request/comment/create.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/comments",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 request_body = AppRequestData<CreatePullRequestCommentOption>,
1621 responses((status = 201, description = "Create a pull request comment", body = AppResponseData<PullRequestCommentView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/pull_request/comment/list.rs lib/repo/handler/pull_request/comment/list.rs +5 −0 View lib/repo/handler/pull_request/comment/list.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/comments",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "List pull request comments", body = AppResponseData<Vec<PullRequestCommentView>>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/review/list.rs lib/repo/handler/pull_request/review/list.rs +5 −0 View lib/repo/handler/pull_request/review/list.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/reviews",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "List pull request reviews", body = AppResponseData<Vec<PullRequestReviewView>>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/review/submit.rs lib/repo/handler/pull_request/review/submit.rs +5 −0 View lib/repo/handler/pull_request/review/submit.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/reviews",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 request_body = AppRequestData<SubmitPullRequestReviewOption>,
1621 responses((status = 201, description = "Submit a pull request review", body = AppResponseData<PullRequestReviewView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/pull_request/close.rs lib/repo/handler/pull_request/close.rs +5 −0 View lib/repo/handler/pull_request/close.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/close",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "Close a pull request", body = AppResponseData<PullRequestView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/create.rs lib/repo/handler/pull_request/create.rs +4 −0 View lib/repo/handler/pull_request/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreatePullRequestOption>,
1620 responses((status = 201, description = "Create a pull request", body = AppResponseData<PullRequestView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/pull_request/event.rs lib/repo/handler/pull_request/event.rs +5 −0 View lib/repo/handler/pull_request/event.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/events",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "List pull request events", body = AppResponseData<Vec<PullRequestEventView>>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/get.rs lib/repo/handler/pull_request/get.rs +5 −0 View lib/repo/handler/pull_request/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "Get a pull request", body = AppResponseData<PullRequestView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/list.rs lib/repo/handler/pull_request/list.rs +5 −1 View lib/repo/handler/pull_request/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/pulls",
1414 tag = "repo",
15 params(ListPullRequestQuery),
15 params(
16 ListPullRequestQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List pull requests", body = AppResponseData<PullRequestPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/pull_request/lock.rs lib/repo/handler/pull_request/lock.rs +5 −0 View lib/repo/handler/pull_request/lock.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/lock",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "Lock a pull request", body = AppResponseData<PullRequestView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/merge.rs lib/repo/handler/pull_request/merge.rs +5 −0 View lib/repo/handler/pull_request/merge.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/merge",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 request_body = AppRequestData<MergePullRequestOption>,
1621 responses((status = 200, description = "Merge a pull request", body = AppResponseData<MergeView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/pull_request/reopen.rs lib/repo/handler/pull_request/reopen.rs +5 −0 View lib/repo/handler/pull_request/reopen.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/reopen",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "Reopen a pull request", body = AppResponseData<PullRequestView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/unlock.rs lib/repo/handler/pull_request/unlock.rs +5 −0 View lib/repo/handler/pull_request/unlock.rs
@@ -12,6 +12,11 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}/unlock",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 responses((status = 200, description = "Unlock a pull request", body = AppResponseData<PullRequestView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/pull_request/update.rs lib/repo/handler/pull_request/update.rs +5 −0 View lib/repo/handler/pull_request/update.rs
@@ -12,6 +12,11 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}/pulls/{number}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("number" = i64, Path),
19 ),
1520 request_body = AppRequestData<UpdatePullRequestOption>,
1621 responses((status = 200, description = "Update a pull request", body = AppResponseData<PullRequestView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/release/by_tag.rs lib/repo/handler/release/by_tag.rs +5 −0 View lib/repo/handler/release/by_tag.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/releases/tags/{tag}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("tag" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a release by tag", body = AppResponseData<ReleaseView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/release/create.rs lib/repo/handler/release/create.rs +4 −0 View lib/repo/handler/release/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/releases",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateReleaseOption>,
1620 responses((status = 201, description = "Create a release", body = AppResponseData<ReleaseView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/release/delete.rs lib/repo/handler/release/delete.rs +5 −0 View lib/repo/handler/release/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/releases/{release_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("release_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "Delete a release")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/release/delete_by_tag.rs lib/repo/handler/release/delete_by_tag.rs +5 −0 View lib/repo/handler/release/delete_by_tag.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/releases/tags/{tag}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("tag" = String, Path),
18 ),
1419 responses((status = 204, description = "Delete a release by tag")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/release/edit.rs lib/repo/handler/release/edit.rs +5 −0 View lib/repo/handler/release/edit.rs
@@ -12,6 +12,11 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}/releases/{release_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("release_id" = Uuid, Path),
19 ),
1520 request_body = AppRequestData<EditReleaseOption>,
1621 responses((status = 200, description = "Edit a release", body = AppResponseData<ReleaseView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/release/get.rs lib/repo/handler/release/get.rs +5 −0 View lib/repo/handler/release/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/releases/{release_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("release_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "Get a release", body = AppResponseData<ReleaseView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/release/latest.rs lib/repo/handler/release/latest.rs +4 −0 View lib/repo/handler/release/latest.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/releases/latest",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get the latest release", body = AppResponseData<ReleaseView>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/release/list.rs lib/repo/handler/release/list.rs +5 −1 View lib/repo/handler/release/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/releases",
1414 tag = "repo",
15 params(ListReleaseQuery),
15 params(
16 ListReleaseQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List releases", body = AppResponseData<ReleasePage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/subscriber/list.rs lib/repo/handler/subscriber/list.rs +5 −1 View lib/repo/handler/subscriber/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/subscribers",
1414 tag = "repo",
15 params(ListSubscriberQuery),
15 params(
16 ListSubscriberQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List subscribers", body = AppResponseData<SubscriberPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/sync/get.rs lib/repo/handler/sync/get.rs +4 −0 View lib/repo/handler/sync/get.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/sync",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Get repo metadata sync status", body = AppResponseData<SyncStatus>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/sync/run.rs lib/repo/handler/sync/run.rs +4 −0 View lib/repo/handler/sync/run.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/sync/run",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "Trigger a metadata sync", body = AppResponseData<SyncResult>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/tag/create.rs lib/repo/handler/tag/create.rs +4 −0 View lib/repo/handler/tag/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/tags",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateTagOption>,
1620 responses((status = 201, description = "Create a tag", body = AppResponseData<TagView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/tag/delete.rs lib/repo/handler/tag/delete.rs +5 −0 View lib/repo/handler/tag/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/tags/{tag_name}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("tag_name" = String, Path),
18 ),
1419 responses((status = 204, description = "Delete a tag")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/tag/get.rs lib/repo/handler/tag/get.rs +5 −0 View lib/repo/handler/tag/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/tags/{tag_name}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("tag_name" = String, Path),
19 ),
1520 responses((status = 200, description = "Get a tag", body = AppResponseData<TagView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/tag/list.rs lib/repo/handler/tag/list.rs +5 −1 View lib/repo/handler/tag/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/tags",
1414 tag = "repo",
15 params(ListTagQuery),
15 params(
16 ListTagQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List tags", body = AppResponseData<TagPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/tag_protection/create.rs lib/repo/handler/tag_protection/create.rs +4 −0 View lib/repo/handler/tag_protection/create.rs
@@ -12,6 +12,10 @@
1212 post,
1313 path = "/repos/{space_name}/{repo_id}/tag_protections",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<CreateTagProtectionOption>,
1620 responses((status = 201, description = "Create a tag protection", body = AppResponseData<TagProtectionView>)),
1721 security(("bearer_auth" = []))
Modified lib/repo/handler/tag_protection/delete.rs lib/repo/handler/tag_protection/delete.rs +5 −0 View lib/repo/handler/tag_protection/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/tag_protections/{policy_id}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("policy_id" = Uuid, Path),
18 ),
1419 responses((status = 204, description = "Delete a tag protection")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/tag_protection/edit.rs lib/repo/handler/tag_protection/edit.rs +5 −0 View lib/repo/handler/tag_protection/edit.rs
@@ -12,6 +12,11 @@
1212 patch,
1313 path = "/repos/{space_name}/{repo_id}/tag_protections/{policy_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("policy_id" = Uuid, Path),
19 ),
1520 request_body = AppRequestData<EditTagProtectionOption>,
1621 responses((status = 200, description = "Edit a tag protection", body = AppResponseData<TagProtectionView>)),
1722 security(("bearer_auth" = []))
Modified lib/repo/handler/tag_protection/get.rs lib/repo/handler/tag_protection/get.rs +5 −0 View lib/repo/handler/tag_protection/get.rs
@@ -12,6 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/tag_protections/{policy_id}",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ("policy_id" = Uuid, Path),
19 ),
1520 responses((status = 200, description = "Get a tag protection", body = AppResponseData<TagProtectionView>)),
1621 security(("bearer_auth" = []))
1722)]
Modified lib/repo/handler/tag_protection/list.rs lib/repo/handler/tag_protection/list.rs +5 −1 View lib/repo/handler/tag_protection/list.rs
@@ -12,7 +12,11 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/tag_protections",
1414 tag = "repo",
15 params(ListTagProtectionQuery),
15 params(
16 ListTagProtectionQuery,
17 ("space_name" = String, Path),
18 ("repo_id" = Uuid, Path),
19 ),
1620 responses((status = 200, description = "List tag protections", body = AppResponseData<TagProtectionPage>)),
1721 security(("bearer_auth" = []))
1822)]
Modified lib/repo/handler/topic/add.rs lib/repo/handler/topic/add.rs +5 −0 View lib/repo/handler/topic/add.rs
@@ -11,6 +11,11 @@
1111 put,
1212 path = "/repos/{space_name}/{repo_id}/topics/{topic}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("topic" = String, Path),
18 ),
1419 responses((status = 204, description = "Add a topic")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/topic/delete.rs lib/repo/handler/topic/delete.rs +5 −0 View lib/repo/handler/topic/delete.rs
@@ -11,6 +11,11 @@
1111 delete,
1212 path = "/repos/{space_name}/{repo_id}/topics/{topic}",
1313 tag = "repo",
14 params(
15 ("space_name" = String, Path),
16 ("repo_id" = Uuid, Path),
17 ("topic" = String, Path),
18 ),
1419 responses((status = 204, description = "Remove a topic")),
1520 security(("bearer_auth" = []))
1621)]
Modified lib/repo/handler/topic/list.rs lib/repo/handler/topic/list.rs +4 −0 View lib/repo/handler/topic/list.rs
@@ -12,6 +12,10 @@
1212 get,
1313 path = "/repos/{space_name}/{repo_id}/topics",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 responses((status = 200, description = "List repo topics", body = AppResponseData<TopicList>)),
1620 security(("bearer_auth" = []))
1721)]
Modified lib/repo/handler/topic/update.rs lib/repo/handler/topic/update.rs +4 −0 View lib/repo/handler/topic/update.rs
@@ -12,6 +12,10 @@
1212 put,
1313 path = "/repos/{space_name}/{repo_id}/topics",
1414 tag = "repo",
15 params(
16 ("space_name" = String, Path),
17 ("repo_id" = Uuid, Path),
18 ),
1519 request_body = AppRequestData<RepoTopicOptions>,
1620 responses((status = 204, description = "Replace repo topics")),
1721 security(("bearer_auth" = []))
Modified lib/space/handler/bans/ban.rs lib/space/handler/bans/ban.rs +3 −0 View lib/space/handler/bans/ban.rs
@@ -9,6 +9,9 @@
99#[utoipa::path(
1010 post,
1111 path = "/spaces/{space_name}/bans",
12 params(
13 ("space_name" = String, Path),
14 ),
1215 tag = "space", request_body = AppRequestData<CreateBanCmd>,
1316 responses((status = 200, description = "Ban a user from a space", body = AppResponseData<SpaceBanView>)),
1417 security(("bearer_auth" = []))
Modified lib/space/handler/bans/get.rs lib/space/handler/bans/get.rs +4 −0 View lib/space/handler/bans/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/bans/{uid}",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("uid" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get a ban", body = AppResponseData<SpaceBanView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/space/handler/bans/list.rs lib/space/handler/bans/list.rs +4 −1 View lib/space/handler/bans/list.rs
@@ -11,7 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/bans",
1313 tag = "space",
14 params(SpaceListQuery),
14 params(
15 SpaceListQuery,
16 ("space_name" = String, Path),
17 ),
1518 responses((status = 200, description = "List bans in a space", body = AppResponseData<SpaceBanPage>)),
1619 security(("bearer_auth" = []))
1720)]
Modified lib/space/handler/bans/unban.rs lib/space/handler/bans/unban.rs +4 −0 View lib/space/handler/bans/unban.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/spaces/{space_name}/bans/{uid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ),
1317 responses((status = 200, description = "Unban a user from a space")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/space/handler/bans/update.rs lib/space/handler/bans/update.rs +4 −0 View lib/space/handler/bans/update.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 patch,
1212 path = "/spaces/{space_name}/bans/{uid}",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<UpdateBanCmd>,
1418 responses((status = 200, description = "Update a ban", body = AppResponseData<SpaceBanView>)),
1519 security(("bearer_auth" = []))
Modified lib/space/handler/channels/get.rs lib/space/handler/channels/get.rs +4 −0 View lib/space/handler/channels/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/channels/{cid}",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("cid" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get a channel", body = AppResponseData<ChannelView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/space/handler/channels/list.rs lib/space/handler/channels/list.rs +4 −1 View lib/space/handler/channels/list.rs
@@ -11,7 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/channels",
1313 tag = "space",
14 params(SpaceListQuery),
14 params(
15 SpaceListQuery,
16 ("space_name" = String, Path),
17 ),
1518 responses((status = 200, description = "List channels in a space", body = AppResponseData<ChannelPage>)),
1619 security(("bearer_auth" = []))
1720)]
Modified lib/space/handler/invites/create.rs lib/space/handler/invites/create.rs +1 −1 View lib/space/handler/invites/create.rs
@@ -8,7 +8,7 @@
88#[utoipa::path(
99 post,
1010 path = "/spaces/{space_name}/invites",
11 tag = "space", request_body = AppRequestData<CreateInviteCmd>,
11 tag = "space", params(("space_name" = String, Path)), request_body = AppRequestData<CreateInviteCmd>,
1212 responses((status = 200, description = "Create an invite", body = AppResponseData<SpaceInviteView>)),
1313 security(("bearer_auth" = []))
1414)]
Modified lib/space/handler/invites/list.rs lib/space/handler/invites/list.rs +4 −1 View lib/space/handler/invites/list.rs
@@ -10,7 +10,10 @@
1010 get,
1111 path = "/spaces/{space_name}/invites",
1212 tag = "space",
13 params(SpaceListQuery),
13 params(
14 SpaceListQuery,
15 ("space_name" = String, Path),
16 ),
1417 responses((status = 200, description = "List invites", body = AppResponseData<SpaceInvitePage>)),
1518 security(("bearer_auth" = []))
1619)]
Modified lib/space/handler/invites/revoke.rs lib/space/handler/invites/revoke.rs +4 −0 View lib/space/handler/invites/revoke.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/spaces/{space_name}/invites/{iid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("iid" = Uuid, Path),
16 ),
1317 responses((status = 200, description = "Revoke an invite", body = AppResponseData<SpaceInviteView>)),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/space/handler/members/add.rs lib/space/handler/members/add.rs +3 −0 View lib/space/handler/members/add.rs
@@ -9,6 +9,9 @@
99#[utoipa::path(
1010 post,
1111 path = "/spaces/{space_name}/members",
12 params(
13 ("space_name" = String, Path),
14 ),
1215 tag = "space", request_body = AppRequestData<AddMemberCmd>,
1316 responses((status = 200, description = "Add a member to a space", body = AppResponseData<SpaceMemberView>)),
1417 security(("bearer_auth" = []))
Modified lib/space/handler/members/get.rs lib/space/handler/members/get.rs +4 −0 View lib/space/handler/members/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/members/{uid}",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("uid" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "Get a space member", body = AppResponseData<SpaceMemberView>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/space/handler/members/list.rs lib/space/handler/members/list.rs +4 −1 View lib/space/handler/members/list.rs
@@ -11,7 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/members",
1313 tag = "space",
14 params(SpaceListQuery),
14 params(
15 SpaceListQuery,
16 ("space_name" = String, Path),
17 ),
1518 responses((status = 200, description = "List members of a space", body = AppResponseData<SpaceMemberPage>)),
1619 security(("bearer_auth" = []))
1720)]
Modified lib/space/handler/members/remove.rs lib/space/handler/members/remove.rs +4 −0 View lib/space/handler/members/remove.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/spaces/{space_name}/members/{uid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ),
1317 responses((status = 200, description = "Remove a member from a space")),
1418 security(("bearer_auth" = []))
1519)]
Modified lib/space/handler/members/update.rs lib/space/handler/members/update.rs +4 −0 View lib/space/handler/members/update.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 patch,
1212 path = "/spaces/{space_name}/members/{uid}",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<UpdateMemberCmd>,
1418 responses((status = 200, description = "Update a space member", body = AppResponseData<SpaceMemberView>)),
1519 security(("bearer_auth" = []))
Modified lib/space/handler/overwrites/list_role.rs lib/space/handler/overwrites/list_role.rs +4 −0 View lib/space/handler/overwrites/list_role.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/channels/{cid}/overwrites/roles",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("cid" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List role overwrites", body = AppResponseData<Vec<RoleOverwriteView>>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/space/handler/overwrites/list_user.rs lib/space/handler/overwrites/list_user.rs +4 −0 View lib/space/handler/overwrites/list_user.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/channels/{cid}/overwrites/users",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("cid" = Uuid, Path),
17 ),
1418 responses((status = 200, description = "List user overwrites", body = AppResponseData<Vec<UserOverwriteView>>)),
1519 security(("bearer_auth" = []))
1620)]
Modified lib/space/handler/overwrites/remove_role.rs lib/space/handler/overwrites/remove_role.rs +5 −0 View lib/space/handler/overwrites/remove_role.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/spaces/{space_name}/channels/{cid}/overwrites/roles/{rid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("cid" = Uuid, Path),
16 ("rid" = Uuid, Path),
17 ),
1318 responses((status = 200, description = "Remove a role overwrite")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/space/handler/overwrites/remove_user.rs lib/space/handler/overwrites/remove_user.rs +5 −0 View lib/space/handler/overwrites/remove_user.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/spaces/{space_name}/channels/{cid}/overwrites/users/{uid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("cid" = Uuid, Path),
16 ("uid" = Uuid, Path),
17 ),
1318 responses((status = 200, description = "Remove a user overwrite")),
1419 security(("bearer_auth" = []))
1520)]
Modified lib/space/handler/overwrites/set_role.rs lib/space/handler/overwrites/set_role.rs +4 −0 View lib/space/handler/overwrites/set_role.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 post,
1212 path = "/spaces/{space_name}/channels/{cid}/overwrites/roles",
13 params(
14 ("space_name" = String, Path),
15 ("cid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<SetRoleOverwriteCmd>,
1418 responses((status = 200, description = "Set a role overwrite", body = AppResponseData<RoleOverwriteView>)),
1519 security(("bearer_auth" = []))
Modified lib/space/handler/overwrites/set_user.rs lib/space/handler/overwrites/set_user.rs +4 −0 View lib/space/handler/overwrites/set_user.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 post,
1212 path = "/spaces/{space_name}/channels/{cid}/overwrites/users",
13 params(
14 ("space_name" = String, Path),
15 ("cid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<SetUserOverwriteCmd>,
1418 responses((status = 200, description = "Set a user overwrite", body = AppResponseData<UserOverwriteView>)),
1519 security(("bearer_auth" = []))
Modified lib/space/handler/roles/assign.rs lib/space/handler/roles/assign.rs +4 −0 View lib/space/handler/roles/assign.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 post,
1212 path = "/spaces/{space_name}/members/{uid}/roles",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<AssignRoleCmd>,
1418 responses(
1519 (status = 200, description = "Assign a role to a member")
Modified lib/space/handler/roles/create.rs lib/space/handler/roles/create.rs +3 −0 View lib/space/handler/roles/create.rs
@@ -9,6 +9,9 @@
99#[utoipa::path(
1010 post,
1111 path = "/spaces/{space_name}/roles",
12 params(
13 ("space_name" = String, Path),
14 ),
1215 tag = "space", request_body = AppRequestData<CreateRoleCmd>,
1316 responses(
1417 (status = 200, description = "Create a role", body = AppResponseData<RoleView>)
Modified lib/space/handler/roles/delete.rs lib/space/handler/roles/delete.rs +4 −0 View lib/space/handler/roles/delete.rs
@@ -10,6 +10,10 @@
1010 delete,
1111 path = "/spaces/{space_name}/roles/{rid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("rid" = Uuid, Path),
16 ),
1317 responses(
1418 (status = 200, description = "Delete a role")
1519 ),
Modified lib/space/handler/roles/get.rs lib/space/handler/roles/get.rs +4 −0 View lib/space/handler/roles/get.rs
@@ -11,6 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/roles/{rid}",
1313 tag = "space",
14 params(
15 ("space_name" = String, Path),
16 ("rid" = Uuid, Path),
17 ),
1418 responses(
1519 (status = 200, description = "Get a role", body = AppResponseData<RoleView>)
1620 )
Modified lib/space/handler/roles/list.rs lib/space/handler/roles/list.rs +4 −1 View lib/space/handler/roles/list.rs
@@ -11,7 +11,10 @@
1111 get,
1212 path = "/spaces/{space_name}/roles",
1313 tag = "space",
14 params(SpaceListQuery),
14 params(
15 SpaceListQuery,
16 ("space_name" = String, Path),
17 ),
1518 responses(
1619 (status = 200, description = "List roles in a space", body = AppResponseData<RolePage>)
1720 ),
Modified lib/space/handler/roles/unassign.rs lib/space/handler/roles/unassign.rs +5 −0 View lib/space/handler/roles/unassign.rs
@@ -10,6 +10,11 @@
1010 delete,
1111 path = "/spaces/{space_name}/members/{uid}/roles/{rid}",
1212 tag = "space",
13 params(
14 ("space_name" = String, Path),
15 ("uid" = Uuid, Path),
16 ("rid" = Uuid, Path),
17 ),
1318 responses(
1419 (status = 200, description = "Unassign a role from a member")
1520 ),
Modified lib/space/handler/roles/update.rs lib/space/handler/roles/update.rs +4 −0 View lib/space/handler/roles/update.rs
@@ -10,6 +10,10 @@
1010#[utoipa::path(
1111 patch,
1212 path = "/spaces/{space_name}/roles/{rid}",
13 params(
14 ("space_name" = String, Path),
15 ("rid" = Uuid, Path),
16 ),
1317 tag = "space", request_body = AppRequestData<UpdateRoleCmd>,
1418 responses(
1519 (status = 200, description = "Update a role", body = AppResponseData<RoleView>)
Modified lib/space/handler/spaces/delete.rs lib/space/handler/spaces/delete.rs +1 −1 View lib/space/handler/spaces/delete.rs
@@ -4,7 +4,7 @@
44use export::data::{AppResponseData, NoData};
55use jwt::extractor::AuthUser;
66
7#[utoipa::path(delete, path = "/spaces/{space_name}", tag = "space", responses((status = 200, description = "Delete a space")), security(("bearer_auth" = [])))]
7#[utoipa::path(delete, path = "/spaces/{space_name}", tag = "space", params(("space_name" = String, Path)), responses((status = 200, description = "Delete a space")), security(("bearer_auth" = [])))]
88pub(crate) async fn handler(
99 State(svc): State<SpaceService>,
1010 AuthUser { claims }: AuthUser,
Modified lib/space/handler/spaces/get.rs lib/space/handler/spaces/get.rs +1 −1 View lib/space/handler/spaces/get.rs
@@ -5,7 +5,7 @@
55use export::data::AppResponseData;
66use jwt::extractor::AuthOptional;
77
8#[utoipa::path(get, path = "/spaces/{space_name}", tag = "space", responses((status = 200, description = "Get a space", body = AppResponseData<SpaceView>)))]
8#[utoipa::path(get, path = "/spaces/{space_name}", tag = "space", params(("space_name" = String, Path)), responses((status = 200, description = "Get a space", body = AppResponseData<SpaceView>)))]
99pub(crate) async fn handler(
1010 State(svc): State<SpaceService>,
1111 AuthOptional(opt): AuthOptional,
Modified lib/space/handler/spaces/update.rs lib/space/handler/spaces/update.rs +1 −1 View lib/space/handler/spaces/update.rs
@@ -5,7 +5,7 @@
55use export::data::{AppRequest, AppRequestData, AppResponseData};
66use jwt::extractor::AuthUser;
77
8#[utoipa::path(patch, path = "/spaces/{space_name}", tag = "space", request_body = AppRequestData<UpdateSpaceCmd>, responses((status = 200, description = "Update a space", body = AppResponseData<SpaceView>)), security(("bearer_auth" = [])))]
8#[utoipa::path(patch, path = "/spaces/{space_name}", tag = "space", params(("space_name" = String, Path)), request_body = AppRequestData<UpdateSpaceCmd>, responses((status = 200, description = "Update a space", body = AppResponseData<SpaceView>)), security(("bearer_auth" = [])))]
99pub(crate) async fn handler(
1010 State(svc): State<SpaceService>,
1111 AuthUser { claims }: AuthUser,
Modified lib/space/handler/query.rs lib/space/handler/query.rs +1 −0 View lib/space/handler/query.rs
@@ -2,6 +2,7 @@
22use utoipa::IntoParams;
33
44#[derive(Debug, Clone, Copy, Default, Deserialize, IntoParams)]
5#[into_params(parameter_in = Query)]
56pub(crate) struct SpaceListQuery {
67 pub limit: Option<u64>,
78 pub offset: Option<u64>,
Added wiki/auth-and-jwt-architecture.md wiki/auth-and-jwt-architecture.md +475 −0 View wiki/auth-and-jwt-architecture.md
@@ -0,0 +1,475 @@
1# lib/auth 与 lib/jwt 学习笔记
2
3> 状态:基于当前 `lib/auth` 与 `lib/jwt` 源码梳理(2026-08-09)。
4> 目标:理清两个 crate 的职责、关键流程、关键数据结构与扩展点,便于后续维护与改造。
5
6---
7
8## 0. 一句话总结
9
10- `lib/jwt`:纯算法 + DB/缓存层。负责**签发 / 验证 / 轮换 / 撤销** JWT,并维护 `user_sessions` 行(family / parent / grace 状态机),对上层只暴露 `AuthUser` 提取器与 `JwtState`。
11- `lib/auth`:业务编排层。负责**PoW、注册、邮箱验证、登录、刷新、注销、密码找回/重置、OAuth、协议同意**,把用户状态机(active / pwd_version / restricted)与 jwt 能力粘合起来,对外只暴露 `/auth/*` 路由。
12
13二者通过 `AuthService` 持有的 `JwtState` + 共享 `SigningKeyCache` 解耦:`jwt` 不依赖 `auth`;`auth` 借 `HasJwtState` 注入自己到 jwt 的中间件。
14
15---
16
17## 1. 模块拓扑
18
19```
20lib/
21├── auth/
22│ ├── lib.rs # 入口:re-export error / handler::router / metrics / pow
23│ ├── error.rs # AuthError(含 JwtError、EmailError、RedisError、SqlxError)
24│ ├── metrics.rs # auth_*_total / auth_*_duration_seconds 指标家族
25│ ├── pow/ # ALTCHA 适配(issue / verify / once-语义)
26│ │ ├── mod.rs
27│ │ └── error.rs
28│ ├── features/ # 业务用例层(每个子目录 4 件套:types + usecase + impls + mod)
29│ │ ├── mod.rs # AuthService 聚合 + HasJwtState + RateLimitProvider
30│ │ ├── access_token.rs # 给外部用的 SHA256(token, salt) 工具
31│ │ ├── agreement/ # terms/privacy 协议同意
32│ │ ├── email_code/ # 通用 6 位数字邮箱验证码(signup / reset / email_change)
33│ │ ├── forgot_password/ # 申请重置 → 邮件 + temp_key cookie
34│ │ ├── reset_password/ # token + 旧密码 → 改密 + 撤销所有 session + 拉黑 access jti
35│ │ ├── login/ # PoW + 凭证 → issue_login_pair
36│ │ ├── logout/ # 撤销 refresh + 撤销 access jti
37│ │ ├── oauth/ # 三个 provider + usecase 分支
38│ │ ├── password_hash/ # argon2 + 密码策略
39│ │ ├── reclaim/ # 邮箱未激活账号的"重新发送 signup 验证码"
40│ │ ├── refresh/ # 调用 jwt::rotate_refresh
41│ │ ├── register/ # 创建用户 + 发送 signup 验证码
42│ │ ├── resend_code/ # 重新发送
43│ │ └── ...
44│ └── handler/ # axum 适配层
45│ ├── routes.rs # 路由表(嵌套 /auth/*)
46│ ├── mod.rs # 子模块出口
47│ ├── openapi.rs # utoipa OpenAPI 聚合
48│ ├── cookies.rs # temp_key ↔ Cookie 转换
49│ ├── middleware/metrics.rs # HTTP 维度指标
50│ ├── login.rs / logout.rs / refresh.rs / register.rs / me.rs / pow.rs
51│ ├── agreement/{list,accept}.rs
52│ ├── email/{verify,resend,reclaim}.rs
53│ ├── password/{forgot,reset}.rs
54│ └── oauth/{providers,authorize,callback}.rs
55│
56└── jwt/
57 ├── lib.rs # pub mod ...; pub use claims/keys/handlers/...
58 ├── error.rs # JwtError(被 auth 的 From 转换消费)
59 ├── claims.rs # AccessClaims / RefreshClaims / HasJti / HasUserExt / utils
60 ├── keys.rs # SigningKeyCache(kid → CachedKey{decoding, alg, ...})
61 ├── signer.rs # encode/decode access & refresh,extract_kid
62 ├── rotation.rs # issue_login_pair / rotate_refresh / validate_access
63 ├── session.rs # user_sessions 的 CRUD:create/find/revoke/mark_replaced/delete*
64 ├── grace.rs # key/replay 纯函数(is_key_usable_for_verify、reject_replay、grace_deadline)
65 ├── handlers.rs # JwtState + LogoutRequest + TokenPairResponse + IntoResponse
66 ├── extractor.rs # AuthUser / AuthOptional / AuthAdmin(FromRequestParts)
67 ├── middleware.rs # inject_jwt_ctx + HasJwtState
68 └── metrics.rs # jwt_*_total 指标家族
69```
70
71### 1.1 两个 crate 的依赖关系
72
73- `jwt` 不依赖 `auth`;只依赖 `axum / config / db / sea-orm / rate_limit / email` 等通用基建。
74- `auth` 依赖 `jwt`(用于签发/校验/撤销)并实现 `jwt::HasJwtState`,因此 jwt 的中间件可以无差别地给 `AuthService` 注入 `JwtState` 上下文。
75- 入口装配在 `app/webapi`(典型用法):先构造 `JwtState`,再以 `JwtState` 构造 `AuthService`,最后 `Router::new().nest("/auth", auth::router(svc))`。
76
77---
78
79## 2. lib/jwt 详细说明
80
81### 2.1 Claims(`claims.rs`)
82
83| 字段 | 类型 | 含义 |
84| --- | --- | --- |
85| `sub` | `Uuid` | 用户 id |
86| `uname` | `String` | 用户名(access 携带) |
87| `is_admin` / `is_restricted` | `bool` | 权限位(access 携带) |
88| `pwd_version` | `i64` | 密码版本号;低于当前 user 行的 `passwd_version` ⇒ `SessionRevoked` |
89| `kid` | `String` | 当前 token 的签名 key id(access / refresh 都带) |
90| `jti` | `Uuid (v7)` | 唯一 id,用于黑名单(access) |
91| `family_id` / `parent_id` | `Uuid` | refresh 链:`family_id` 标识一组"派生链";`parent_id` 指向上一代 jti |
92| `iss` / `aud` | `String` | issuer / audience,由 `JwtSettings` 提供 |
93| `iat` / `exp` | `i64` | 标准 iat/exp;可配置 `clock_skew_seconds` 容差 |
94| `scope` | `String` | access 预留,尚未启用 |
95
96`HasJti` / `HasUserExt` 是 trait,让上层只关心 `jti` 和 `user_id()`,不直接碰 `AccessClaims`/`RefreshClaims` 二选一。
97
98### 2.2 密钥缓存(`keys.rs`)
99
100`SigningKeyCache` 维护 `kid → CachedKey{DecodingKey, Algorithm, is_rotating, grace_ends_at, expires_at}` 的内存映射,`is_signing=true` 的那一把同时持有 `EncodingKey` 用于签发。
101
102`load_from_db`:
103- 只加载 `is_active=true AND revoked_at IS NULL` 的 `system_signing_keys` 行。
104- 第一个 `is_signing` 行作为 `current_kid` 与 `encoding`。
105- `is_rotating=true` 的旧 key 仍保留在 map 中,供 `grace_window` 内的旧 token 继续验证。
106
107`in_grace_window(kid)`:纯查询函数,被 `grace.rs` 复用;`extract_kid → kid ∈ keys` 决定 `RotationContext` 的可用性。
108
109### 2.3 签发与验证(`signer.rs`)
110
111- `encode_*_token`:把 `kid` 写入 JWT header。
112- `decode_*_token`:构造 `Validation`(issuer / audience / leeway / exp),`decode<Claims>`。
113- `kid_from_token` / `extract_kid`:从 `Authorization: Bearer` 头里先解析 header.kid,从而绕开"不知道用哪把 key"的鸡生蛋问题。
114
115错误映射:`From<jsonwebtoken::Error> for JwtError` 把 `ExpiredSignature / InvalidSignature / InvalidAudience / ...` 各自映射到语义化变体,IO 层只需要 `match JwtError` 就能生成对应 HTTP 状态码。
116
117### 2.4 轮换与签发核心(`rotation.rs`)
118
119`RotationContext<'a> { db, settings, cache }` 是所有操作的共享入口:
120
121- **`issue_login_pair`**(登录、OAuth 完成、找回密码后直接发 token 等):
122 1. 取 `current_kid + encoding + alg`。
123 2. 生成 `AccessClaims` + `RefreshClaims`(`family_id = Uuid::now_v7()`,`parent_id = None`)。
124 3. `session::create_session` 写一行 `user_sessions`(`family_id`,无 `replaced_by`)。
125 4. 返回 `TokenPair`。
126- **`rotate_refresh`**(`/auth/refresh`):
127 1. 从 `kid` → `DecodingKey` → `decode_refresh_token`。
128 2. `pwd_version` 与 `family` 一致性检查:
129 - 旧 token `pwd_version < user.pwd_version` ⇒ `SessionRevoked`(改密后旧 token 全废)。
130 - 旧 session `is_revoked` ⇒ `SessionRevoked`。
131 - 旧 session 已 `replaced_by` 但 `grace_expires_at` 未到 ⇒ 仍允许(并发刷新兼容)。
132 - 旧 session `replaced_by` 且超过 grace ⇒ `SessionReplaced`(典型的"refresh 重放"检测)。
133 3. 派生新一对 access / refresh:`family_id` 不变;`parent_id = old_refresh.jti`。
134 4. `create_session` 写入新行 → `mark_replaced(old_id, new_id, grace_deadline)`。
135 5. 返回新 `TokenPair`。
136- **`validate_access`**:仅做签名 + 过期 + iss/aud 校验;不读 DB(access 无状态),但调用方(`AuthUser` 提取器)会在 DB 之外再查 `AccessTokenBlacklist` Redis。
137
138`pwd_version` 字段是这个体系的关键:**改密时自增,token 自带版本号,校验时强制 `token.pwd_version >= user.passwd_version`**,避免了"改密后旧 access 仍能用"的问题;`AccessTokenBlacklist` 进一步防御"改密后旧 access 在它剩余的 TTL 里仍然能调用"的窗口。
139
140### 2.5 Session 持久化(`session.rs`)
141
142`user_sessions` 表是这套体系的"链式账本":
143
144| 字段 | 说明 |
145| --- | --- |
146| `id` | 行 id(v7) |
147| `user_id` | 归属用户 |
148| `token_hash` | refresh token 的 SHA256 哈希(不存明文) |
149| `family_id` | 整条派生链的"血统" |
150| `parent_refresh_id` | 上一代 refresh 的 jti |
151| `is_revoked` / `revoked_at` | 注销 / 改密撤销 |
152| `replaced_at` / `replaced_by` | 被新行替换 |
153| `grace_expires_at` | 旧 token 还能继续生效到何时 |
154| `expires_at` | refresh token 的自然过期时间 |
155| `signing_key_id` | 用哪把 key 签的 |
156| `app_id` | 客户端 id(多端登录标识) |
157
158- `create_session`:登录或刷新时插入新行。
159- `find_session_by_hash(refresh_token)`:校验时按 token 哈希找行。
160- `mark_replaced(old, new, grace)`:刷新成功时把老行标记为"被替换",并给一段宽限期。
161- `revoke_session`:注销 / 改密时单行撤销。
162- `delete_sessions_by_user` / `delete_sessions_by_family`:管理员级强制下线。
163
164### 2.6 grace 纯函数(`grace.rs`)
165
166把"key 是否仍可用"、"refresh 是否在宽限窗口内"这些时间判定抽成纯函数,方便单测:
167
168- `is_key_usable_for_verify(key, now)`:`!expired && (rotating ⇒ 仍在 grace)`。
169- `ensure_key_usable(key)`:上式的 `Result` 包装。
170- `reject_replay(grace_expires_at, now)`:旧 refresh 在 grace 外一律拒绝。
171- `grace_deadline(start, duration)` / `kid_matches(...)`:字面意义。
172
173### 2.7 提取器与中间件(`extractor.rs`、`middleware.rs`)
174
175- `bearer_token(parts)`:从 `Authorization: Bearer ...` 头里抠出 token。
176- `validate_ctx(parts, token)`:
177 1. 从 `extensions` 拿 `SigningKeyCache`(`Arc<RwLock<_>>`)、`DatabaseConnection`、`JwtSettings`。
178 2. `validate_access` 完成签名 / iss / aud / exp 校验。
179 3. 如果 `extensions` 里有 `Option<Arc<AccessTokenBlacklist>>` ⇒ 再查 Redis 拒绝名单;命中即 `SessionRevoked`。
180- `AuthUser` / `AuthOptional` / `AuthAdmin`:axum `FromRequestParts` 实现,分别强制 / 容忍 / 强制 admin。
181- `inject_jwt_ctx`:把 `JwtState.cache / settings / db / access_blacklist` 注入到 `request.extensions`,让下游的 `AuthUser` 提取器零参数拿到。
182
183### 2.8 handlers(`handlers.rs`)
184
185- `JwtState { db, settings, cache }`:可被 `HasJwtState` 借出。
186- `IntoResponse for JwtError`:把错误变体映射成 401/403/503 等状态码。
187- `LogoutRequest { refresh_token }` / `TokenPairResponse { access_token, refresh_token, token_type, expires_in }`:对外协议。
188- `logout_handler`:从 refresh 找 session → `revoke_session`。
189- `rotate_keys_handler`:TODO 桩。
190
191### 2.9 jwt 错误(`error.rs`)
192
193`JwtError` 是所有 jwt 层错误的归一化点;上层(`auth` / `webapi`)通过 `From<JwtError> for AuthError` 进一步映射到 HTTP 状态。
194
195---
196
197## 3. lib/auth 详细说明
198
199### 3.1 入口与聚合(`features/mod.rs`)
200
201`AuthService` 是唯一的业务服务聚合:
202
203```rust
204pub struct AuthService {
205 pub db: Db, // 读写连接(来自 db crate)
206 pub email: EmailService, // 邮件服务
207 pub kv: Arc<RedisCache>, // Redis:PoW、邮箱验证码、access 黑名单
208 pub pow: PowService, // ALTCHA
209 pub config: SharedAuthConfig, // 协议、Cookie、密码策略、OAuth
210 pub jwt: JwtState, // jwt 共享状态
211}
212```
213
214- 实现 `HasJwtState` ⇒ jwt 的 `inject_jwt_ctx` 可直接给 `AuthService` 注入扩展。
215- 实现 `RateLimitProvider` ⇒ 全局限流中间件 (`rate_limit::ratelimit`) 通过 `client_id` 维度对 `/auth/*` 限流。
216
217### 3.2 PoW(`pow/mod.rs`)
218
219基于 `altcha` crate 的 HMAC PoW:
220
221- `generate_challenge_with(data)`:用 `PowSettings.hmac_secret` 签发 ALTCHA challenge,TTL 由 `challenge_ttl` 控制。
222- `issue_challenge_bound(cid)`:把 `cid` 嵌入 `data`,写入 Redis(`auth:pow:issued:<sha256>`),TTL 后自然过期;返回 `(challenge, ttl)`。
223- `verify_solution_once(challenge, solution, expected_cid)`:
224 1. Redis `GETDEL` 一次性消费(防重放)。
225 2. 校验 `cid` 绑定(防跨客户端重用)。
226 3. 调 `altcha::verify_solution`,并把耗时计入 `auth_pow_verify_duration_seconds`。
227- 错误:`MissingSecret` / `Storage(...)` / `Expired` / `InvalidSignature` / `InvalidSolution` / `NotIssued` / `ClientMismatch`。
228
229### 3.3 邮箱验证码(`features/email_code`)
230
231通用验证码,purpose 有三种:`Signup` / `PasswordReset` / `EmailChange`。
232
233- 颁发:
234 - Redis 速率限(`auth:code_rate:<purpose>:<email>`,TTL = `email_code_rate_limit_secs`)。
235 - 同邮箱同 purpose 旧码软作废(`used_at` 标 now)。
236 - 生成 `verify_code_len` 位数字码(`generate_numeric_code`)。
237 - 写到两处:
238 - Redis `auth:code:<purpose>:<temp_id>`(短 TTL,`temp_id` 走 cookie 返回客户端)。
239 - DB `user_email_verification_codes`(`token_hash = sha256(code)`,`used_at` 字段控幂等)。
240 - 返回 `TempKey { name, value: temp_id.to_string(), ttl, ... }`。
241- 校验:
242 - Redis 计数 `auth:code_attempts:<purpose>:<temp_id>`,超过 `max_verify_attempts` 删码返 429。
243 - 恒定时比较(`constant_time_eq`)。
244 - 命中后 `SET used_at=now`;如果 `purpose=Signup`,事务里同步把 `users.is_active=true` + `user_emails.is_activated=true, activated_at=now`。
245- 删码 / 删计数器(成功/失败后清理 Redis)。
246
247### 3.4 注册(`features/register`)
248
249`RegisterCmd { username?, email, password, pow, accept_agreements[] }`:
250
2511. 校验邮箱、推导 username(缺省 `email` `@` 前缀)、校验 username、校验密码强度、PoW。
2522. 判重(`email_exists` / `username_exists`,命中返 `Conflict("registration failed")` 避免侧信道)。
2533. 事务里建 user(`is_active=false`、`passwd_version=1`、`passwd_hash=argon2(password)`)+ 主邮箱记录。
2544. `email_code::issue_code(Signup)` → 异步发邮件(失败仅 warn,账号仍 pending)。
2555. 同步记录 `accept_agreements` 内的 `terms` / `privacy` 接受记录(容错)。
2566. 返 `RegisterResp { uid, pending: true, temp_key, purpose: Signup }`。
2577. handler 把 `temp_key` 写入 Cookie,浏览器下次 `email/verify` 携带 `temp_key_value` cookie。
258
259### 3.5 登录(`features/login`)
260
261`LoginCmd { identifier, password, pow, app_id? }`:
262
2631. PoW。
2642. `find_user_by_identifier`:`@` ⇒ 走 `user_emails.lower_email`(同时拉 user),否则 `users.lower_name`。
2653. 状态闸:`prohibit_login` / `is_restricted` / `is_active` ⇒ 拒绝;`passwd_hash` 为空 ⇒ 提示走第三方登录。
2664. `argon2::verify_password`。
2675. 拿到 `RotationContext`,`issue_login_pair` 签发 token pair + 新 session 行。
2686. 更新 `users.last_login_at`。
2697. 返 `LoginResp { ..., user: UserPublic }`。
270
271### 3.6 刷新(`features/refresh`)
272
273- 解析 refresh → `decode_refresh_token`(仅校验签名/iss/aud/exp)。
274- 读 `users`,检查 `restricted / prohibit_login / is_active` 与 `passwd_version`。
275- 调 `jwt::rotate_refresh(&ctx, refresh, &UserSnapshot, app_id)`,由 jwt 层完成 family / grace 的链路校验与 session 写入。
276- 返新 token pair。
277
278### 3.7 注销(`features/logout`)
279
280- 解析 refresh → 找 session → `revoke_session`。
281- 如果请求带 access token:解码 → `AccessTokenBlacklist::revoke_jti(jti, access_ttl)`(防御 access 在剩余 TTL 内仍可用)。
282- 返 `LogoutResp { revoked }`。
283
284### 3.8 找回 / 重置密码(`forgot_password` + `reset_password`)
285
286- 忘记密码:
287 - PoW → 查 `user_emails`(无则仍返 `sent: true`,避免侧信道)→ 生成 `reset_token_bytes` 字节随机 token → 邮件发送 → Redis `auth:reset:<temp_id>` + DB `user_password_reset_tokens`(`token_hash=sha256(token)`)。
288 - 返 `ForgotPasswordResp { sent: true, temp_key }`(cookie)。
289- 重置:
290 - 强密码校验。
291 - 读 temp_id cookie → Redis 校验 token(恒定时比较)→ DB 行存在 + 未过期 + `used_at` 为空 + `email.user_id == row.user_id`。
292 - 事务里:写新密码哈希(argon2),`passwd_version += 1`,`is_active = true`(如果之前未激活),`token.used_at = now`,**`jwt::delete_sessions_by_user(user_id)`**。
293 - 提交后:`AccessTokenBlacklist::revoke_user(user_id, access_ttl)`(拉黑当前已发的所有 access jti),完成 VULN-005 修复。
294 - 返 `ResetPasswordResp { ok: true }`,handler 清空 temp_key cookie。
295
296### 3.9 协议(`features/agreement`)
297
298- `GET /auth/agreements` → 返 `terms` + `privacy` 文档(来自 `AuthConfig.agreements`)。
299- `POST /auth/agreements/accept` → 校验 key 在白名单 + version 一致 → 写 `user_agreement_acceptances`(重复接受视作幂等成功)。
300
301### 3.10 OAuth(`features/oauth`)
302
303- `GET /auth/oauth/providers`:返启用的 provider 列表。
304- `POST /auth/oauth/authorize`(PoW 必须):构造 `state`、写 Redis(`auth:oauth:state:<provider>:<state>`,TTL=10min)→ 返 `authorization_url` 与 `temp_key`(cookie)。
305- `GET /auth/oauth/callback`:从 cookie 读 `temp_key` → 校验 state → 各 provider 走对应适配器(`oauth_google` / `oauth_github` / `oauth_apple`)拿 id_token / userinfo → 解析 email → 走"已有 link / email 匹配 / 自动注册"三分支(指标 `auth_oauth_user_resolution_total{branch=...}`)→ `issue_login_pair` 签 token → 清除 state cookie。
306- `OAuthCallbackOutcome` 记录 `success / state_expired / state_mismatch / provider_error / user_gate / other`。
307
308### 3.11 access_token 工具(`features/access_token.rs`)
309
310`sha256_hex(token + salt)` 的小工具,给外部模块用,避免与 `jwt::claims::sha256_hex` 行为不一致。
311
312### 3.12 路由(`handler/routes.rs`)
313
314| 方法 | 路径 | 处理器 | 备注 |
315| --- | --- | --- | --- |
316| POST | `/auth/register` | `register::handler` | 写 temp_key cookie |
317| POST | `/auth/login` | `login::handler` | PoW |
318| POST | `/auth/logout` | `logout::handler` | 撤销 refresh + access jti |
319| POST | `/auth/refresh` | `refresh::handler` | |
320| GET | `/auth/pow/challenge` | `pow::handler` | 写 Redis issued |
321| POST | `/auth/email/verify` | `email::verify::handler` | 删 temp_key cookie |
322| POST | `/auth/email/resend` | `email::resend::handler` | 写 temp_key cookie |
323| POST | `/auth/email/reclaim` | `email::reclaim::handler` | 写 temp_key cookie |
324| POST | `/auth/password/forgot` | `password::forgot::handler` | 写 temp_key cookie |
325| POST | `/auth/password/reset` | `password::reset::handler` | 读 temp_key cookie,删 cookie |
326| GET | `/auth/agreements` | `agreement::list::handler` | |
327| POST | `/auth/agreements/accept` | `agreement::accept::handler` | 需 `AuthUser` |
328| GET | `/auth/oauth/providers` | `oauth::providers::handler` | |
329| POST | `/auth/oauth/authorize` | `oauth::authorize::handler` | 写 state cookie |
330| GET | `/auth/oauth/callback` | `oauth::callback::handler` | 读 state cookie,删 cookie |
331| GET | `/auth/me` | `me::handler` | 需 `AuthUser`,挂 `inject_jwt_ctx` 中间件 |
332
333中间件(按外→内):
334- `metrics::metrics_layer`(HTTP 维度打点:route/method/status_class)。
335- `ratelimit::<AuthService>`(限流)。
336- `/auth/me` 再额外套一层 `inject_jwt_ctx::<AuthService>`。
337
338### 3.13 错误与状态码(`error.rs`)
339
340`AuthError` 把 `JwtError / EmailError / SqlxError / RedisError / PowError` 全部 `From` 化,方便 `?` 一把梭。`IntoResponse` 实现根据 `is_user_facing` 决定"返回给客户端的 detail"还是"统一 internal error"。
341
342### 3.14 指标(`metrics.rs`)
343
344主要 counter / histogram:
345
346- `auth_usecase_invocations_total{feature, outcome}` / `auth_usecase_duration_seconds{feature}`(每个 usecase 用 `Timer` RAII 自动观测)。
347- `auth_usecase_errors_total{feature, error_kind}`。
348- `auth_http_requests_total{route, method, status_class}` / `auth_http_request_duration_seconds{...}`。
349- `auth_pow_challenges_issued_total` / `auth_pow_verifications_total{outcome}` / `auth_pow_verify_duration_seconds{outcome}`。
350- `auth_password_hash_duration_seconds{op}` / `auth_password_policy_rejections_total{rule}`。
351- `auth_email_codes_issued_total{channel}` / `auth_email_code_verifications_total{outcome}`。
352- `auth_oauth_authorize_total{provider, outcome}` / `auth_oauth_callback_total{provider, outcome}` / `auth_oauth_provider_fetch_duration_seconds{provider}` / `auth_oauth_user_resolution_total{branch}`。
353- `auth_agreement_accepts_total{agreement_id}` / `auth_agreement_records_total{agreement_id}`。
354- `auth_jwt_pair_issued_total{kind=login|refresh}` / `auth_jwt_session_revoked_total{kind=logout|rotation}` / `auth_jwt_denied_jti_total`(黑名单插入次数)。
355
356---
357
358## 4. 关键流程时序
359
360### 4.1 登录
361
362```
363client --POST /auth/pow/challenge--> server
364server --Redis SET auth:pow:issued:<sha>--> Redis
365server <-{ challenge, ttl }-- client
366
367client --POST /auth/login{id,pwd,pow}--> login::handler
368 └─ login::usecase::login
369 ├─ pow.verify_solution_once(GETDEL, altcha::verify)
370 ├─ find_user_by_identifier (email or username)
371 ├─ state gate (prohibit_login / is_restricted / is_active)
372 ├─ argon2::verify_password
373 └─ issue_login_pair
374 ├─ cache.current_encoding → (kid, EncodingKey, alg)
375 ├─ AccessClaims::new / RefreshClaims::new
376 ├─ encode_access_token / encode_refresh_token
377 ├─ session::create_session (family_id, no parent)
378 └─ return TokenPair
379server <-{ access, refresh, user: UserPublic }-- client
380```
381
382### 4.2 刷新(带并发兼容)
383
384```
385client_A --POST /auth/refresh{refresh_A}--> refresh::handler
386client_B --POST /auth/refresh{refresh_B}--> refresh::handler
387(同时发生,refresh_A 和 refresh_B 同 family,refresh_B 由 A 派生)
388
389 refresh::usecase
390 ├─ decode refresh → user
391 └─ rotate_refresh(ctx, refresh, snapshot, app_id)
392 ├─ find_session_by_hash(refresh)
393 │ └─ 若 replaced_by 已存在 + grace 未到 ⇒ 仍允许(race)
394 ├─ create new session (parent_refresh_id = old.jti, grace = now+grace_window)
395 └─ mark_replaced(old, new, grace_deadline)
396```
397
398### 4.3 重置密码(VULN-005 修复路径)
399
400```
401client --POST /auth/password/forgot--> forgot
402 └─ 生成 token → mail + Redis + DB
403client --POST /auth/password/reset{token, new_pwd, temp_key_value}--> reset
404 └─ reset::usecase
405 ├─ 密码强度
406 ├─ Redis 校验 + DB token 行存在/未过期/未使用
407 ├─ txn {
408 │ users: passwd_hash = new_hash
409 │ passwd_version = old + 1
410 │ is_active = true (可选)
411 │ tokens: used_at = now
412 │ jwt_session::delete_sessions_by_user(user_id)
413 │ }
414 └─ AccessTokenBlacklist::revoke_user(user_id, access_ttl) // 旧 access 立即失效
415```
416
417### 4.4 OAuth 回调
418
419```
420client --GET /auth/oauth/authorize{provider}--> authorize (PoW)
421 └─ 生成 state → Redis SETEX auth:oauth:state:<provider>:<state> 10min
422 └─ 写 temp_key cookie(state 本身)
423server <-{ authorization_url }--
424
425browser --GET <authorization_url>?code=...&state=...--> provider
426provider --302--> /auth/oauth/callback?provider=&code=&state=
427server --GET /auth/oauth/callback--> callback
428 └─ 读 temp_key cookie(state)
429 └─ OAuth provider: exchange code → userinfo
430 └─ branch ∈ { existing_link, email_match, auto_register }
431 └─ issue_login_pair
432 └─ 清 state cookie
433server <-{ access, refresh, user_id }--
434```
435
436---
437
438## 5. 关键设计点
439
440- **family / parent / grace 状态机**:让 refresh 重放和并发刷新都自然处理:单次刷新在 DB 留两条行(老 `replaced_by=新`、`grace_expires_at`),宽限期内旧 refresh 仍可用。
441- **`pwd_version` + 双重防御**:
442 - token 自带 `pwd_version`,改密后 `user.passwd_version += 1`,旧 refresh 在 `rotate_refresh` 直接 `SessionRevoked`。
443 - access 是无状态的,**改密**与**注销**通过 `AccessTokenBlacklist`(Redis)做 best-effort 撤销;TTL = access 剩余寿命。
444- **PoW 一次性消费**:`GETDEL` 原子扣 Redis,同一 challenge 不能重放;`cid` 字段绑客户端,避免"用 A 的 challenge 给 B 用"。
445- **速率限分层**:
446 - 路由级(`rate_limit::ratelimit`)按 `client_id` 维度(IP / cookie / token)。
447 - 验证码级(`auth:code_rate`)按 (purpose, email) 维度,避免邮件轰炸。
448 - 验证码尝试级(`auth:code_attempts`)按 (purpose, temp_id) 维度,5 次后作废。
449- **错误侧信道**:
450 - 注册冲突一律 `Conflict("registration failed")`,不区分邮箱/用户名冲突。
451 - 忘记密码:邮箱不存在也返 `sent: true` + 同样的 temp_key。
452 - `reclaim`:账号不存在时返"看起来成功"的常量响应。
453- **OpenAPI 全程在 handler 层用 `#[utoipa::path]` 标注**,错误体统一为 `ErrorBody`,便于前端/SDK 自动化生成。
454- **指标可观测性**:所有 usecase 用 `metrics::Timer` RAII 自动观测耗时;outcome/error_kind 自动打点;`describe_*` 通过 `Once` 幂等注册。
455
456---
457
458## 6. 已知 TODO / 扩展点
459
460- `lib/jwt/handlers.rs::rotate_keys_handler` 仍是桩:未实现"生成新 Ed25519 key + 老 key 标记 `is_rotating=true` 进入 grace"这一动作;当前 `SigningKeyCache::load_from_db` 只把 DB 已配置好的 key 加载进来。
461- `AccessClaims.scope` 字段保留位,尚未使用。
462- `app_id`:登录/刷新都接收,但 session 里只存字符串;没有对 `app_id` 做白名单/校验。
463- 协议同意只在 key ∈ {terms, privacy} 白名单内;新增协议需要 `AuthConfig.agreements` 加条目 + `accept_agreement_inner` 增加 match 分支。
464- OAuth 三个 provider(google / github / apple)已拆分独立子模块,缺哪一个时 `OAuthProviderInfo` 中 disabled 即可。
465
466---
467
468## 7. 阅读顺序建议(如果第一次看)
469
4701. `lib/jwt/lib.rs` → `claims.rs` → `keys.rs` → `signer.rs` → `session.rs` → `rotation.rs`。
4712. `lib/auth/lib.rs` → `features/mod.rs`(`AuthService` 是什么)→ `pow/mod.rs` → `register/usecase.rs` → `login/usecase.rs`。
4723. `refresh/usecase.rs` + `logout/usecase.rs` + `reset_password/usecase.rs`:把 pwd_version / blacklist 联动看清。
4734. `email_code/usecase.rs`:看 Redis 速率限、temp_key cookie、purpose 三态。
4745. `oauth/usecase.rs` + `handler/oauth/*.rs`:三分支用户解析。
4756. `handler/routes.rs` + `handler/middleware/metrics.rs`:把"指标维度"和"中间件顺序"对上号。
Modified openapi.json openapi.json +1 −1 View openapi.json
@@ -1 +1 @@
1{"openapi":"3.1.0","info":{"title":"Untitled API","description":"Unified HTTP API for the untitled platform","license":{"name":""},"version":"1.94.0"},"paths":{"/api/v1/auth/agreements":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"List of agreement documents (terms, privacy).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_AgreementDoc"}}}}}}},"/api/v1/auth/agreements/accept":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AcceptAgreementCmd"}}},"required":true},"responses":{"200":{"description":"Agreement acceptance recorded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AcceptAgreementResp"}}}},"400":{"description":"Unknown agreement key or version mismatch.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/auth/email/reclaim":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ReclaimCmd"}}},"required":true},"responses":{"200":{"description":"A Signup verification code was issued to the mailbox if the account is inactive; otherwise a constant-shaped no-op is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReclaimResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/email/resend":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ResendCodeCmd"}}},"required":true},"responses":{"200":{"description":"New code issued (or silently no-op if the email is unknown).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ResendCodeResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/email/verify":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_VerifyCodeCmd"}}},"required":true},"responses":{"200":{"description":"Code verified; the verification-code row id is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_VerifyCodeResult"}}}},"400":{"description":"Invalid code, missing temp_key cookie, or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_LoginCmd"}}},"required":true},"responses":{"200":{"description":"Authenticated. Returns access/refresh tokens and a public user view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LoginResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Invalid credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"Account forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_LogoutCmd"}}},"required":true},"responses":{"200":{"description":"Refresh token revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LogoutResp"}}}},"401":{"description":"Invalid or expired refresh token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/me":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"Authenticated user profile (full view, including privileged fields).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/auth/oauth/authorize":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AuthorizeCmd"}}},"required":true},"responses":{"200":{"description":"Authorization URL. The state-cookie carries the OAuth state value for the callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AuthorizationUrlResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Unknown provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/oauth/callback":{"get":{"tags":["auth"],"operationId":"handler","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OAuthProvider"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"state","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OAuth login completed. Returns token pair and the resolved user_id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_OAuthLoginResp"}}}},"400":{"description":"Missing state cookie or invalid state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"OAuth flow rejected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/oauth/providers":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"List of enabled OAuth providers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_OAuthProviderInfo"}}}}}}},"/api/v1/auth/password/forgot":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ForgotPasswordCmd"}}},"required":true},"responses":{"200":{"description":"Request accepted. The response shape is constant whether or not the email is known; the temp_key cookie carries the token for the subsequent reset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ForgotPasswordResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/password/reset":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ResetPasswordCmd"}}},"required":true},"responses":{"200":{"description":"Password updated; all sessions revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ResetPasswordResp"}}}},"400":{"description":"Missing temp_key cookie, weak password, or invalid token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/pow/challenge":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"A fresh PoW challenge bound to this client.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PowChallengeResp"}}}},"400":{"description":"PoW not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RefreshCmd"}}},"required":true},"responses":{"200":{"description":"Rotated token pair.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RefreshResp"}}}},"401":{"description":"Invalid or expired refresh token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/register":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RegisterCmd"}}},"required":true},"responses":{"200":{"description":"Account created (possibly pending email verification).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RegisterResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Email or username already taken.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/health/live":{"get":{"tags":["system"],"operationId":"liveness","responses":{"200":{"description":"Process is alive","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatus"}}}}}}},"/api/v1/health/ready":{"get":{"tags":["system"],"operationId":"readiness","responses":{"200":{"description":"Service is ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatus"}}}}}}},"/api/v1/issues":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List issue boards (collections)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_CollectionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateCollectionOption"}}},"required":true},"responses":{"201":{"description":"Create an issue board (collection)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Default issue board OR issue list (when query.state/q/author_id/milestone_id is set)"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateIssueOption"}}},"required":true},"responses":{"201":{"description":"Create an issue in this channel's board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete default issue board"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateCollectionOption"}}},"required":true},"responses":{"200":{"description":"Update default issue board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/attachments/{owner_type}/{owner_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List attachments"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UploadAttachmentInput"}}},"required":true},"responses":{"201":{"description":"Upload attachment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AttachmentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/attachments/{owner_type}/{owner_id}/{att_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete attachment"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/labels":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"is_archived","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List labels"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateLabelOption"}}},"required":true},"responses":{"201":{"description":"Create label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/labels/{label_id}":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete label"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateLabelOption"}}},"required":true},"responses":{"200":{"description":"Update label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/milestones":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"is_closed","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List milestones"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMilestoneOption"}}},"required":true},"responses":{"201":{"description":"Create milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/milestones/{milestone_id}":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete milestone"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMilestoneOption"}}},"required":true},"responses":{"200":{"description":"Update milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/pins":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List pinned issues"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePinOption"}}},"required":true},"responses":{"201":{"description":"Pin issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PinView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/pins/{pin_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Unpin issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete issue"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateIssueOption"}}},"required":true},"responses":{"200":{"description":"Update issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/close":{"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CloseIssueOption"}}},"required":true},"responses":{"200":{"description":"Open/close issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"parent_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List comments"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateCommentOption"}}},"required":true},"responses":{"201":{"description":"Create comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments/{comment_id}":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete comment"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateCommentOption"}}},"required":true},"responses":{"200":{"description":"Update comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments/{comment_id}/reactions":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List comment reactions"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReactionOption"}}},"required":true},"responses":{"201":{"description":"React to comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/content_history":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"comment_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List content history"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/dependencies":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List dependencies"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDependencyOption"}}},"required":true},"responses":{"201":{"description":"Create dependency","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DependencyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/dependencies/{dep_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete dependency"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/events":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List issue events"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/labels":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List labels for issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/labels/{label_id}":{"post":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Bind label to issue"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Unbind label from issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/members":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List members"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMemberOption"}}},"required":true},"responses":{"201":{"description":"Create member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/members/{member_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/reactions":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List issue reactions"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReactionOption"}}},"required":true},"responses":{"201":{"description":"React to issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/reactions/{reaction_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete reaction"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/repo_relations":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List repo relations"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRepoRelOption"}}},"required":true},"responses":{"201":{"description":"Link repo to issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoRelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/repo_relations/{rel_id}":{"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Unlink repo from issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/stopwatch":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get my stopwatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_StopwatchView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","responses":{"201":{"description":"Start stopwatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_StopwatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Stop stopwatch"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/tracked_time":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List tracked time"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/users":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"List issue users"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/users/{uid}":{"patch":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateIssueUserOption"}}},"required":true},"responses":{"200":{"description":"Update issue user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueUserView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/watch":{"get":{"tags":["issues"],"operationId":"handler","responses":{"200":{"description":"Get my watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_WatchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertWatchOption"}}},"required":true},"responses":{"200":{"description":"Upsert watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_WatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","responses":{"204":{"description":"Delete watch state"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}":{"get":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Posts board view OR post list (when query.status/q/author_id is set)"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostOption"}}},"required":true},"responses":{"201":{"description":"Create a post (thread)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/boards":{"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostBoardOption"}}},"required":true},"responses":{"201":{"description":"Create a posts board (collection)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostBoardView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/labels":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"is_archived","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List board labels","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostLabelOption"}}},"required":true},"responses":{"201":{"description":"Create a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/labels/{label_id}":{"get":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Get a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Delete a board label"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePostLabelOption"}}},"required":true},"responses":{"200":{"description":"Update a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}":{"get":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Get a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Delete a post"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePostOption"}}},"required":true},"responses":{"200":{"description":"Update a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/archive":{"post":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Archive a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/close":{"post":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Close a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/labels":{"get":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"List labels bound to a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/labels/{label_id}":{"post":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Bind a label to a post"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Unbind a label from a post"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/mentions":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List mentions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostMentionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMentionOption"}}},"required":true},"responses":{"201":{"description":"Mention a user/role in a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostMentionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reactions":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List reactions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostReactionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostReactionOption"}}},"required":true},"responses":{"201":{"description":"React to a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reactions/{reaction_id}":{"delete":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Remove a reaction"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reopen":{"post":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Reopen a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/replies":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List replies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReplyPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReplyOption"}}},"required":true},"responses":{"201":{"description":"Create a reply","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReplyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/watch":{"get":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Get my watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostWatchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["posts"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertPostWatchOption"}}},"required":true},"responses":{"200":{"description":"Upsert watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostWatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","responses":{"200":{"description":"Delete my watch state"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List projects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateProjectCmd"}}},"required":true},"responses":{"201":{"description":"Create a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"Get a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Delete a project"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProjectCmd"}}},"required":true},"responses":{"200":{"description":"Update a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/activities":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"verb","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"per_page","in":"path","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"List activities","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ActivityPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/documents":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List documents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDocumentCmd"}}},"required":true},"responses":{"201":{"description":"Create a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/documents/{doc_id}":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"Get a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Delete a document"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateDocumentCmd"}}},"required":true},"responses":{"200":{"description":"Update a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/favorites":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List favorites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FavoritePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddFavoriteCmd"}}},"required":true},"responses":{"201":{"description":"Add a favorite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FavoriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/favorites/{favorite_id}":{"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Remove a favorite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/links":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List links","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LinkPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddLinkCmd"}}},"required":true},"responses":{"201":{"description":"Add a link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LinkView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/links/{link_id}":{"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Remove a link"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/members":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddMemberCmd"}}},"required":true},"responses":{"201":{"description":"Add a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/members/{user_id}":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"Get a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Remove a member"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMemberCmd"}}},"required":true},"responses":{"200":{"description":"Update a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/views":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"List views","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateViewCmd"}}},"required":true},"responses":{"201":{"description":"Create a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/views/{view_id}":{"get":{"tags":["project"],"operationId":"handler","responses":{"200":{"description":"Get a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","responses":{"204":{"description":"Delete a view"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateViewCmd"}}},"required":true},"responses":{"200":{"description":"Update a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"owner_user_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"is_private","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"is_archived","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List repositories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRepoOption"}}},"required":true},"responses":{"201":{"description":"Create a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/search":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"topic","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"include_desc","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"uid","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"priority_owner_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"team_id","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"starred_by","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"private","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"is_private","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"template","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"archived","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"mode","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"exclusive","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"sort","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"order","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"Search repositories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SearchResults"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a repository"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateRepoOption"}}},"required":true},"responses":{"200":{"description":"Update a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/archive":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ArchiveRepoOption"}}},"required":true},"responses":{"200":{"description":"Archive / unarchive a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/archive/{archive_format}/{ref_name}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"format","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"ref_name","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"Download an archive"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/assignees/{assignee}":{"get":{"tags":["repo"],"operationId":"check_handler","responses":{"204":{"description":"User is a valid assignee"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/avatar":{"post":{"tags":["repo"],"operationId":"post_handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateAvatarOption"}}},"required":true},"responses":{"204":{"description":"Update repo avatar"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"delete_handler","responses":{"204":{"description":"Delete repo avatar"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List branch protections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBranchProtectionOption"}}},"required":true},"responses":{"201":{"description":"Create a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections/priority":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBranchProtectionPriorities"}}},"required":true},"responses":{"204":{"description":"Update branch protection priorities"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections/{policy_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a branch protection"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditBranchProtectionOption"}}},"required":true},"responses":{"200":{"description":"Edit a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"keyword","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"List branches","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBranchOption"}}},"required":true},"responses":{"201":{"description":"Create a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches/{branch_name}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBranchOption"}}},"required":true},"responses":{"200":{"description":"Update a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a branch"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches/{branch_name}/rename":{"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RenameBranchOption"}}},"required":true},"responses":{"200":{"description":"Rename a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List collaborators","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollaboratorPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators/{user_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"User is a collaborator"}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddCollaboratorOption"}}},"required":true},"responses":{"204":{"description":"Add or update a collaborator"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Remove a collaborator"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators/{user_id}/permission":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get collaborator permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoCollaboratorPermission"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"sha","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"path","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"since","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"until","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"stat","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"verification","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"files","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"not","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List commits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitsResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits/{ref}/status":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get combined status by ref","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CombinedStatusView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits/{ref}/statuses":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"sort","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"state","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List commit statuses by ref","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/compare/{base}...{head}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Compare two refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CompareView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"List contents at root","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents-ext":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"List contents (ext form)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentsExtResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents-ext/{path:path}":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"Get contents (ext form)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentsExtResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents/change":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ChangeFilesOptions"}}},"required":true},"responses":{"200":{"description":"Multi-file change","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents/{path}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"Get a file or directory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateFileOption"}}},"required":true},"responses":{"200":{"description":"Update a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateFileOption"}}},"required":true},"responses":{"201":{"description":"Create a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_DeleteFileOption"}}},"required":true},"responses":{"204":{"description":"Delete a file"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/diffpatch":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ApplyDiffPatchFileOptions"}}},"required":true},"responses":{"200":{"description":"Apply a diff patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/editorconfig/{filename:path}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get EditorConfig","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/file-contents":{"get":{"tags":["repo"],"operationId":"get_handler","responses":{"200":{"description":"Batch read files","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FilesResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"post_handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_Vec_String"}}},"required":true},"responses":{"200":{"description":"Batch read files","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FileDeleteResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/forks":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List forks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ForksResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ForkRepoOption"}}},"required":true},"responses":{"201":{"description":"Fork a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/generate":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_GenerateRepoOption"}}},"required":true},"responses":{"201":{"description":"Generate a repository from template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/blobs/{sha}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a blob","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BlobView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/diff/{sha}":{"get":{"tags":["repo"],"operationId":"diff_handler","responses":{"200":{"description":"Get commit diff or patch","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/{sha}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a commit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/{sha}.{diff_type}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get commit diff or patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitDiffPayload"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/notes/{sha}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a note","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_NoteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/refs":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List git refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_GitRef"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/refs/{filter}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Filter git refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_GitRef"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/tags/{sha}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get an annotated tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/trees/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"recursive","in":"path","required":true,"schema":{"type":["boolean","null"]}}],"responses":{"200":{"description":"Get a tree","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TreeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_config":{"get":{"tags":["repo"],"operationId":"get_handler","responses":{"200":{"description":"Get issue config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueConfig"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_config/validate":{"get":{"tags":["repo"],"operationId":"validate_handler","responses":{"200":{"description":"Validate issue config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueConfigValidation"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_templates":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List issue templates","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_IssueTemplate"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/keys":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":["string","null"],"format":"uuid"}},{"name":"fingerprint","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List deploy keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDeployKeyOption"}}},"required":true},"responses":{"201":{"description":"Create a deploy key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/keys/{key_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a deploy key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a deploy key"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/languages":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get repo language stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LanguagesResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/licenses":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List detected licenses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LicensesResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/media/{filepath:path}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get media (raw or LFS pointer)","content":{"application/octet-stream":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/merge-upstream":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MergeUpstreamRequest"}}},"required":true},"responses":{"200":{"description":"Merge upstream","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MergeUpstreamResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/new_pin_allowed":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Whether new issue pins are allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_NewPinAllowedResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"state","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"keyword","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"List pull requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePullRequestOption"}}},"required":true},"responses":{"201":{"description":"Create a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePullRequestOption"}}},"required":true},"responses":{"200":{"description":"Update a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/close":{"post":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Close a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/comments":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List pull request comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestCommentView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePullRequestCommentOption"}}},"required":true},"responses":{"201":{"description":"Create a pull request comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestCommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/events":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List pull request events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestEventView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/lock":{"post":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Lock a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/merge":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MergePullRequestOption"}}},"required":true},"responses":{"200":{"description":"Merge a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MergeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/reopen":{"post":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Reopen a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/reviews":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List pull request reviews","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestReviewView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SubmitPullRequestReviewOption"}}},"required":true},"responses":{"201":{"description":"Submit a pull request review","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestReviewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/unlock":{"post":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Unlock a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/raw/{filepath:path}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get raw file content","content":{"application/octet-stream":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"draft","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"prerelease","in":"path","required":true,"schema":{"type":["boolean","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List releases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleasePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReleaseOption"}}},"required":true},"responses":{"201":{"description":"Create a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/latest":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get the latest release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/tags/{tag}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a release by tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a release by tag"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a release"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditReleaseOption"}}},"required":true},"responses":{"200":{"description":"Edit a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}/assets":{"get":{"tags":["repo"],"operationId":"list_handler","responses":{"200":{"description":"List release attachments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseAttachmentListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}/assets/{attachment_id}":{"get":{"tags":["repo"],"operationId":"get_handler","responses":{"200":{"description":"Get a release attachment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseAttachmentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/rename":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RenameRepoOption"}}},"required":true},"responses":{"200":{"description":"Rename a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/reviewers":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List reviewers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserMini"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/signing-key.gpg":{"get":{"tags":["repo"],"operationId":"gpg_handler","responses":{"200":{"description":"GPG signing key","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/signing-key.pub":{"get":{"tags":["repo"],"operationId":"ssh_handler","responses":{"200":{"description":"SSH signing key","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/stargazers":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List stargazers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserMini"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/statuses/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"sort","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"state","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List commit statuses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateStatusOption"}}},"required":true},"responses":{"201":{"description":"Create a commit status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/subscribers":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List subscribers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SubscriberPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/subscription":{"get":{"tags":["repo"],"operationId":"get_handler","responses":{"200":{"description":"Get current user's subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Subscription"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"put_handler","responses":{"204":{"description":"Watch the repo"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"delete_handler","responses":{"204":{"description":"Unwatch the repo"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/sync":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get repo metadata sync status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SyncStatus"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/sync/run":{"post":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Trigger a metadata sync","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SyncResult"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tag_protections":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List tag protections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateTagProtectionOption"}}},"required":true},"responses":{"201":{"description":"Create a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tag_protections/{policy_id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a tag protection"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditTagProtectionOption"}}},"required":true},"responses":{"200":{"description":"Edit a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tags":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List tags","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateTagOption"}}},"required":true},"responses":{"201":{"description":"Create a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tags/{tag_name}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Delete a tag"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/topics":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"List repo topics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TopicList"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RepoTopicOptions"}}},"required":true},"responses":{"204":{"description":"Replace repo topics"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/topics/{topic}":{"put":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Add a topic"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","responses":{"204":{"description":"Remove a topic"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/transfer":{"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_TransferRepoOption"}}},"required":true},"responses":{"200":{"description":"Transfer a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repositories/{id}":{"get":{"tags":["repo"],"operationId":"handler","responses":{"200":{"description":"Get a repository by id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoSummary"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List spaces owned by the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpacePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateSpaceCmd"}}},"required":true},"responses":{"200":{"description":"Create a new space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/invites/accept":{"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AcceptInviteCmd"}}},"required":true},"responses":{"200":{"description":"Accept an invite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Get a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}}},"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Delete a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateSpaceCmd"}}},"required":true},"responses":{"200":{"description":"Update a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/bans":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List bans in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBanCmd"}}},"required":true},"responses":{"200":{"description":"Ban a user from a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/bans/{uid}":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Get a ban","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Unban a user from a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBanCmd"}}},"required":true},"responses":{"200":{"description":"Update a ban","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List channels in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ChannelPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Get a channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ChannelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/roles":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"List role overwrites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RoleOverwriteView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SetRoleOverwriteCmd"}}},"required":true},"responses":{"200":{"description":"Set a role overwrite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleOverwriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/roles/{rid}":{"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Remove a role overwrite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/users":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"List user overwrites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserOverwriteView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SetUserOverwriteCmd"}}},"required":true},"responses":{"200":{"description":"Set a user overwrite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserOverwriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/users/{uid}":{"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Remove a user overwrite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/invites":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List invites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInvitePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateInviteCmd"}}},"required":true},"responses":{"200":{"description":"Create an invite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInviteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/invites/{iid}":{"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Revoke an invite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInviteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List members of a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddMemberCmd"}}},"required":true},"responses":{"200":{"description":"Add a member to a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Get a space member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Remove a member from a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMemberCmd"}}},"required":true},"responses":{"200":{"description":"Update a space member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}/roles":{"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AssignRoleCmd"}}},"required":true},"responses":{"200":{"description":"Assign a role to a member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}/roles/{rid}":{"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Unassign a role from a member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/roles":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List roles in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RolePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRoleCmd"}}},"required":true},"responses":{"200":{"description":"Create a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/roles/{rid}":{"get":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Get a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}}},"delete":{"tags":["space"],"operationId":"handler","responses":{"200":{"description":"Delete a role"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateRoleCmd"}}},"required":true},"responses":{"200":{"description":"Update a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/topics/search":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"q","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"page","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"limit","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"Search topics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TopicSearchResult"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/deletions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List pending and scheduled deletion requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/deletions/{id}/complete":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Deletion request id.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Deletion completed; sessions revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/suspensions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"include_revoked","in":"query","description":"Include revoked suspensions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"All suspensions (admin view).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/suspensions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Suspension id.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RevokeSuspensionCmd"}}},"required":true},"responses":{"204":{"description":"Suspension revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/users/{uid}/profile":{"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProfileCmd"}}},"required":true},"responses":{"200":{"description":"Admin-updated profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/users/{uid}/suspensions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"include_revoked","in":"query","description":"Include revoked suspensions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Suspensions for the given user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SuspendCmd"}}},"required":true},"responses":{"200":{"description":"Suspension created (also sets users.is_restricted = true).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Authenticated user profile (privileged view).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/access-keys":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List access keys for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_AccessKeyView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateAccessKeyCmd"}}},"required":true},"responses":{"200":{"description":"Access key created (token returned only once).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CreateAccessKeyResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/access-keys/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Access key identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Access key deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/avatar":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Current avatar metadata (200 with empty body if none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Option_AvatarView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UploadAvatarCmd"}}},"required":true},"responses":{"200":{"description":"Avatar uploaded and bound to caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AvatarView"}}}},"400":{"description":"Invalid content_type or base64 payload."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"204":{"description":"Avatar removed."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/blocks":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of blocked users.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_BlockedSummary"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/blocks/{uid}":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Block succeeded (idempotent; also unfollows both directions)."},"404":{"description":"Target user not found."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unblock succeeded."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/deletion":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RequestDeletionCmd"}}},"required":true},"responses":{"200":{"description":"Deletion request created or returned (idempotent).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"204":{"description":"Active deletion request cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/deletion/confirm":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Deletion request scheduled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/devices":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List devices registered to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_DeviceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/devices/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Device identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Device removed."}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Device identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateDeviceCmd"}}},"required":true},"responses":{"200":{"description":"Device updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeviceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RequestChangeBody"}}},"required":true},"responses":{"200":{"description":"Email change ticket created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_EmailChangeTicketView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change/confirm":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ConfirmEmailChangeCmd"}}},"required":true},"responses":{"200":{"description":"Ticket status advanced.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_EmailChangeTicketView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change/{ticket_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"ticket_id","in":"path","description":"Ticket identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Ticket cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List active emails for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_EmailView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddEmailCmd"}}},"required":true},"responses":{"200":{"description":"Email added (unverified).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AddEmailResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails/{email_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"email_id","in":"path","description":"Email identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Email soft-deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails/{email_id}/primary":{"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"email_id","in":"path","description":"Email identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Primary email changed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SetPrimaryEmailResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/memes":{"get":{"tags":["user"],"operationId":"list_handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"List the caller's favorite memes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_MemeView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"create_handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertMemeCmd"}}},"required":true},"responses":{"200":{"description":"Meme created or updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/memes/{id}":{"delete":{"tags":["user"],"operationId":"delete_handler","parameters":[{"name":"id","in":"path","description":"Meme identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Meme deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/saved":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Saved messages for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SavedMessageView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SaveMessageCmd"}}},"required":true},"responses":{"200":{"description":"Message saved (idempotent).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SavedMessageView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/saved/{message_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"message_id","in":"path","description":"Message identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Message removed from saved list."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/scheduled":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Scheduled messages for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_ScheduledMessageView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/scheduled/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Scheduled message identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Scheduled message cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"unread_only","in":"query","description":"Only return unread notifications.","required":false,"schema":{"type":"boolean"}},{"name":"notification_type","in":"query","description":"Filter by notification type.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Notifications for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_NotificationView"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MarkReadCmd"}}},"required":true},"responses":{"200":{"description":"Notifications marked as read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MarkReadResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications/mark-all-read":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"All notifications marked as read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MarkAllReadResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications/unread-count":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Number of unread notifications for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UnreadCountResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/preferences":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"User preferences (auto-created if missing).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPreferences"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePreferencesCmd"}}},"required":true},"responses":{"200":{"description":"Updated preferences.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPreferences"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/profile":{"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProfileCmd"}}},"required":true},"responses":{"200":{"description":"Updated self profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/push-subscriptions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List push subscriptions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PushSubscriptionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertPushCmd"}}},"required":true},"responses":{"200":{"description":"Push subscription upserted (endpoint-keyed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PushSubscriptionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/push-subscriptions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Push subscription id.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Push subscription deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recent-mentions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Recent mentions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RecentMentionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recovery-codes":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List recovery codes for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RecoveryCodeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recovery-codes/regenerate":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Recovery codes regenerated (plaintext returned once).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RegenerateRecoveryResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/reports":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Reports submitted by the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_ReportView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/sessions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"app_id","in":"query","description":"Filter by app id.","required":false,"schema":{"type":"string"}},{"name":"include_revoked","in":"query","description":"Include revoked sessions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"List active sessions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SessionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"All sessions revoked for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RevokeAllResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/sessions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Session identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Session revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/ssh-keys":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List SSH keys for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SshKeyView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddSshKeyCmd"}}},"required":true},"responses":{"200":{"description":"SSH key added.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SshKeyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/ssh-keys/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"SSH key identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"SSH key deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/suspensions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Active suspensions affecting the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/reports":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SubmitReportCmd"}}},"required":true},"responses":{"200":{"description":"Report submitted (status = Open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReportView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/users/{uid}":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"User identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Public view of the user (visibility-filtered).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPublic"}}}},"404":{"description":"User not found."}}}},"/api/v1/user/users/{uid}/follow":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Follow succeeded (idempotent)."},"404":{"description":"Target user not found."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unfollow succeeded."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/users/{uid}/followers":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of followers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_FollowerSummary"}}}}}}},"/api/v1/user/users/{uid}/following":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of accounts the user follows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_FollowerSummary"}}}}}}},"/api/v1/user/users/{uid}/profile-detail":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"User identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Extended profile record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProfileView"}}}},"404":{"description":"Profile not found."}}}}},"components":{"schemas":{"AcceptAgreementCmd":{"type":"object","required":["user_id","agreement_key","agreement_version"],"properties":{"agreement_key":{"type":"string"},"agreement_version":{"type":"string"},"user_id":{"type":"string"}}},"AcceptAgreementResp":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"}}},"AcceptInviteCmd":{"type":"object","required":["accept_code"],"properties":{"accept_code":{"type":"string"}}},"AccessKeyScope":{"type":"string","enum":["read","write","repo","admin","all"]},"AccessKeyView":{"type":"object","required":["id","name","token_last_eight","scope","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"},"token_last_eight":{"type":"string"},"updated_at":{"type":"string"}}},"ActivityPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ActivityView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ActivityView":{"type":"object","required":["id","project_id","actor_id","verb","target_kind","created_at"],"properties":{"actor_id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"payload":{},"project_id":{"type":"string","format":"uuid"},"target_id":{"type":["string","null"],"format":"uuid"},"target_kind":{"type":"string"},"verb":{"type":"string"}}},"AddCollaboratorOption":{"type":"object","required":["permission"],"properties":{"permission":{"type":"string"}}},"AddEmailCmd":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"AddEmailResp":{"type":"object","required":["email_id"],"properties":{"email_id":{"type":"string","format":"uuid"}}},"AddFavoriteCmd":{"type":"object","properties":{"folder":{"type":["string","null"]}}},"AddLinkCmd":{"type":"object","required":["related_project_id","kind"],"properties":{"kind":{"$ref":"#/components/schemas/LinkKind"},"related_project_id":{"type":"string","format":"uuid"}}},"AddMemberCmd":{"type":"object","required":["user_id"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"},"user_id":{"type":"string","format":"uuid"}}},"AddSshKeyCmd":{"type":"object","required":["name","content"],"properties":{"content":{"type":"string"},"key_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SshKeyType"}]},"name":{"type":"string"}}},"AgreementDoc":{"type":"object","required":["key","version","updated_at","title","content_md"],"properties":{"content_md":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"string"}}},"AppRequestData_AcceptAgreementCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","agreement_key","agreement_version"],"properties":{"agreement_key":{"type":"string"},"agreement_version":{"type":"string"},"user_id":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AcceptInviteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["accept_code"],"properties":{"accept_code":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddCollaboratorOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["permission"],"properties":{"permission":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddEmailCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddFavoriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"folder":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_AddLinkCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["related_project_id","kind"],"properties":{"kind":{"$ref":"#/components/schemas/LinkKind"},"related_project_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AddMemberCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AddSshKeyCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","content"],"properties":{"content":{"type":"string"},"key_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SshKeyType"}]},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_ApplyDiffPatchFileOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"sha":{"type":["string","null"]}}}]},"request_id":{"type":"string"}}},"AppRequestData_ArchiveRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean"}}},"request_id":{"type":"string"}}},"AppRequestData_AssignRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AuthorizeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["provider","code_verifier"],"properties":{"app_id":{"type":["string","null"]},"code_verifier":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"}}},"request_id":{"type":"string"}}},"AppRequestData_ChangeFilesOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/ChangeFileEntry"}}}}]},"request_id":{"type":"string"}}},"AppRequestData_CloseIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["closed"],"properties":{"closed":{"type":"boolean"}}},"request_id":{"type":"string"}}},"AppRequestData_ConfirmEmailChangeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["ticket_id"],"properties":{"ticket_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateAccessKeyCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","scope"],"properties":{"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBanCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id"],"properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_branch_name"],"properties":{"new_branch_name":{"type":"string"},"old_branch_name":{"type":["string","null"]},"old_ref_name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBranchProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["branch_name"],"properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"rule_name":{"type":["string","null"]},"unprotected_file_patterns":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateCollectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDependencyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["dependency_id"],"properties":{"dependency_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDeployKeyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","key"],"properties":{"key":{"type":"string"},"read_only":{"type":["boolean","null"]},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDocumentCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","slug"],"properties":{"content":{"type":"string"},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}}]},"request_id":{"type":"string"}}},"AppRequestData_CreateInviteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_ids"],"properties":{"email":{"type":["string","null"]},"expires_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"user_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMemberOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","kind"],"properties":{"kind":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMentionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["is_everyone","is_here"],"properties":{"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMilestoneOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePinOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["issue_id","pin_order"],"properties":{"issue_id":{"type":"string","format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostBoardOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostReactionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateProjectCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"},"target_date":{"type":["string","null"],"format":"date"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePullRequestCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","head","base"],"properties":{"base":{"type":"string"},"body":{"type":["string","null"]},"head":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReactionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReleaseOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["tag_name","title"],"properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReplyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"parent_reply_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"auto_init":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"gitignores":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"issue_labels":{"type":["string","null"]},"license_name":{"type":["string","null"]},"name":{"type":"string"},"object_format":{"type":["string","null"]},"parent_dir":{"type":["string","null"],"format":"uuid"},"readme":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRepoRelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["repo_id"],"properties":{"repo_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","permissions"],"properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateSpaceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"public":{"type":"boolean"},"welcome_message":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateStatusOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["state","context"],"properties":{"context":{"type":"string"},"description":{"type":["string","null"]},"state":{"type":"string"},"target_url":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateTagOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["tag_name"],"properties":{"message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateTagProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name_pattern"],"properties":{"name_pattern":{"type":"string"},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_CreateViewCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"sort_by":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_DeleteFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["sha"],"properties":{"sha":{"type":"string"}}}]},"request_id":{"type":"string"}}},"AppRequestData_EditBranchProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"unprotected_file_patterns":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_EditReleaseOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_name":{"type":["string","null"]},"target":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_EditTagProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"name_pattern":{"type":["string","null"]},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_ForgotPasswordCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_ForkRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["to_channel_id"],"properties":{"description":{"type":["string","null"]},"name":{"type":["string","null"]},"to_channel_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_GenerateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["to_channel_id","name"],"properties":{"description":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"name":{"type":"string"},"to_channel_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_LoginCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["identifier","password","pow"],"properties":{"app_id":{"type":["string","null"]},"identifier":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_LogoutCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_MarkReadCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["notification_ids"],"properties":{"notification_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_MergePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["style"],"properties":{"commit_message":{"type":["string","null"]},"commit_title":{"type":["string","null"]},"delete_branch_after_merge":{"type":"boolean"},"style":{"$ref":"#/components/schemas/MergeStyle"}}},"request_id":{"type":"string"}}},"AppRequestData_MergeUpstreamRequest":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["branch"],"properties":{"branch":{"type":"string"},"ff_only":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_ReclaimCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_RefreshCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["refresh_token"],"properties":{"app_id":{"type":["string","null"]},"refresh_token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RegisterCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","password","pow"],"properties":{"accept_agreements":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"username":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_RenameBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RenameRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RepoTopicOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"request_id":{"type":"string"}}},"AppRequestData_RequestChangeBody":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_email"],"properties":{"new_email":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RequestDeletionCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_ResendCodeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow","purpose"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"purpose":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_ResetPasswordCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","token","new_password","temp_key_value"],"properties":{"email":{"type":"string"},"new_password":{"type":"string"},"temp_key_value":{"type":"string"},"token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RevokeSuspensionCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_SaveMessageCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["channel_id","message_id"],"properties":{"channel_id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SetRoleOverwriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"role_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SetUserOverwriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SubmitPullRequestReviewOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["state"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"state":{"$ref":"#/components/schemas/ReviewState"}}},"request_id":{"type":"string"}}},"AppRequestData_SubmitReportCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["reported_uid","reason"],"properties":{"evidence":{"type":["string","null"]},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SuspendCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["suspension_type"],"properties":{"ends_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"}}},"request_id":{"type":"string"}}},"AppRequestData_TransferRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_channel_id"],"properties":{"new_channel_id":{"type":"string","format":"uuid"},"new_name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateAvatarOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["image"],"properties":{"image":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBanCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_commit_id"],"properties":{"force":{"type":["boolean","null"]},"new_commit_id":{"type":"string"},"old_commit_id":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBranchProtectionPriorities":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateCollectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateDeviceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"device_name":{"type":["string","null"]},"is_trusted":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateDocumentCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"content":{"type":["string","null"]},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"from_path":{"type":["string","null"]},"sha":{"type":["string","null"]}}}]},"request_id":{"type":"string"}}},"AppRequestData_UpdateIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"body":{"type":["string","null"]},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateIssueUserOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"is_mentioned":{"type":["boolean","null"]},"is_read":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateMemberCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateMilestoneOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"is_closed":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePostLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePostOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"body":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePreferencesCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_dms_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"allow_mentions_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":["boolean","null"]},"email_flags":{"type":["integer","null"],"format":"int32"},"in_app_flags":{"type":["integer","null"],"format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":["integer","null"],"format":"int32"},"show_online_status":{"type":["boolean","null"]},"theme_mode":{"type":["string","null"]},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateProfileCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"avatar":{"type":["string","null"]},"display_name":{"type":["string","null"]},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"profile":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UpdateProfileFields"}]},"timezone":{"type":["string","null"]},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateProjectCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"health":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectHealth"}]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":["string","null"]},"sort_order":{"type":["integer","null"],"format":"int32"},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]},"target_date":{"type":["string","null"],"format":"date"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"base":{"type":["string","null"]},"body":{"type":["string","null"]},"head":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_fast_forward_only_merge":{"type":["boolean","null"]},"allow_manual_merge":{"type":["boolean","null"]},"allow_merge_commits":{"type":["boolean","null"]},"allow_merge_update":{"type":["boolean","null"]},"allow_rebase":{"type":["boolean","null"]},"allow_rebase_explicit":{"type":["boolean","null"]},"allow_rebase_update":{"type":["boolean","null"]},"allow_squash_merge":{"type":["boolean","null"]},"archived":{"type":["boolean","null"]},"autodetect_manual_merge":{"type":["boolean","null"]},"default_allow_maintainer_edit":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"default_delete_branch_after_merge":{"type":["boolean","null"]},"default_merge_style":{"type":["string","null"]},"default_update_style":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"external_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalTracker"}]},"external_wiki":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalWiki"}]},"has_actions":{"type":["boolean","null"]},"has_code":{"type":["boolean","null"]},"has_issues":{"type":["boolean","null"]},"has_packages":{"type":["boolean","null"]},"has_projects":{"type":["boolean","null"]},"has_pull_requests":{"type":["boolean","null"]},"has_releases":{"type":["boolean","null"]},"has_wiki":{"type":["boolean","null"]},"ignore_whitespace_conflicts":{"type":["boolean","null"]},"internal_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InternalTracker"}]},"is_private":{"type":["boolean","null"]},"license_name":{"type":["string","null"]},"name":{"type":["string","null"]},"projects_mode":{"type":["string","null"]},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":["string","null"]},"permissions":{"type":["array","null"],"items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateSpaceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_invite":{"type":["boolean","null"]},"allow_join":{"type":["boolean","null"]},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":["boolean","null"]},"name":{"type":["string","null"]},"public":{"type":["boolean","null"]},"welcome_message":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateViewCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":["boolean","null"]},"layout":{"type":["string","null"]},"name":{"type":["string","null"]},"sort_by":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UploadAttachmentInput":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["filename","content_type","data"],"properties":{"content_type":{"type":"string"},"data":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"filename":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UploadAvatarCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content_type","data_base64"],"properties":{"content_type":{"type":"string"},"data_base64":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertMemeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","content_type","url","size"],"properties":{"content_type":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertPostWatchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertPushCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["endpoint","p256dh_key","auth_key","platform"],"properties":{"auth_key":{"type":"string"},"endpoint":{"type":"string"},"p256dh_key":{"type":"string"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertWatchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_Vec_String":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"array","items":{"type":"string"}},"request_id":{"type":"string"}}},"AppRequestData_VerifyCodeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","purpose","code","temp_key_value"],"properties":{"code":{"type":"string"},"email":{"type":"string"},"purpose":{"type":"string"},"temp_key_value":{"type":"string"},"user_id":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppResponseData_AcceptAgreementResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ActivityPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ActivityView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AddEmailResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["email_id"],"properties":{"email_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AttachmentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","owner_type","owner_id","filename","content_type","size","url","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"string","format":"uuid"},"owner_id":{"type":"string","format":"uuid"},"owner_type":{"type":"string"},"size":{"type":"integer","format":"int64"},"uploaded_by":{"type":["string","null"],"format":"uuid"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AuthorizationUrlResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["url","temp_key"],"properties":{"temp_key":{"$ref":"#/components/schemas/TempKey"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AvatarView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BlobView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","size","encoding","content"],"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchProtectionPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchProtectionView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchProtectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","branch_name","rule_name","priority","enable_push","enable_push_whitelist","push_whitelist_usernames","push_whitelist_teams","push_whitelist_deploy_keys","enable_force_push","enable_force_push_allowlist","force_push_allowlist_usernames","force_push_allowlist_teams","force_push_allowlist_deploy_keys","enable_merge_whitelist","merge_whitelist_usernames","merge_whitelist_teams","enable_bypass_allowlist","bypass_allowlist_usernames","bypass_allowlist_teams","enable_approvals_whitelist","approvals_whitelist_usernames","approvals_whitelist_teams","required_approvals","block_on_rejected_reviews","block_on_change_requested_reviews","block_on_outdated_branch","dismiss_stale_approvals","ignore_stale_approvals","require_signed_commits","block_admin_merge_override","protected_file_patterns","unprotected_file_patterns","created_at","updated_at"],"properties":{"approvals_whitelist_teams":{"type":"array","items":{"type":"string"}},"approvals_whitelist_usernames":{"type":"array","items":{"type":"string"}},"block_admin_merge_override":{"type":"boolean"},"block_on_change_requested_reviews":{"type":"boolean"},"block_on_outdated_branch":{"type":"boolean"},"block_on_rejected_reviews":{"type":"boolean"},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":"array","items":{"type":"string"}},"bypass_allowlist_usernames":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string"},"dismiss_stale_approvals":{"type":"boolean"},"enable_approvals_whitelist":{"type":"boolean"},"enable_bypass_allowlist":{"type":"boolean"},"enable_force_push":{"type":"boolean"},"enable_force_push_allowlist":{"type":"boolean"},"enable_merge_whitelist":{"type":"boolean"},"enable_push":{"type":"boolean"},"enable_push_whitelist":{"type":"boolean"},"force_push_allowlist_deploy_keys":{"type":"boolean"},"force_push_allowlist_teams":{"type":"array","items":{"type":"string"}},"force_push_allowlist_usernames":{"type":"array","items":{"type":"string"}},"id":{"type":"string","format":"uuid"},"ignore_stale_approvals":{"type":"boolean"},"merge_whitelist_teams":{"type":"array","items":{"type":"string"}},"merge_whitelist_usernames":{"type":"array","items":{"type":"string"}},"priority":{"type":"integer","format":"int64"},"protected_file_patterns":{"type":"string"},"push_whitelist_deploy_keys":{"type":"boolean"},"push_whitelist_teams":{"type":"array","items":{"type":"string"}},"push_whitelist_usernames":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string","format":"uuid"},"require_signed_commits":{"type":"boolean"},"required_approvals":{"type":"integer","format":"int32"},"rule_name":{"type":"string"},"unprotected_file_patterns":{"type":"string"},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name","commit_sha","is_protected","protected","required_approvals","enable_status_check","status_check_contexts","user_can_push","user_can_merge","effective_branch_protection_name","is_deleted","created_at","updated_at"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitMeta"}]},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"effective_branch_protection_name":{"type":"string"},"enable_status_check":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"is_deleted":{"type":"boolean"},"is_protected":{"type":"boolean"},"name":{"type":"string"},"protected":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"required_approvals":{"type":"integer","format":"int64"},"status_check_contexts":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"user_can_merge":{"type":"boolean"},"user_can_push":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ChannelPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ChannelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","kind","position","is_archived","created_at","updated_at","created_by"],"properties":{"archived_at":{"type":["string","null"]},"archived_by":{"type":["string","null"],"format":"uuid"},"color":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"},"position":{"type":"integer","format":"int32"},"purpose":{"type":["string","null"]},"space_id":{"type":["string","null"],"format":"uuid"},"topic":{"type":["string","null"]},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CollaboratorPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollaboratorView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CollectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CombinedStatusView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","state","statuses","total_count"],"properties":{"sha":{"type":"string"},"state":{"type":"string"},"statuses":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total_count":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","poster_id","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"poster_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitStatusPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitStatusView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","sha","state","context","url","creator","created_at"],"properties":{"context":{"type":"string"},"created_at":{"type":"string"},"creator":{"$ref":"#/components/schemas/CommitUserSummary"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"state":{"type":"string"},"target_url":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitsResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitSummary"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CompareView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["base","head","total_commits","ahead_by","behind_by","files"],"properties":{"ahead_by":{"type":"integer","format":"int64"},"base":{"type":"string"},"behind_by":{"type":"integer","format":"int64"},"files":{"type":"array","items":{"$ref":"#/components/schemas/CompareFileDiff"}},"head":{"type":"string"},"merge_base":{"type":["string","null"]},"total_commits":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ContentsListResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ContentsResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["name","path","sha","type","size"],"properties":{"content":{"type":["string","null"]},"download_url":{"type":["string","null"]},"encoding":{"type":["string","null"]},"git_url":{"type":["string","null"]},"html_url":{"type":["string","null"]},"last_author_date":{"type":["string","null"]},"last_commit_message":{"type":["string","null"]},"last_commit_sha":{"type":["string","null"]},"last_committer_date":{"type":["string","null"]},"lfs_oid":{"type":["string","null"]},"lfs_size":{"type":["integer","null"],"format":"int64"},"links":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/FileLinksResponse"}]},"name":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"},"submodule_git_url":{"type":["string","null"]},"target":{"type":["string","null"]},"type":{"type":"string"},"url":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CreateAccessKeyResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["key","token"],"properties":{"key":{"$ref":"#/components/schemas/AccessKeyView"},"token":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeletionRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DependencyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","dependency_id","created_at"],"properties":{"created_at":{"type":"string"},"dependency_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeployKeyPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeployKeyView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeployKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","key_id","repo_id","title","key_type","fingerprint","content","url","read_only","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_id":{"type":"integer","format":"int64"},"key_type":{"type":"string"},"last_used_at":{"type":["string","null"]},"read_only":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeviceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DocumentPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DocumentView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DocumentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","creator_id","title","slug","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"last_editor_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_EmailChangeTicketView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","new_email","status","expires_at","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"new_email":{"type":"string"},"status":{"$ref":"#/components/schemas/EmailChangeTicketStatus"},"used_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FavoritePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FavoriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","user_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"folder":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FileDeleteResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"content":{}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FilesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["files"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ForgotPasswordResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ForksResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ForkView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueConfig":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["blank_issues_enabled"],"properties":{"blank_issues_enabled":{"type":"boolean"},"contact_links":{}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueConfigValidation":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["valid"],"properties":{"message":{"type":["string","null"]},"valid":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueUserView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","issue_id","is_read","is_mentioned","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_mentioned":{"type":"boolean"},"is_read":{"type":"boolean"},"issue_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","autoincrement_id","author_id","title","body","state","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"autoincrement_id":{"type":"integer","format":"int32"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"milestone_id":{"type":["string","null"],"format":"uuid"},"state":{"$ref":"#/components/schemas/IssueState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","exclusive","exclusive_order","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":"boolean"},"exclusive_order":{"type":"integer","format":"int32"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LanguagesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["languages"],"properties":{"languages":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LicensesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["licenses"],"properties":{"licenses":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LinkPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LinkView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LinkView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","related_project_id","kind","created_by","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/LinkKind"},"project_id":{"type":"string","format":"uuid"},"related_project_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LoginResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LogoutResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MarkAllReadResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MarkReadResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MemberView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemberView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","user_id","kind","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MergeUpstreamResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["merge_type"],"properties":{"merge_type":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MergeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","merged"],"properties":{"merged":{"type":"boolean"},"message":{"type":["string","null"]},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MilestoneView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","name","is_closed","num_issues","num_closed_issues","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_closed":{"type":"boolean"},"name":{"type":"string"},"num_closed_issues":{"type":"integer","format":"int32"},"num_issues":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_NewPinAllowedResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["allowed"],"properties":{"allowed":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_NoteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","message"],"properties":{"message":{"type":"string"},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_OAuthLoginResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user_id","auto_registered"],"properties":{"access_token":{"type":"string"},"auto_registered":{"type":"boolean"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user_id":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Option_AvatarView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"oneOf":[{"type":"null"},{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}}]},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PinView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","pin_order","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostBoardView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","description":"A post board (collection) hosting posts for a space.","required":["id","channel_id","name","nums_open_post","nums_closed_post","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_post":{"type":"integer","format":"int64"},"nums_open_post":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostLabelPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostLabelView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostLabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReplyPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostReplyView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReplyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","post_id","author_id","body","is_pinned","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"deleted_by":{"type":["string","null"],"format":"uuid"},"edited_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"parent_reply_id":{"type":["string","null"],"format":"uuid"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","description":"A single post (thread).","required":["id","collection_id","number","author_id","title","body","status","is_pinned","reply_count","created_at"],"properties":{"archived_at":{"type":["string","null"]},"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"last_reply_at":{"type":["string","null"]},"last_reply_by":{"type":["string","null"],"format":"uuid"},"number":{"type":"integer","format":"int64"},"reply_count":{"type":"integer","format":"int32"},"status":{"$ref":"#/components/schemas/PostStatusView"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostWatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","post_id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PowChallengeResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["challenge","ttl_seconds"],"properties":{"challenge":{"type":"string"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProfileView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","show_email","show_location","show_real_name","show_activity","updated_at"],"properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":"boolean"},"show_email":{"type":"boolean"},"show_location":{"type":"boolean"},"show_real_name":{"type":"boolean"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"},"website":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProjectPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProjectView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","creator_id","name","state","health","sort_order","starred","created_at"],"properties":{"cancelled_at":{"type":["string","null"],"format":"date-time"},"color":{"type":["string","null"]},"completed_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"health":{"$ref":"#/components/schemas/ProjectHealth"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"space_id":{"type":"string","format":"uuid"},"starred":{"type":"integer","format":"int32"},"started_at":{"type":["string","null"],"format":"date-time"},"state":{"$ref":"#/components/schemas/ProjectState"},"target_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestCommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PullRequestView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestReviewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","number","title","head_branch","base_branch","author_id","state","is_locked","has_merged","created_at","comments_count","reviews_count"],"properties":{"author_id":{"type":"string","format":"uuid"},"base_branch":{"type":"string"},"base_sha":{"type":["string","null"]},"body":{"type":["string","null"]},"closed_at":{"type":["string","null"]},"comments_count":{"type":"integer","format":"int64"},"created_at":{"type":"string"},"has_merged":{"type":"boolean"},"head_branch":{"type":"string"},"head_sha":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_locked":{"type":"boolean"},"mergeable":{"type":["boolean","null"]},"mergeable_state":{"type":["string","null"]},"merged_at":{"type":["string","null"]},"merged_commit_sha":{"type":["string","null"]},"merger_id":{"type":["string","null"]},"number":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"reviews_count":{"type":"integer","format":"int64"},"state":{"$ref":"#/components/schemas/PrState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PushSubscriptionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","scope","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"scope":{"$ref":"#/components/schemas/ReactionScope"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReclaimResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RefreshResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RegenerateRecoveryResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RegisterResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","pending","temp_key","purpose"],"properties":{"pending":{"type":"boolean"},"purpose":{"type":"string"},"temp_key":{"$ref":"#/components/schemas/TempKey"},"uid":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseAttachmentListResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachmentView"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseAttachmentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleasePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","tag_name","target","title","sha","num_commits","is_draft","is_prerelease","is_tag","url","html_url","tarball_url","zipball_url","upload_url","publisher","attachments","created_at","updated_at"],"properties":{"attachments":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachment"}},"content":{"type":["string","null"]},"created_at":{"type":"string"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_draft":{"type":"boolean"},"is_prerelease":{"type":"boolean"},"is_tag":{"type":"boolean"},"num_commits":{"type":"integer","format":"int32"},"publisher":{"$ref":"#/components/schemas/UserSummary"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"tag_name":{"type":"string"},"tarball_url":{"type":"string"},"target":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upload_url":{"type":"string"},"url":{"type":"string"},"zipball_url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoCollaboratorPermission":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["permission","role","user"],"properties":{"permission":{"type":"string"},"role":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RepoView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoRelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","repo_id","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","full_name","empty","private","fork","template","mirror","size","stars_count","forks_count","watchers_count","open_issues_count"],"properties":{"description":{"type":["string","null"]},"empty":{"type":"boolean"},"fork":{"type":"boolean"},"forks_count":{"type":"integer","format":"int32"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"mirror":{"type":"boolean"},"name":{"type":"string"},"open_issues_count":{"type":"integer","format":"int32"},"private":{"type":"boolean"},"size":{"type":"integer","format":"int64"},"stars_count":{"type":"integer","format":"int32"},"template":{"type":"boolean"},"watchers_count":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","space_id","name","lower_name","full_name","default_branch","enable_lfs","is_private","is_archived","is_fork","is_template","is_mirror","empty","size","git_size","lfs_size","nums_watch","nums_star","nums_pr","nums_commits","nums_branches","nums_tags","allow_rebase","allow_rebase_explicit","allow_squash_merge","allow_merge_commits","allow_fast_forward_only_merge","allow_rebase_update","allow_merge_update","allow_manual_merge","autodetect_manual_merge","default_delete_branch_after_merge","default_allow_maintainer_edit","ignore_whitespace_conflicts","object_format","has_code","has_issues","has_wiki","has_pull_requests","has_projects","has_releases","has_packages","has_actions","projects_mode","languages","licenses","topics","html_url","url","link","ssh_url","clone_url","created_at","updated_at"],"properties":{"allow_fast_forward_only_merge":{"type":"boolean"},"allow_manual_merge":{"type":"boolean"},"allow_merge_commits":{"type":"boolean"},"allow_merge_update":{"type":"boolean"},"allow_rebase":{"type":"boolean"},"allow_rebase_explicit":{"type":"boolean"},"allow_rebase_update":{"type":"boolean"},"allow_squash_merge":{"type":"boolean"},"archived_at":{"type":["string","null"]},"autodetect_manual_merge":{"type":"boolean"},"avatar_url":{"type":["string","null"]},"channel":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ChannelSummary"}]},"channel_id":{"type":"string","format":"uuid"},"clone_url":{"type":"string"},"created_at":{"type":"string"},"default_allow_maintainer_edit":{"type":"boolean"},"default_branch":{"type":"string"},"default_delete_branch_after_merge":{"type":"boolean"},"description":{"type":["string","null"]},"empty":{"type":"boolean"},"enable_lfs":{"type":"boolean"},"full_name":{"type":"string"},"git_size":{"type":"integer","format":"int64"},"has_actions":{"type":"boolean"},"has_code":{"type":"boolean"},"has_issues":{"type":"boolean"},"has_packages":{"type":"boolean"},"has_projects":{"type":"boolean"},"has_pull_requests":{"type":"boolean"},"has_releases":{"type":"boolean"},"has_wiki":{"type":"boolean"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"ignore_whitespace_conflicts":{"type":"boolean"},"is_archived":{"type":"boolean"},"is_fork":{"type":"boolean"},"is_mirror":{"type":"boolean"},"is_private":{"type":"boolean"},"is_template":{"type":"boolean"},"languages":{"type":"array","items":{"type":"string"}},"last_pushed_at":{"type":["string","null"]},"lfs_size":{"type":"integer","format":"int64"},"license_name":{"type":["string","null"]},"licenses":{"type":"array","items":{"type":"string"}},"link":{"type":"string"},"lower_name":{"type":"string"},"name":{"type":"string"},"nums_branches":{"type":"integer","format":"int32"},"nums_commits":{"type":"integer","format":"int32"},"nums_pr":{"type":"integer","format":"int32"},"nums_star":{"type":"integer","format":"int32"},"nums_tags":{"type":"integer","format":"int32"},"nums_watch":{"type":"integer","format":"int32"},"object_format":{"type":"string"},"parent":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RepoView"}]},"primary_language":{"type":["string","null"]},"projects_mode":{"type":"string"},"size":{"type":"integer","format":"int64"},"space":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceSummary"}]},"space_id":{"type":"string","format":"uuid"},"ssh_url":{"type":"string"},"storage_limit_size":{"type":["integer","null"],"format":"int64"},"topics":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"url":{"type":"string"},"website":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReportView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ResendCodeResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ResetPasswordResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RevokeAllResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RoleOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RolePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RoleView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RoleView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","name","position","color","version","created_at","created_by","permissions"],"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon_hash":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":"integer","format":"int64"},"space_id":{"type":"string","format":"uuid"},"unicode_emoji":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"version":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SavedMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SearchResults":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["data","ok"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RepoSummary"}},"ok":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SetPrimaryEmailResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["email"],"properties":{"email":{"$ref":"#/components/schemas/EmailView"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceBanPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceBanView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceBanView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["space_id","user_id","banned_by","created_at","updated_at","allow_agent_join","allow_speak","allow_push_repo","allow_comment_any"],"properties":{"allow_agent_join":{"type":"boolean"},"allow_comment_any":{"type":"boolean"},"allow_push_repo":{"type":"boolean"},"allow_speak":{"type":"boolean"},"banned_by":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceInvitePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceInviteView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceInviteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","user_id","email","role_ids","created_at"],"properties":{"accepted_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"revoked_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"space_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceMemberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceMemberView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceMemberView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["space_id","user_id","status","joined_at","created_at","message_notifications","muted","mobile_push","suppress_everyone","suppress_roles","hide_muted_channels"],"properties":{"alias_avatar_url":{"type":["string","null"]},"alias_name":{"type":["string","null"]},"created_at":{"type":"string"},"hide_muted_channels":{"type":"boolean"},"invited_at":{"type":["string","null"]},"invited_by":{"type":["string","null"],"format":"uuid"},"joined_at":{"type":"string"},"last_active_at":{"type":["string","null"]},"left_at":{"type":["string","null"]},"message_notifications":{"$ref":"#/components/schemas/MessageNotifications"},"mobile_push":{"type":"boolean"},"mute_until":{"type":["string","null"]},"muted":{"type":"boolean"},"space_id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SpaceMemberStatus"},"suppress_everyone":{"type":"boolean"},"suppress_roles":{"type":"boolean"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpacePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","owner_id","public","is_active","allow_join","allow_invite","member_count","allow_join_level","member_must_enable_2fa","created_at","updated_at"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"$ref":"#/components/schemas/SpaceAllowJoinLevel"},"avatar_url":{"type":["string","null"]},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_active":{"type":"boolean"},"member_count":{"type":"integer","format":"int64"},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"owner_id":{"type":"string","format":"uuid"},"public":{"type":"boolean"},"updated_at":{"type":"string"},"welcome_message":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SshKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_StopwatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","user_id","started_at","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"started_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SubscriberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SubscriberView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Subscription":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SuspensionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SyncResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["repo_id","branches_added","tags_added","commits_added","size_bytes"],"properties":{"branches_added":{"type":"integer","format":"int64"},"commits_added":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"size_bytes":{"type":"integer","format":"int64"},"tags_added":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SyncStatus":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["repo_id","branches_total","tags_total","commits_total","size","synced_at"],"properties":{"branches_total":{"type":"integer","format":"int64"},"commits_total":{"type":"integer","format":"int64"},"last_pushed_at":{"type":["string","null"]},"primary_language":{"type":["string","null"]},"repo_id":{"type":"string","format":"uuid"},"size":{"type":"integer","format":"int64"},"synced_at":{"type":"string"},"tags_total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagProtectionPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagProtectionView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagProtectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name_pattern","whitelist_usernames","whitelist_teams","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name_pattern":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"whitelist_teams":{"type":"array","items":{"type":"string"}},"whitelist_usernames":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name","tag_type","commit_sha","commit","message","zipball_url","tarball_url","created_at"],"properties":{"commit":{"$ref":"#/components/schemas/CommitMeta"},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message":{"type":"string"},"name":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"tag_type":{"type":"string"},"tarball_url":{"type":"string"},"zipball_url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TopicList":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TopicSearchResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicView"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TreeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","entries"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/TreeEntryView"}},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UnreadCountResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["count"],"properties":{"count":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserMe":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","username","display_name","avatar","is_active","is_admin","is_restricted"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"is_active":{"type":"boolean"},"is_admin":{"type":"boolean"},"is_restricted":{"type":"boolean"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserPreferences":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","theme_mode","in_app_flags","email_flags","push_flags","email_digest","allow_dms_from","allow_mentions_from","show_online_status","created_at","updated_at"],"properties":{"allow_dms_from":{"$ref":"#/components/schemas/Audience"},"allow_mentions_from":{"$ref":"#/components/schemas/Audience"},"created_at":{"type":"string"},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":"boolean"},"email_flags":{"type":"integer","format":"int32"},"in_app_flags":{"type":"integer","format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":"integer","format":"int32"},"show_online_status":{"type":"boolean"},"theme_mode":{"type":"string"},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserPublic":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","username","display_name","avatar","visibility","bot","system","created_at"],"properties":{"avatar":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"display_name":{"type":"string"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"system":{"type":"boolean"},"timezone":{"type":["string","null"]},"uid":{"type":"string","format":"uuid"},"username":{"type":"string"},"visibility":{"$ref":"#/components/schemas/ProfileVisibility"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_AccessKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","token_last_eight","scope","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"},"token_last_eight":{"type":"string"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_AgreementDoc":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["key","version","updated_at","title","content_md"],"properties":{"content_md":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_BlockedSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_CollectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_DeletionRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_DeviceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_EmailView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","email","is_activated","is_primary","created_at","updated_at"],"properties":{"activated_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_activated":{"type":"boolean"},"is_primary":{"type":"boolean"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_FollowerSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_GitRef":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","sha","type_"],"properties":{"name":{"type":"string"},"sha":{"type":"string"},"type_":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_IssueTemplate":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","title","content","fields"],"properties":{"content":{"type":"string"},"description":{"type":["string","null"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/IssueTemplateField"}},"name":{"type":"string"},"title":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_MemeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_NotificationView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","notification_type","title","created_at"],"properties":{"actor_uid":{"type":["string","null"],"format":"uuid"},"body":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"notification_type":{"$ref":"#/components/schemas/NotificationType"},"read_at":{"type":["string","null"]},"title":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_OAuthProviderInfo":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","display_name","authorize_url"],"properties":{"authorize_url":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostLabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestCommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestEventView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","event_type","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"pull_request_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestReviewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PushSubscriptionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RecentMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","message_id","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RecoveryCodeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"used_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_ReportView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RoleOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SavedMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_ScheduledMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target_channel_id","payload","scheduled_at","status","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"payload":{"type":"string"},"scheduled_at":{"type":"string"},"status":{"$ref":"#/components/schemas/ScheduledMessageStatus"},"target_channel_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SessionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","kind","is_revoked","created_at","expires_at"],"properties":{"app_id":{"type":["string","null"]},"client_ip_hash":{"type":["string","null"]},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_revoked":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/SessionKind"},"replaced_at":{"type":["string","null"]},"user_agent_hash":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SshKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SuspensionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_UserMini":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_UserOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_VerifyCodeResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["code_row_id"],"properties":{"code_row_id":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ViewPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ViewView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ViewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","creator_id","name","filter","sort_by","layout","is_shared","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"sort_by":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_WatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"mode":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"ApplyDiffPatchFileOptions":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"sha":{"type":["string","null"]}}}]},"ArchiveFormatQuery":{"type":"object","properties":{"format":{"type":["string","null"]},"ref_name":{"type":["string","null"]}}},"ArchiveRepoOption":{"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean"}}},"AssignRoleCmd":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"AttachmentPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AttachmentView"}},"total":{"type":"integer","format":"int64"}}},"AttachmentView":{"type":"object","required":["id","owner_type","owner_id","filename","content_type","size","url","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"string","format":"uuid"},"owner_id":{"type":"string","format":"uuid"},"owner_type":{"type":"string"},"size":{"type":"integer","format":"int64"},"uploaded_by":{"type":["string","null"],"format":"uuid"},"url":{"type":"string"}}},"Audience":{"type":"string","enum":["everyone","following_only","nobody"]},"AuthorizationUrlResp":{"type":"object","required":["url","temp_key"],"properties":{"temp_key":{"$ref":"#/components/schemas/TempKey"},"url":{"type":"string"}}},"AuthorizeCmd":{"type":"object","required":["provider","code_verifier"],"properties":{"app_id":{"type":["string","null"]},"code_verifier":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"}}},"AvatarFormat":{"type":"string","enum":["jpg","png","webp","gif"]},"AvatarView":{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}},"BlobView":{"type":"object","required":["sha","size","encoding","content"],"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"BlockedSummary":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"BranchPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchView"}},"total":{"type":"integer","format":"int64"}}},"BranchProtectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchProtectionView"}},"total":{"type":"integer","format":"int64"}}},"BranchProtectionView":{"type":"object","required":["id","repo_id","branch_name","rule_name","priority","enable_push","enable_push_whitelist","push_whitelist_usernames","push_whitelist_teams","push_whitelist_deploy_keys","enable_force_push","enable_force_push_allowlist","force_push_allowlist_usernames","force_push_allowlist_teams","force_push_allowlist_deploy_keys","enable_merge_whitelist","merge_whitelist_usernames","merge_whitelist_teams","enable_bypass_allowlist","bypass_allowlist_usernames","bypass_allowlist_teams","enable_approvals_whitelist","approvals_whitelist_usernames","approvals_whitelist_teams","required_approvals","block_on_rejected_reviews","block_on_change_requested_reviews","block_on_outdated_branch","dismiss_stale_approvals","ignore_stale_approvals","require_signed_commits","block_admin_merge_override","protected_file_patterns","unprotected_file_patterns","created_at","updated_at"],"properties":{"approvals_whitelist_teams":{"type":"array","items":{"type":"string"}},"approvals_whitelist_usernames":{"type":"array","items":{"type":"string"}},"block_admin_merge_override":{"type":"boolean"},"block_on_change_requested_reviews":{"type":"boolean"},"block_on_outdated_branch":{"type":"boolean"},"block_on_rejected_reviews":{"type":"boolean"},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":"array","items":{"type":"string"}},"bypass_allowlist_usernames":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string"},"dismiss_stale_approvals":{"type":"boolean"},"enable_approvals_whitelist":{"type":"boolean"},"enable_bypass_allowlist":{"type":"boolean"},"enable_force_push":{"type":"boolean"},"enable_force_push_allowlist":{"type":"boolean"},"enable_merge_whitelist":{"type":"boolean"},"enable_push":{"type":"boolean"},"enable_push_whitelist":{"type":"boolean"},"force_push_allowlist_deploy_keys":{"type":"boolean"},"force_push_allowlist_teams":{"type":"array","items":{"type":"string"}},"force_push_allowlist_usernames":{"type":"array","items":{"type":"string"}},"id":{"type":"string","format":"uuid"},"ignore_stale_approvals":{"type":"boolean"},"merge_whitelist_teams":{"type":"array","items":{"type":"string"}},"merge_whitelist_usernames":{"type":"array","items":{"type":"string"}},"priority":{"type":"integer","format":"int64"},"protected_file_patterns":{"type":"string"},"push_whitelist_deploy_keys":{"type":"boolean"},"push_whitelist_teams":{"type":"array","items":{"type":"string"}},"push_whitelist_usernames":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string","format":"uuid"},"require_signed_commits":{"type":"boolean"},"required_approvals":{"type":"integer","format":"int32"},"rule_name":{"type":"string"},"unprotected_file_patterns":{"type":"string"},"updated_at":{"type":"string"}}},"BranchView":{"type":"object","required":["id","repo_id","name","commit_sha","is_protected","protected","required_approvals","enable_status_check","status_check_contexts","user_can_push","user_can_merge","effective_branch_protection_name","is_deleted","created_at","updated_at"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitMeta"}]},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"effective_branch_protection_name":{"type":"string"},"enable_status_check":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"is_deleted":{"type":"boolean"},"is_protected":{"type":"boolean"},"name":{"type":"string"},"protected":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"required_approvals":{"type":"integer","format":"int64"},"status_check_contexts":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"user_can_merge":{"type":"boolean"},"user_can_push":{"type":"boolean"}}},"CallbackCmd":{"type":"object","required":["provider","code","state","temp_key_value"],"properties":{"app_id":{"type":["string","null"]},"code":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"},"state":{"type":"string"},"temp_key_value":{"type":"string"}}},"ChangeFileEntry":{"type":"object","required":["operation","path"],"properties":{"content":{"type":["string","null"]},"from_path":{"type":["string","null"]},"operation":{"type":"string"},"path":{"type":"string"},"sha":{"type":["string","null"]}}},"ChangeFilesOptions":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/ChangeFileEntry"}}}}]},"ChannelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelView"}},"total":{"type":"integer","format":"int64"}}},"ChannelSummary":{"type":"object","required":["id","space_id","name"],"properties":{"display_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"space_id":{"type":"string","format":"uuid"}}},"ChannelView":{"type":"object","required":["id","name","kind","position","is_archived","created_at","updated_at","created_by"],"properties":{"archived_at":{"type":["string","null"]},"archived_by":{"type":["string","null"],"format":"uuid"},"color":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"},"position":{"type":"integer","format":"int32"},"purpose":{"type":["string","null"]},"space_id":{"type":["string","null"],"format":"uuid"},"topic":{"type":["string","null"]},"updated_at":{"type":"string"}}},"CloseIssueOption":{"type":"object","required":["closed"],"properties":{"closed":{"type":"boolean"}}},"CollaboratorPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollaboratorView"}},"total":{"type":"integer","format":"int64"}}},"CollaboratorView":{"type":"object","required":["id","repo_id","user_id","mode","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"CollectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollectionView"}},"total":{"type":"integer","format":"int64"}}},"CollectionView":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"CombinedStatusView":{"type":"object","required":["sha","state","statuses","total_count"],"properties":{"sha":{"type":"string"},"state":{"type":"string"},"statuses":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total_count":{"type":"integer","format":"int64"}}},"CommentPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommentView"}},"total":{"type":"integer","format":"int64"}}},"CommentView":{"type":"object","required":["id","poster_id","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"poster_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"CommitDateOptions":{"type":"object","properties":{"author":{"type":["string","null"]},"committer":{"type":["string","null"]}}},"CommitDiffPayload":{"type":"object","required":["sha","format","content"],"properties":{"content":{"type":"string"},"format":{"type":"string"},"sha":{"type":"string"}}},"CommitMeta":{"type":"object","required":["sha","message"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"sha":{"type":"string"},"tree_sha":{"type":["string","null"]}}},"CommitStatusPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total":{"type":"integer","format":"int64"}}},"CommitStatusView":{"type":"object","required":["id","repo_id","sha","state","context","url","creator","created_at"],"properties":{"context":{"type":"string"},"created_at":{"type":"string"},"creator":{"$ref":"#/components/schemas/CommitUserSummary"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"state":{"type":"string"},"target_url":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"url":{"type":"string"}}},"CommitSummary":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserMini"}]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserMini"}]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"CommitUserSummary":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}},"CommitView":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"CommitsResponse":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitSummary"}},"total":{"type":"integer","format":"int64"}}},"CompareFileDiff":{"type":"object","required":["path","additions","deletions","status"],"properties":{"additions":{"type":"integer","format":"int64"},"deletions":{"type":"integer","format":"int64"},"path":{"type":"string"},"status":{"type":"string"}}},"CompareView":{"type":"object","required":["base","head","total_commits","ahead_by","behind_by","files"],"properties":{"ahead_by":{"type":"integer","format":"int64"},"base":{"type":"string"},"behind_by":{"type":"integer","format":"int64"},"files":{"type":"array","items":{"$ref":"#/components/schemas/CompareFileDiff"}},"head":{"type":"string"},"merge_base":{"type":["string","null"]},"total_commits":{"type":"integer","format":"int64"}}},"ConfirmEmailChangeCmd":{"type":"object","required":["ticket_id"],"properties":{"ticket_id":{"type":"string","format":"uuid"}}},"ContentHistoryPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentHistoryView"}},"total":{"type":"integer","format":"int64"}}},"ContentHistoryView":{"type":"object","required":["id","issue_id","poster_id","edited_at","created_at"],"properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"content_after":{"type":["string","null"]},"content_before":{"type":["string","null"]},"created_at":{"type":"string"},"edited_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"poster_id":{"type":"string","format":"uuid"}}},"ContentsExtResponse":{"type":"object","required":["dir_contents"],"properties":{"dir_contents":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}},"file_contents":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ContentsResponse"}]}}},"ContentsListResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"ContentsQuery":{"type":"object","properties":{"ref":{"type":["string","null"]}}},"ContentsResponse":{"type":"object","required":["name","path","sha","type","size"],"properties":{"content":{"type":["string","null"]},"download_url":{"type":["string","null"]},"encoding":{"type":["string","null"]},"git_url":{"type":["string","null"]},"html_url":{"type":["string","null"]},"last_author_date":{"type":["string","null"]},"last_commit_message":{"type":["string","null"]},"last_commit_sha":{"type":["string","null"]},"last_committer_date":{"type":["string","null"]},"lfs_oid":{"type":["string","null"]},"lfs_size":{"type":["integer","null"],"format":"int64"},"links":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/FileLinksResponse"}]},"name":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"},"submodule_git_url":{"type":["string","null"]},"target":{"type":["string","null"]},"type":{"type":"string"},"url":{"type":["string","null"]}}},"CreateAccessKeyCmd":{"type":"object","required":["name","scope"],"properties":{"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"}}},"CreateAccessKeyResp":{"type":"object","required":["key","token"],"properties":{"key":{"$ref":"#/components/schemas/AccessKeyView"},"token":{"type":"string"}}},"CreateBanCmd":{"type":"object","required":["user_id"],"properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"CreateBranchOption":{"type":"object","required":["new_branch_name"],"properties":{"new_branch_name":{"type":"string"},"old_branch_name":{"type":["string","null"]},"old_ref_name":{"type":["string","null"]}}},"CreateBranchProtectionOption":{"type":"object","required":["branch_name"],"properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"rule_name":{"type":["string","null"]},"unprotected_file_patterns":{"type":["string","null"]}}},"CreateCollectionOption":{"type":"object","required":["space_id","name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"CreateCommentOption":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"}}},"CreateDependencyOption":{"type":"object","required":["dependency_id"],"properties":{"dependency_id":{"type":"string","format":"uuid"}}},"CreateDeployKeyOption":{"type":"object","required":["title","key"],"properties":{"key":{"type":"string"},"read_only":{"type":["boolean","null"]},"title":{"type":"string"}}},"CreateDocumentCmd":{"type":"object","required":["title","slug"],"properties":{"content":{"type":"string"},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"}}},"CreateFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}}]},"CreateInviteCmd":{"type":"object","required":["role_ids"],"properties":{"email":{"type":["string","null"]},"expires_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"user_id":{"type":["string","null"],"format":"uuid"}}},"CreateIssueOption":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":"string"}}},"CreateLabelOption":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"}}},"CreateMemberOption":{"type":"object","required":["user_id","kind"],"properties":{"kind":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"CreateMentionOption":{"type":"object","required":["is_everyone","is_here"],"properties":{"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"CreateMilestoneOption":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"name":{"type":"string"}}},"CreatePinOption":{"type":"object","required":["issue_id","pin_order"],"properties":{"issue_id":{"type":"string","format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"CreatePostBoardOption":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"}}},"CreatePostLabelOption":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"name":{"type":"string"}}},"CreatePostOption":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"title":{"type":"string"}}},"CreatePostReactionOption":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"CreateProjectCmd":{"type":"object","required":["space_id","name"],"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"},"target_date":{"type":["string","null"],"format":"date"}}},"CreatePullRequestCommentOption":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]}}},"CreatePullRequestOption":{"type":"object","required":["title","head","base"],"properties":{"base":{"type":"string"},"body":{"type":["string","null"]},"head":{"type":"string"},"title":{"type":"string"}}},"CreateReactionOption":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"CreateReleaseOption":{"type":"object","required":["tag_name","title"],"properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]},"title":{"type":"string"}}},"CreateReplyOption":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"parent_reply_id":{"type":["string","null"],"format":"uuid"}}},"CreateRepoOption":{"type":"object","required":["space_id","name"],"properties":{"auto_init":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"gitignores":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"issue_labels":{"type":["string","null"]},"license_name":{"type":["string","null"]},"name":{"type":"string"},"object_format":{"type":["string","null"]},"parent_dir":{"type":["string","null"],"format":"uuid"},"readme":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"CreateRepoRelOption":{"type":"object","required":["repo_id"],"properties":{"repo_id":{"type":"string","format":"uuid"}}},"CreateRoleCmd":{"type":"object","required":["name","permissions"],"properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"CreateSpaceCmd":{"type":"object","required":["name"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"public":{"type":"boolean"},"welcome_message":{"type":["string","null"]}}},"CreateStatusOption":{"type":"object","required":["state","context"],"properties":{"context":{"type":"string"},"description":{"type":["string","null"]},"state":{"type":"string"},"target_url":{"type":["string","null"]}}},"CreateTagOption":{"type":"object","required":["tag_name"],"properties":{"message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]}}},"CreateTagProtectionOption":{"type":"object","required":["name_pattern"],"properties":{"name_pattern":{"type":"string"},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"CreateViewCmd":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"sort_by":{"type":"string"}}},"DeleteFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["sha"],"properties":{"sha":{"type":"string"}}}]},"DeletionRequestView":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"DeletionStatus":{"type":"string","enum":["pending","scheduled","completed","cancelled"]},"DependencyView":{"type":"object","required":["id","issue_id","dependency_id","created_at"],"properties":{"created_at":{"type":"string"},"dependency_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"}}},"DeployKeyPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeployKeyView"}},"total":{"type":"integer","format":"int64"}}},"DeployKeyView":{"type":"object","required":["id","key_id","repo_id","title","key_type","fingerprint","content","url","read_only","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_id":{"type":"integer","format":"int64"},"key_type":{"type":"string"},"last_used_at":{"type":["string","null"]},"read_only":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"url":{"type":"string"}}},"DeviceView":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}},"DocumentPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DocumentView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"DocumentView":{"type":"object","required":["id","project_id","creator_id","title","slug","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"last_editor_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"EditBranchProtectionOption":{"type":"object","properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"unprotected_file_patterns":{"type":["string","null"]}}},"EditReleaseOption":{"type":"object","properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_name":{"type":["string","null"]},"target":{"type":["string","null"]},"title":{"type":["string","null"]}}},"EditTagProtectionOption":{"type":"object","properties":{"name_pattern":{"type":["string","null"]},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"EmailChangeTicketStatus":{"type":"string","enum":["pending","verified","completed","cancelled"]},"EmailChangeTicketView":{"type":"object","required":["id","new_email","status","expires_at","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"new_email":{"type":"string"},"status":{"$ref":"#/components/schemas/EmailChangeTicketStatus"},"used_at":{"type":["string","null"]}}},"EmailView":{"type":"object","required":["id","email","is_activated","is_primary","created_at","updated_at"],"properties":{"activated_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_activated":{"type":"boolean"},"is_primary":{"type":"boolean"},"updated_at":{"type":"string"}}},"ErrorBody":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"EventPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventView"}},"total":{"type":"integer","format":"int64"}}},"EventView":{"type":"object","required":["id","user_id","event_type","created_at"],"properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"new_ref":{"type":["string","null"]},"new_title":{"type":["string","null"]},"old_ref":{"type":["string","null"]},"old_title":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"ExternalTracker":{"type":"object","required":["external_tracker_url","external_tracker_format","external_tracker_style"],"properties":{"external_tracker_format":{"type":"string"},"external_tracker_style":{"type":"string"},"external_tracker_url":{"type":"string"}}},"ExternalWiki":{"type":"object","required":["external_wiki_url"],"properties":{"external_wiki_url":{"type":"string"}}},"FavoritePage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"FavoriteView":{"type":"object","required":["id","project_id","user_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"folder":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"FileDeleteResponse":{"type":"object","properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"content":{}}},"FileLinksResponse":{"type":"object","properties":{"git":{"type":["string","null"]},"html":{"type":["string","null"]},"self":{"type":["string","null"]}}},"FileOptions":{"type":"object","properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GitIdentity"}]},"branch":{"type":["string","null"]},"committer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GitIdentity"}]},"dates":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitDateOptions"}]},"force_push":{"type":["boolean","null"]},"message":{"type":["string","null"]},"new_branch":{"type":["string","null"]},"signoff":{"type":["boolean","null"]}}},"FilesResponse":{"type":"object","required":["files"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"FollowerSummary":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"ForgotPasswordCmd":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"ForgotPasswordResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"ForkRepoOption":{"type":"object","required":["to_channel_id"],"properties":{"description":{"type":["string","null"]},"name":{"type":["string","null"]},"to_channel_id":{"type":"string","format":"uuid"}}},"ForkView":{"type":"object","required":["id","name","full_name","owner","private","fork","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"fork":{"type":"boolean"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/UserMini"},"private":{"type":"boolean"},"updated_at":{"type":"string"}}},"ForksResponse":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ForkView"}},"total":{"type":"integer","format":"int64"}}},"GenerateRepoOption":{"type":"object","required":["to_channel_id","name"],"properties":{"description":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"name":{"type":"string"},"to_channel_id":{"type":"string","format":"uuid"}}},"GitIdentity":{"type":"object","required":["name","email"],"properties":{"date":{"type":["string","null"]},"email":{"type":"string"},"name":{"type":"string"}}},"GitRef":{"type":"object","required":["name","sha","type_"],"properties":{"name":{"type":"string"},"sha":{"type":"string"},"type_":{"type":"string"}}},"HealthStatus":{"type":"object","required":["status","service"],"properties":{"service":{"type":"string"},"status":{"type":"string"}}},"InternalTracker":{"type":"object","required":["enable_time_tracker","allow_only_contributors_to_track_time","enable_issue_dependencies"],"properties":{"allow_only_contributors_to_track_time":{"type":"boolean"},"enable_issue_dependencies":{"type":"boolean"},"enable_time_tracker":{"type":"boolean"}}},"IssueConfig":{"type":"object","required":["blank_issues_enabled"],"properties":{"blank_issues_enabled":{"type":"boolean"},"contact_links":{}}},"IssueConfigValidation":{"type":"object","required":["valid"],"properties":{"message":{"type":["string","null"]},"valid":{"type":"boolean"}}},"IssuePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/IssueView"}},"total":{"type":"integer","format":"int64"}}},"IssueState":{"type":"string","enum":["open","closed"]},"IssueTemplate":{"type":"object","required":["name","title","content","fields"],"properties":{"content":{"type":"string"},"description":{"type":["string","null"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/IssueTemplateField"}},"name":{"type":"string"},"title":{"type":"string"}}},"IssueTemplateField":{"type":"object","required":["type_","id","name"],"properties":{"description":{"type":["string","null"]},"id":{"type":"string"},"name":{"type":"string"},"required":{"type":["boolean","null"]},"type_":{"type":"string"},"validations":{}}},"IssueUserView":{"type":"object","required":["id","user_id","issue_id","is_read","is_mentioned","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_mentioned":{"type":"boolean"},"is_read":{"type":"boolean"},"issue_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"IssueView":{"type":"object","required":["id","collection_id","autoincrement_id","author_id","title","body","state","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"autoincrement_id":{"type":"integer","format":"int32"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"milestone_id":{"type":["string","null"],"format":"uuid"},"state":{"$ref":"#/components/schemas/IssueState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"LabelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LabelView"}},"total":{"type":"integer","format":"int64"}}},"LabelView":{"type":"object","required":["id","channel_id","name","exclusive","exclusive_order","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":"boolean"},"exclusive_order":{"type":"integer","format":"int32"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"LanguagesResponse":{"type":"object","required":["languages"],"properties":{"languages":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}}}},"LicensesResponse":{"type":"object","required":["licenses"],"properties":{"licenses":{"type":"array","items":{"type":"string"}}}},"LinkKind":{"type":"string","enum":["related","duplicate","blocks","blocked_by"]},"LinkPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LinkView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"LinkView":{"type":"object","required":["id","project_id","related_project_id","kind","created_by","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/LinkKind"},"project_id":{"type":"string","format":"uuid"},"related_project_id":{"type":"string","format":"uuid"}}},"ListActivityQuery":{"type":"object","properties":{"page":{"type":"integer","format":"int64","minimum":0},"per_page":{"type":"integer","format":"int64","minimum":0},"verb":{"type":["string","null"]}}},"ListAttachmentQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListBlocksQuery":{"type":"object","properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0}}},"ListBranchProtectionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListBranchQuery":{"type":"object","properties":{"keyword":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListCollaboratorQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListCollectionQuery":{"type":"object","properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListCommentQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"parent_id":{"type":["string","null"],"format":"uuid"}}},"ListContentHistoryQuery":{"type":"object","properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListDeployKeyQuery":{"type":"object","properties":{"fingerprint":{"type":["string","null"]},"key_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListEventQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListFollowersQuery":{"type":"object","required":["target_uid"],"properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"target_uid":{"type":"string","format":"uuid"}}},"ListFollowingQuery":{"type":"object","required":["user_uid"],"properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"user_uid":{"type":"string","format":"uuid"}}},"ListIssueQuery":{"type":"object","properties":{"author_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"milestone_id":{"type":["string","null"],"format":"uuid"},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IssueState"}]}}},"ListLabelQuery":{"type":"object","properties":{"is_archived":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListMemberQuery":{"type":"object","properties":{"kind":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListMilestoneQuery":{"type":"object","properties":{"is_closed":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListNotificationsQuery":{"type":"object","properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"notification_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NotificationType"}]},"unread_only":{"type":["boolean","null"]}}},"ListPostQuery":{"type":"object","properties":{"author_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]}}},"ListProjectQuery":{"type":"object","required":["space_id"],"properties":{"lead_id":{"type":["string","null"],"format":"uuid"},"page":{"type":"integer","format":"int64","minimum":0},"per_page":{"type":"integer","format":"int64","minimum":0},"q":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"starred_only":{"type":["boolean","null"]},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]}}},"ListPullRequestQuery":{"type":"object","properties":{"keyword":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"state":{"type":["string","null"]}}},"ListReactionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListReleaseQuery":{"type":"object","properties":{"draft":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"prerelease":{"type":["boolean","null"]}}},"ListRepoQuery":{"type":"object","properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"is_archived":{"type":["boolean","null"]},"is_private":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"owner_user_id":{"type":["string","null"],"format":"uuid"},"q":{"type":["string","null"]}}},"ListSessionsQuery":{"type":"object","properties":{"app_id":{"type":["string","null"]},"include_revoked":{"type":"boolean"}}},"ListStatusQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"sort":{"type":["string","null"]},"state":{"type":["string","null"]}}},"ListSubscriberQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTagProtectionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTagQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTrackedTimeQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"user_id":{"type":["string","null"],"format":"uuid"}}},"LoginCmd":{"type":"object","required":["identifier","password","pow"],"properties":{"app_id":{"type":["string","null"]},"identifier":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"LoginResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"LogoutCmd":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string"}}},"LogoutResp":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"boolean"}}},"MarkAllReadResp":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"MarkReadCmd":{"type":"object","required":["notification_ids"],"properties":{"notification_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"MarkReadResp":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"MemberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MemberView"}},"total":{"type":"integer","format":"int64"}}},"MemberRole":{"type":"string","enum":["owner","lead","contributor","viewer"]},"MemberView":{"type":"object","required":["id","issue_id","user_id","kind","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"MemeView":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"MergePullRequestOption":{"type":"object","required":["style"],"properties":{"commit_message":{"type":["string","null"]},"commit_title":{"type":["string","null"]},"delete_branch_after_merge":{"type":"boolean"},"style":{"$ref":"#/components/schemas/MergeStyle"}}},"MergeStyle":{"type":"string","enum":["fast_forward","rebase","rebase_merge","squash","merge","manually_merged"]},"MergeUpstreamRequest":{"type":"object","required":["branch"],"properties":{"branch":{"type":"string"},"ff_only":{"type":["boolean","null"]}}},"MergeUpstreamResponse":{"type":"object","required":["merge_type"],"properties":{"merge_type":{"type":"string"}}},"MergeView":{"type":"object","required":["sha","merged"],"properties":{"merged":{"type":"boolean"},"message":{"type":["string","null"]},"sha":{"type":"string"}}},"MessageNotifications":{"type":"string","enum":["all","mentions","nothing"]},"MilestonePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneView"}},"total":{"type":"integer","format":"int64"}}},"MilestoneView":{"type":"object","required":["id","collection_id","name","is_closed","num_issues","num_closed_issues","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_closed":{"type":"boolean"},"name":{"type":"string"},"num_closed_issues":{"type":"integer","format":"int32"},"num_issues":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"]}}},"NewPinAllowedResponse":{"type":"object","required":["allowed"],"properties":{"allowed":{"type":"boolean"}}},"NoteView":{"type":"object","required":["sha","message"],"properties":{"message":{"type":"string"},"sha":{"type":"string"}}},"NotificationType":{"type":"string","enum":["mention","reply","follow","invite","assignment","system"]},"NotificationView":{"type":"object","required":["id","notification_type","title","created_at"],"properties":{"actor_uid":{"type":["string","null"],"format":"uuid"},"body":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"notification_type":{"$ref":"#/components/schemas/NotificationType"},"read_at":{"type":["string","null"]},"title":{"type":"string"}}},"OAuthLoginResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user_id","auto_registered"],"properties":{"access_token":{"type":"string"},"auto_registered":{"type":"boolean"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user_id":{"type":"string"}}},"OAuthProvider":{"type":"string","enum":["google","github","apple"]},"OAuthProviderInfo":{"type":"object","required":["name","display_name","authorize_url"],"properties":{"authorize_url":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"}}},"Permission":{"type":"object","required":["admin","push","pull"],"properties":{"admin":{"type":"boolean"},"pull":{"type":"boolean"},"push":{"type":"boolean"}}},"PinView":{"type":"object","required":["id","collection_id","pin_order","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"PostBoardPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostBoardView"}},"total":{"type":"integer","format":"int64"}}},"PostBoardView":{"type":"object","description":"A post board (collection) hosting posts for a space.","required":["id","channel_id","name","nums_open_post","nums_closed_post","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_post":{"type":"integer","format":"int64"},"nums_open_post":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"PostLabelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostLabelView"}},"total":{"type":"integer","format":"int64"}}},"PostLabelView":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PostMentionView":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"PostPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostView"}},"total":{"type":"integer","format":"int64"}}},"PostReactionView":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"PostReplyPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostReplyView"}},"total":{"type":"integer","format":"int64"}}},"PostReplyView":{"type":"object","required":["id","post_id","author_id","body","is_pinned","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"deleted_by":{"type":["string","null"],"format":"uuid"},"edited_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"parent_reply_id":{"type":["string","null"],"format":"uuid"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"PostStatusView":{"type":"string","enum":["open","closed","archived","locked"]},"PostTargetView":{"type":"string","enum":["post","reply"]},"PostView":{"type":"object","description":"A single post (thread).","required":["id","collection_id","number","author_id","title","body","status","is_pinned","reply_count","created_at"],"properties":{"archived_at":{"type":["string","null"]},"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"last_reply_at":{"type":["string","null"]},"last_reply_by":{"type":["string","null"],"format":"uuid"},"number":{"type":"integer","format":"int64"},"reply_count":{"type":"integer","format":"int32"},"status":{"$ref":"#/components/schemas/PostStatusView"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PostWatchView":{"type":"object","required":["id","post_id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PowChallengeResp":{"type":"object","required":["challenge","ttl_seconds"],"properties":{"challenge":{"type":"string"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0}}},"PowProof":{"type":"object","required":["challenge","solution"],"properties":{"challenge":{"type":"string"},"solution":{"type":"string"}}},"PrState":{"type":"string","enum":["open","closed","merged"]},"ProfileView":{"type":"object","required":["user_id","show_email","show_location","show_real_name","show_activity","updated_at"],"properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":"boolean"},"show_email":{"type":"boolean"},"show_location":{"type":"boolean"},"show_real_name":{"type":"boolean"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"},"website":{"type":["string","null"]}}},"ProfileVisibility":{"type":"string","enum":["public","registered_only","members_only","private"]},"ProjectHealth":{"type":"string","enum":["on_track","at_risk","off_track","none"]},"ProjectPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ProjectState":{"type":"string","enum":["backlog","planned","in_progress","paused","completed","cancelled"]},"ProjectView":{"type":"object","required":["id","space_id","creator_id","name","state","health","sort_order","starred","created_at"],"properties":{"cancelled_at":{"type":["string","null"],"format":"date-time"},"color":{"type":["string","null"]},"completed_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"health":{"$ref":"#/components/schemas/ProjectHealth"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"space_id":{"type":"string","format":"uuid"},"starred":{"type":"integer","format":"int32"},"started_at":{"type":["string","null"],"format":"date-time"},"state":{"$ref":"#/components/schemas/ProjectState"},"target_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"PublisherSummary":{"type":"object","required":["id","name","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"},"name":{"type":"string"}}},"PullRequestCommentView":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PullRequestEventView":{"type":"object","required":["id","pull_request_id","user_id","event_type","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"pull_request_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"PullRequestPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PullRequestView"}},"total":{"type":"integer","format":"int64"}}},"PullRequestReviewView":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PullRequestView":{"type":"object","required":["id","repo_id","number","title","head_branch","base_branch","author_id","state","is_locked","has_merged","created_at","comments_count","reviews_count"],"properties":{"author_id":{"type":"string","format":"uuid"},"base_branch":{"type":"string"},"base_sha":{"type":["string","null"]},"body":{"type":["string","null"]},"closed_at":{"type":["string","null"]},"comments_count":{"type":"integer","format":"int64"},"created_at":{"type":"string"},"has_merged":{"type":"boolean"},"head_branch":{"type":"string"},"head_sha":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_locked":{"type":"boolean"},"mergeable":{"type":["boolean","null"]},"mergeable_state":{"type":["string","null"]},"merged_at":{"type":["string","null"]},"merged_commit_sha":{"type":["string","null"]},"merger_id":{"type":["string","null"]},"number":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"reviews_count":{"type":"integer","format":"int64"},"state":{"$ref":"#/components/schemas/PrState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PushPlatform":{"type":"string","enum":["web_push","android_fcm","ios_apns"]},"PushSubscriptionView":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"ReactionAggView":{"type":"object","required":["emoji","count","user_ids"],"properties":{"count":{"type":"integer","format":"int64"},"emoji":{"type":"string"},"user_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"ReactionScope":{"type":"string","enum":["issue","comment"]},"ReactionView":{"type":"object","required":["id","scope","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"scope":{"$ref":"#/components/schemas/ReactionScope"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"RecentMentionView":{"type":"object","required":["id","channel_id","message_id","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"ReclaimCmd":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"ReclaimResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"RecoveryCodeView":{"type":"object","required":["id","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"used_at":{"type":["string","null"]}}},"RefreshCmd":{"type":"object","required":["refresh_token"],"properties":{"app_id":{"type":["string","null"]},"refresh_token":{"type":"string"}}},"RefreshResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"}}},"RegenerateRecoveryResp":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","items":{"type":"string"}}}},"RegisterCmd":{"type":"object","required":["email","password","pow"],"properties":{"accept_agreements":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"username":{"type":["string","null"]}}},"RegisterResp":{"type":"object","required":["uid","pending","temp_key","purpose"],"properties":{"pending":{"type":"boolean"},"purpose":{"type":"string"},"temp_key":{"$ref":"#/components/schemas/TempKey"},"uid":{"type":"string"}}},"ReleaseAttachment":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"ReleaseAttachmentListResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachmentView"}}}},"ReleaseAttachmentView":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"ReleasePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseView"}},"total":{"type":"integer","format":"int64"}}},"ReleaseView":{"type":"object","required":["id","repo_id","tag_name","target","title","sha","num_commits","is_draft","is_prerelease","is_tag","url","html_url","tarball_url","zipball_url","upload_url","publisher","attachments","created_at","updated_at"],"properties":{"attachments":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachment"}},"content":{"type":["string","null"]},"created_at":{"type":"string"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_draft":{"type":"boolean"},"is_prerelease":{"type":"boolean"},"is_tag":{"type":"boolean"},"num_commits":{"type":"integer","format":"int32"},"publisher":{"$ref":"#/components/schemas/UserSummary"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"tag_name":{"type":"string"},"tarball_url":{"type":"string"},"target":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upload_url":{"type":"string"},"url":{"type":"string"},"zipball_url":{"type":"string"}}},"RenameBranchOption":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"RenameRepoOption":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"RepoCollaboratorPermission":{"type":"object","required":["permission","role","user"],"properties":{"permission":{"type":"string"},"role":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"}}},"RepoPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RepoView"}},"total":{"type":"integer","format":"int64"}}},"RepoRelView":{"type":"object","required":["id","issue_id","repo_id","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"}}},"RepoSummary":{"type":"object","required":["id","name","full_name","empty","private","fork","template","mirror","size","stars_count","forks_count","watchers_count","open_issues_count"],"properties":{"description":{"type":["string","null"]},"empty":{"type":"boolean"},"fork":{"type":"boolean"},"forks_count":{"type":"integer","format":"int32"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"mirror":{"type":"boolean"},"name":{"type":"string"},"open_issues_count":{"type":"integer","format":"int32"},"private":{"type":"boolean"},"size":{"type":"integer","format":"int64"},"stars_count":{"type":"integer","format":"int32"},"template":{"type":"boolean"},"watchers_count":{"type":"integer","format":"int32"}}},"RepoTopicOptions":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"RepoView":{"type":"object","required":["id","channel_id","space_id","name","lower_name","full_name","default_branch","enable_lfs","is_private","is_archived","is_fork","is_template","is_mirror","empty","size","git_size","lfs_size","nums_watch","nums_star","nums_pr","nums_commits","nums_branches","nums_tags","allow_rebase","allow_rebase_explicit","allow_squash_merge","allow_merge_commits","allow_fast_forward_only_merge","allow_rebase_update","allow_merge_update","allow_manual_merge","autodetect_manual_merge","default_delete_branch_after_merge","default_allow_maintainer_edit","ignore_whitespace_conflicts","object_format","has_code","has_issues","has_wiki","has_pull_requests","has_projects","has_releases","has_packages","has_actions","projects_mode","languages","licenses","topics","html_url","url","link","ssh_url","clone_url","created_at","updated_at"],"properties":{"allow_fast_forward_only_merge":{"type":"boolean"},"allow_manual_merge":{"type":"boolean"},"allow_merge_commits":{"type":"boolean"},"allow_merge_update":{"type":"boolean"},"allow_rebase":{"type":"boolean"},"allow_rebase_explicit":{"type":"boolean"},"allow_rebase_update":{"type":"boolean"},"allow_squash_merge":{"type":"boolean"},"archived_at":{"type":["string","null"]},"autodetect_manual_merge":{"type":"boolean"},"avatar_url":{"type":["string","null"]},"channel":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ChannelSummary"}]},"channel_id":{"type":"string","format":"uuid"},"clone_url":{"type":"string"},"created_at":{"type":"string"},"default_allow_maintainer_edit":{"type":"boolean"},"default_branch":{"type":"string"},"default_delete_branch_after_merge":{"type":"boolean"},"description":{"type":["string","null"]},"empty":{"type":"boolean"},"enable_lfs":{"type":"boolean"},"full_name":{"type":"string"},"git_size":{"type":"integer","format":"int64"},"has_actions":{"type":"boolean"},"has_code":{"type":"boolean"},"has_issues":{"type":"boolean"},"has_packages":{"type":"boolean"},"has_projects":{"type":"boolean"},"has_pull_requests":{"type":"boolean"},"has_releases":{"type":"boolean"},"has_wiki":{"type":"boolean"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"ignore_whitespace_conflicts":{"type":"boolean"},"is_archived":{"type":"boolean"},"is_fork":{"type":"boolean"},"is_mirror":{"type":"boolean"},"is_private":{"type":"boolean"},"is_template":{"type":"boolean"},"languages":{"type":"array","items":{"type":"string"}},"last_pushed_at":{"type":["string","null"]},"lfs_size":{"type":"integer","format":"int64"},"license_name":{"type":["string","null"]},"licenses":{"type":"array","items":{"type":"string"}},"link":{"type":"string"},"lower_name":{"type":"string"},"name":{"type":"string"},"nums_branches":{"type":"integer","format":"int32"},"nums_commits":{"type":"integer","format":"int32"},"nums_pr":{"type":"integer","format":"int32"},"nums_star":{"type":"integer","format":"int32"},"nums_tags":{"type":"integer","format":"int32"},"nums_watch":{"type":"integer","format":"int32"},"object_format":{"type":"string"},"parent":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RepoView"}]},"primary_language":{"type":["string","null"]},"projects_mode":{"type":"string"},"size":{"type":"integer","format":"int64"},"space":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceSummary"}]},"space_id":{"type":"string","format":"uuid"},"ssh_url":{"type":"string"},"storage_limit_size":{"type":["integer","null"],"format":"int64"},"topics":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"url":{"type":"string"},"website":{"type":["string","null"]}}},"ReportStatus":{"type":"string","enum":["open","under_review","resolved","dismissed"]},"ReportView":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}},"RequestChangeBody":{"type":"object","required":["new_email"],"properties":{"new_email":{"type":"string"}}},"RequestDeletionCmd":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"ResendCodeCmd":{"type":"object","required":["email","pow","purpose"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"purpose":{"type":"string"}}},"ResendCodeResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"ResetPasswordCmd":{"type":"object","required":["email","token","new_password","temp_key_value"],"properties":{"email":{"type":"string"},"new_password":{"type":"string"},"temp_key_value":{"type":"string"},"token":{"type":"string"}}},"ResetPasswordResp":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}}},"ReviewState":{"type":"string","enum":["approved","changes_requested","commented"]},"RevokeAllResp":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"integer","format":"int64","minimum":0}}},"RevokeSuspensionCmd":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"RoleOverwriteView":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"RolePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RoleView"}},"total":{"type":"integer","format":"int64"}}},"RoleView":{"type":"object","required":["id","space_id","name","position","color","version","created_at","created_by","permissions"],"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon_hash":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":"integer","format":"int64"},"space_id":{"type":"string","format":"uuid"},"unicode_emoji":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"version":{"type":"integer","format":"int32"}}},"SaveMessageCmd":{"type":"object","required":["channel_id","message_id"],"properties":{"channel_id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"SavedMessageView":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}},"ScheduledMessageStatus":{"type":"string","enum":["pending","sent","cancelled"]},"ScheduledMessageView":{"type":"object","required":["id","target_channel_id","payload","scheduled_at","status","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"payload":{"type":"string"},"scheduled_at":{"type":"string"},"status":{"$ref":"#/components/schemas/ScheduledMessageStatus"},"target_channel_id":{"type":"string","format":"uuid"}}},"SearchResults":{"type":"object","required":["data","ok"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RepoSummary"}},"ok":{"type":"boolean"}}},"SessionKind":{"type":"string","enum":["web_login","bearer_access"]},"SessionView":{"type":"object","required":["id","kind","is_revoked","created_at","expires_at"],"properties":{"app_id":{"type":["string","null"]},"client_ip_hash":{"type":["string","null"]},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_revoked":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/SessionKind"},"replaced_at":{"type":["string","null"]},"user_agent_hash":{"type":["string","null"]}}},"SetPrimaryEmailResp":{"type":"object","required":["email"],"properties":{"email":{"$ref":"#/components/schemas/EmailView"}}},"SetRoleOverwriteCmd":{"type":"object","required":["role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"role_id":{"type":"string","format":"uuid"}}},"SetUserOverwriteCmd":{"type":"object","required":["user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"SpaceAllowJoinLevel":{"type":"string","enum":["none","need_mail_active","need_mail_active_and_last_one_mid","need_mail_active_and_last_one_hours","need_mail_active_and_phone_active"]},"SpaceBanPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceBanView"}},"total":{"type":"integer","format":"int64"}}},"SpaceBanView":{"type":"object","required":["space_id","user_id","banned_by","created_at","updated_at","allow_agent_join","allow_speak","allow_push_repo","allow_comment_any"],"properties":{"allow_agent_join":{"type":"boolean"},"allow_comment_any":{"type":"boolean"},"allow_push_repo":{"type":"boolean"},"allow_speak":{"type":"boolean"},"banned_by":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"SpaceInvitePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceInviteView"}},"total":{"type":"integer","format":"int64"}}},"SpaceInviteView":{"type":"object","required":["id","space_id","user_id","email","role_ids","created_at"],"properties":{"accepted_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"revoked_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"space_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"SpaceMemberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceMemberView"}},"total":{"type":"integer","format":"int64"}}},"SpaceMemberStatus":{"type":"string","enum":["active","inactive","left","removed"]},"SpaceMemberView":{"type":"object","required":["space_id","user_id","status","joined_at","created_at","message_notifications","muted","mobile_push","suppress_everyone","suppress_roles","hide_muted_channels"],"properties":{"alias_avatar_url":{"type":["string","null"]},"alias_name":{"type":["string","null"]},"created_at":{"type":"string"},"hide_muted_channels":{"type":"boolean"},"invited_at":{"type":["string","null"]},"invited_by":{"type":["string","null"],"format":"uuid"},"joined_at":{"type":"string"},"last_active_at":{"type":["string","null"]},"left_at":{"type":["string","null"]},"message_notifications":{"$ref":"#/components/schemas/MessageNotifications"},"mobile_push":{"type":"boolean"},"mute_until":{"type":["string","null"]},"muted":{"type":"boolean"},"space_id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SpaceMemberStatus"},"suppress_everyone":{"type":"boolean"},"suppress_roles":{"type":"boolean"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"SpacePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceView"}},"total":{"type":"integer","format":"int64"}}},"SpaceSummary":{"type":"object","required":["id","name"],"properties":{"display_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"SpaceView":{"type":"object","required":["id","name","owner_id","public","is_active","allow_join","allow_invite","member_count","allow_join_level","member_must_enable_2fa","created_at","updated_at"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"$ref":"#/components/schemas/SpaceAllowJoinLevel"},"avatar_url":{"type":["string","null"]},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_active":{"type":"boolean"},"member_count":{"type":"integer","format":"int64"},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"owner_id":{"type":"string","format":"uuid"},"public":{"type":"boolean"},"updated_at":{"type":"string"},"welcome_message":{"type":["string","null"]}}},"SshKeyType":{"type":"string","enum":["ssh_rsa","ssh_ed25519","ecdsa_sha2_nistp256"]},"SshKeyView":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}},"StopwatchView":{"type":"object","required":["id","issue_id","user_id","started_at","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"started_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"SubmitPullRequestReviewOption":{"type":"object","required":["state"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"state":{"$ref":"#/components/schemas/ReviewState"}}},"SubmitReportCmd":{"type":"object","required":["reported_uid","reason"],"properties":{"evidence":{"type":["string","null"]},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"}}},"SubscriberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SubscriberView"}},"total":{"type":"integer","format":"int64"}}},"SubscriberView":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"Subscription":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"SuspendCmd":{"type":"object","required":["suspension_type"],"properties":{"ends_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"}}},"SuspensionType":{"type":"string","enum":["temporary","permanent"]},"SuspensionView":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}},"SyncResult":{"type":"object","required":["repo_id","branches_added","tags_added","commits_added","size_bytes"],"properties":{"branches_added":{"type":"integer","format":"int64"},"commits_added":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"size_bytes":{"type":"integer","format":"int64"},"tags_added":{"type":"integer","format":"int64"}}},"SyncStatus":{"type":"object","required":["repo_id","branches_total","tags_total","commits_total","size","synced_at"],"properties":{"branches_total":{"type":"integer","format":"int64"},"commits_total":{"type":"integer","format":"int64"},"last_pushed_at":{"type":["string","null"]},"primary_language":{"type":["string","null"]},"repo_id":{"type":"string","format":"uuid"},"size":{"type":"integer","format":"int64"},"synced_at":{"type":"string"},"tags_total":{"type":"integer","format":"int64"}}},"TagPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagView"}},"total":{"type":"integer","format":"int64"}}},"TagProtectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagProtectionView"}},"total":{"type":"integer","format":"int64"}}},"TagProtectionView":{"type":"object","required":["id","repo_id","name_pattern","whitelist_usernames","whitelist_teams","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name_pattern":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"whitelist_teams":{"type":"array","items":{"type":"string"}},"whitelist_usernames":{"type":"array","items":{"type":"string"}}}},"TagView":{"type":"object","required":["id","repo_id","name","tag_type","commit_sha","commit","message","zipball_url","tarball_url","created_at"],"properties":{"commit":{"$ref":"#/components/schemas/CommitMeta"},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message":{"type":"string"},"name":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"tag_type":{"type":"string"},"tarball_url":{"type":"string"},"zipball_url":{"type":"string"}}},"TempKey":{"type":"object","required":["name","value","ttl_seconds","secure","http_only","same_site"],"properties":{"domain":{"type":["string","null"]},"http_only":{"type":"boolean"},"name":{"type":"string"},"path":{"type":["string","null"]},"same_site":{"type":"string"},"secure":{"type":"boolean"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0},"value":{"type":"string"}}},"TopicList":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"TopicSearchQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"TopicSearchResult":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicView"}}}},"TopicView":{"type":"object","required":["id","name","repo_count","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"repo_count":{"type":"integer","format":"int32"},"updated_at":{"type":"string"}}},"TrackedTimePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TrackedTimeView"}},"total":{"type":"integer","format":"int64"}}},"TrackedTimeView":{"type":"object","required":["id","issue_id","user_id","seconds","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"seconds":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"TransferRepoOption":{"type":"object","required":["new_channel_id"],"properties":{"new_channel_id":{"type":"string","format":"uuid"},"new_name":{"type":["string","null"]}}},"TreeEntryView":{"type":"object","required":["path","mode","type_","sha"],"properties":{"mode":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":["integer","null"],"format":"int64"},"type_":{"type":"string"}}},"TreeView":{"type":"object","required":["sha","entries"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/TreeEntryView"}},"sha":{"type":"string"}}},"UnassignRoleCmd":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"UnreadCountResp":{"type":"object","required":["count"],"properties":{"count":{"type":"integer","format":"int64"}}},"UpdateAvatarOption":{"type":"object","required":["image"],"properties":{"image":{"type":"string"}}},"UpdateBanCmd":{"type":"object","properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]}}},"UpdateBranchOption":{"type":"object","required":["new_commit_id"],"properties":{"force":{"type":["boolean","null"]},"new_commit_id":{"type":"string"},"old_commit_id":{"type":["string","null"]}}},"UpdateBranchProtectionPriorities":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"UpdateCollectionOption":{"type":"object","properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":["string","null"]}}},"UpdateCommentOption":{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}},"UpdateDeviceCmd":{"type":"object","properties":{"device_name":{"type":["string","null"]},"is_trusted":{"type":["boolean","null"]}}},"UpdateDocumentCmd":{"type":"object","properties":{"content":{"type":["string","null"]},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":["string","null"]},"title":{"type":["string","null"]}}},"UpdateFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"from_path":{"type":["string","null"]},"sha":{"type":["string","null"]}}}]},"UpdateIssueOption":{"type":"object","properties":{"body":{"type":["string","null"]},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":["string","null"]}}},"UpdateIssueUserOption":{"type":"object","properties":{"is_mentioned":{"type":["boolean","null"]},"is_read":{"type":["boolean","null"]}}},"UpdateLabelOption":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdateMemberCmd":{"type":"object","required":["role"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"}}},"UpdateMilestoneOption":{"type":"object","properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"is_closed":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdatePostLabelOption":{"type":"object","properties":{"color":{"type":["string","null"]},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdatePostOption":{"type":"object","properties":{"body":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]},"title":{"type":["string","null"]}}},"UpdatePreferencesCmd":{"type":"object","properties":{"allow_dms_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"allow_mentions_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":["boolean","null"]},"email_flags":{"type":["integer","null"],"format":"int32"},"in_app_flags":{"type":["integer","null"],"format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":["integer","null"],"format":"int32"},"show_online_status":{"type":["boolean","null"]},"theme_mode":{"type":["string","null"]},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"}}},"UpdateProfileCmd":{"type":"object","properties":{"avatar":{"type":["string","null"]},"display_name":{"type":["string","null"]},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"profile":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UpdateProfileFields"}]},"timezone":{"type":["string","null"]},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]}}},"UpdateProfileFields":{"type":"object","properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":["boolean","null"]},"show_email":{"type":["boolean","null"]},"show_location":{"type":["boolean","null"]},"show_real_name":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"UpdateProjectCmd":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"health":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectHealth"}]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":["string","null"]},"sort_order":{"type":["integer","null"],"format":"int32"},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]},"target_date":{"type":["string","null"],"format":"date"}}},"UpdatePullRequestOption":{"type":"object","properties":{"base":{"type":["string","null"]},"body":{"type":["string","null"]},"head":{"type":["string","null"]},"title":{"type":["string","null"]}}},"UpdateRepoOption":{"type":"object","properties":{"allow_fast_forward_only_merge":{"type":["boolean","null"]},"allow_manual_merge":{"type":["boolean","null"]},"allow_merge_commits":{"type":["boolean","null"]},"allow_merge_update":{"type":["boolean","null"]},"allow_rebase":{"type":["boolean","null"]},"allow_rebase_explicit":{"type":["boolean","null"]},"allow_rebase_update":{"type":["boolean","null"]},"allow_squash_merge":{"type":["boolean","null"]},"archived":{"type":["boolean","null"]},"autodetect_manual_merge":{"type":["boolean","null"]},"default_allow_maintainer_edit":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"default_delete_branch_after_merge":{"type":["boolean","null"]},"default_merge_style":{"type":["string","null"]},"default_update_style":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"external_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalTracker"}]},"external_wiki":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalWiki"}]},"has_actions":{"type":["boolean","null"]},"has_code":{"type":["boolean","null"]},"has_issues":{"type":["boolean","null"]},"has_packages":{"type":["boolean","null"]},"has_projects":{"type":["boolean","null"]},"has_pull_requests":{"type":["boolean","null"]},"has_releases":{"type":["boolean","null"]},"has_wiki":{"type":["boolean","null"]},"ignore_whitespace_conflicts":{"type":["boolean","null"]},"internal_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InternalTracker"}]},"is_private":{"type":["boolean","null"]},"license_name":{"type":["string","null"]},"name":{"type":["string","null"]},"projects_mode":{"type":["string","null"]},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"UpdateReportCmd":{"type":"object","required":["status"],"properties":{"resolution_note":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/ReportStatus"}}},"UpdateRoleCmd":{"type":"object","properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":["string","null"]},"permissions":{"type":["array","null"],"items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"UpdateSpaceCmd":{"type":"object","properties":{"allow_invite":{"type":["boolean","null"]},"allow_join":{"type":["boolean","null"]},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":["boolean","null"]},"name":{"type":["string","null"]},"public":{"type":["boolean","null"]},"welcome_message":{"type":["string","null"]}}},"UpdateViewCmd":{"type":"object","properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":["boolean","null"]},"layout":{"type":["string","null"]},"name":{"type":["string","null"]},"sort_by":{"type":["string","null"]}}},"UploadAttachmentInput":{"type":"object","required":["filename","content_type","data"],"properties":{"content_type":{"type":"string"},"data":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"filename":{"type":"string"}}},"UploadAvatarCmd":{"type":"object","required":["content_type","data_base64"],"properties":{"content_type":{"type":"string"},"data_base64":{"type":"string"}}},"UpsertMemeCmd":{"type":"object","required":["name","content_type","url","size"],"properties":{"content_type":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"UpsertPostWatchOption":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"UpsertPushCmd":{"type":"object","required":["endpoint","p256dh_key","auth_key","platform"],"properties":{"auth_key":{"type":"string"},"endpoint":{"type":"string"},"p256dh_key":{"type":"string"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"UpsertWatchOption":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"UserMe":{"type":"object","required":["uid","username","display_name","avatar","is_active","is_admin","is_restricted"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"is_active":{"type":"boolean"},"is_admin":{"type":"boolean"},"is_restricted":{"type":"boolean"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"UserMini":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}},"UserOverwriteView":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"UserPreferences":{"type":"object","required":["user_id","theme_mode","in_app_flags","email_flags","push_flags","email_digest","allow_dms_from","allow_mentions_from","show_online_status","created_at","updated_at"],"properties":{"allow_dms_from":{"$ref":"#/components/schemas/Audience"},"allow_mentions_from":{"$ref":"#/components/schemas/Audience"},"created_at":{"type":"string"},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":"boolean"},"email_flags":{"type":"integer","format":"int32"},"in_app_flags":{"type":"integer","format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":"integer","format":"int32"},"show_online_status":{"type":"boolean"},"theme_mode":{"type":"string"},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"UserPublic":{"type":"object","required":["uid","username","display_name","avatar"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"UserSummary":{"type":"object","required":["id","name","login"],"properties":{"email":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"},"name":{"type":"string"}}},"VerifyCodeCmd":{"type":"object","required":["email","purpose","code","temp_key_value"],"properties":{"code":{"type":"string"},"email":{"type":"string"},"purpose":{"type":"string"},"temp_key_value":{"type":"string"},"user_id":{"type":["string","null"]}}},"VerifyCodeResult":{"type":"object","required":["code_row_id"],"properties":{"code_row_id":{"type":"string"}}},"ViewPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ViewView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ViewView":{"type":"object","required":["id","project_id","creator_id","name","filter","sort_by","layout","is_shared","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"sort_by":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"WatchView":{"type":"object","required":["id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"mode":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}}},"tags":[{"name":"auth","description":"Authentication endpoints"},{"name":"issues","description":"Issue tracking (lib/issues)"},{"name":"posts","description":"Post discussion (lib/post)"},{"name":"project","description":"Project lifecycle, members, views, documents, links, favorites, activities."},{"name":"repo","description":"Repository service (lib/repo)"},{"name":"space","description":"Space, membership, roles, invites, bans, channels, channel members and overwrite endpoints."},{"name":"user","description":"User profile, account, sessions and notifications endpoints."}]}
No newline at end of file
1{"openapi":"3.1.0","info":{"title":"Untitled API","description":"Unified HTTP API for the untitled platform","license":{"name":""},"version":"1.94.0"},"paths":{"/api/v1/auth/agreements":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"List of agreement documents (terms, privacy).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_AgreementDoc"}}}}}}},"/api/v1/auth/agreements/accept":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AcceptAgreementCmd"}}},"required":true},"responses":{"200":{"description":"Agreement acceptance recorded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AcceptAgreementResp"}}}},"400":{"description":"Unknown agreement key or version mismatch.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/auth/email/reclaim":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ReclaimCmd"}}},"required":true},"responses":{"200":{"description":"A Signup verification code was issued to the mailbox if the account is inactive; otherwise a constant-shaped no-op is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReclaimResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/email/resend":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ResendCodeCmd"}}},"required":true},"responses":{"200":{"description":"New code issued (or silently no-op if the email is unknown).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ResendCodeResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/email/verify":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_VerifyCodeCmd"}}},"required":true},"responses":{"200":{"description":"Code verified; the verification-code row id is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_VerifyCodeResult"}}}},"400":{"description":"Invalid code, missing temp_key cookie, or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_LoginCmd"}}},"required":true},"responses":{"200":{"description":"Authenticated. Returns access/refresh tokens and a public user view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LoginResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Invalid credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"Account forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_LogoutCmd"}}},"required":true},"responses":{"200":{"description":"Refresh token revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LogoutResp"}}}},"401":{"description":"Invalid or expired refresh token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/me":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"Authenticated user profile (full view, including privileged fields).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/auth/oauth/authorize":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AuthorizeCmd"}}},"required":true},"responses":{"200":{"description":"Authorization URL. The state-cookie carries the OAuth state value for the callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AuthorizationUrlResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Unknown provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/oauth/callback":{"get":{"tags":["auth"],"operationId":"handler","parameters":[{"name":"provider","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OAuthProvider"}},{"name":"code","in":"query","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OAuth login completed. Returns token pair and the resolved user_id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_OAuthLoginResp"}}}},"400":{"description":"Missing state cookie or invalid state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"OAuth flow rejected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/oauth/providers":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"List of enabled OAuth providers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_OAuthProviderInfo"}}}}}}},"/api/v1/auth/password/forgot":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ForgotPasswordCmd"}}},"required":true},"responses":{"200":{"description":"Request accepted. The response shape is constant whether or not the email is known; the temp_key cookie carries the token for the subsequent reset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ForgotPasswordResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/password/reset":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ResetPasswordCmd"}}},"required":true},"responses":{"200":{"description":"Password updated; all sessions revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ResetPasswordResp"}}}},"400":{"description":"Missing temp_key cookie, weak password, or invalid token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/pow/challenge":{"get":{"tags":["auth"],"operationId":"handler","responses":{"200":{"description":"A fresh PoW challenge bound to this client.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PowChallengeResp"}}}},"400":{"description":"PoW not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RefreshCmd"}}},"required":true},"responses":{"200":{"description":"Rotated token pair.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RefreshResp"}}}},"401":{"description":"Invalid or expired refresh token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/auth/register":{"post":{"tags":["auth"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RegisterCmd"}}},"required":true},"responses":{"200":{"description":"Account created (possibly pending email verification).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RegisterResp"}}}},"400":{"description":"Validation / PoW failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Email or username already taken.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/api/v1/health/live":{"get":{"tags":["system"],"operationId":"liveness","responses":{"200":{"description":"Process is alive","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatus"}}}}}}},"/api/v1/health/ready":{"get":{"tags":["system"],"operationId":"readiness","responses":{"200":{"description":"Service is ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatus"}}}}}}},"/api/v1/issues":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"List issue boards (collections)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_CollectionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateCollectionOption"}}},"required":true},"responses":{"201":{"description":"Create an issue board (collection)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Default issue board OR issue list (when query.state/q/author_id/milestone_id is set)"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateIssueOption"}}},"required":true},"responses":{"201":{"description":"Create an issue in this channel's board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete default issue board"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateCollectionOption"}}},"required":true},"responses":{"200":{"description":"Update default issue board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/attachments/{owner_type}/{owner_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_type","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List attachments"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_type","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UploadAttachmentInput"}}},"required":true},"responses":{"201":{"description":"Upload attachment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AttachmentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/attachments/{owner_type}/{owner_id}/{att_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_type","in":"path","required":true,"schema":{"type":"string"}},{"name":"owner_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"att_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete attachment"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/labels":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"is_archived","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List labels"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateLabelOption"}}},"required":true},"responses":{"201":{"description":"Create label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/labels/{label_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete label"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateLabelOption"}}},"required":true},"responses":{"200":{"description":"Update label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/milestones":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"is_closed","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List milestones"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMilestoneOption"}}},"required":true},"responses":{"201":{"description":"Create milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/milestones/{milestone_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"milestone_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"milestone_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete milestone"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"milestone_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMilestoneOption"}}},"required":true},"responses":{"200":{"description":"Update milestone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MilestoneView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/pins":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List pinned issues"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePinOption"}}},"required":true},"responses":{"201":{"description":"Pin issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PinView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/pins/{pin_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"pin_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Unpin issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete issue"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateIssueOption"}}},"required":true},"responses":{"200":{"description":"Update issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/close":{"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CloseIssueOption"}}},"required":true},"responses":{"200":{"description":"Open/close issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"parent_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List comments"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateCommentOption"}}},"required":true},"responses":{"201":{"description":"Create comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments/{comment_id}":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete comment"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateCommentOption"}}},"required":true},"responses":{"200":{"description":"Update comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/comments/{comment_id}/reactions":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List comment reactions"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReactionOption"}}},"required":true},"responses":{"201":{"description":"React to comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/content_history":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"comment_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List content history"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/dependencies":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List dependencies"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDependencyOption"}}},"required":true},"responses":{"201":{"description":"Create dependency","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DependencyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/dependencies/{dep_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete dependency"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/events":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List issue events"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/labels":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List labels for issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/labels/{label_id}":{"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Bind label to issue"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Unbind label from issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/members":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List members"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMemberOption"}}},"required":true},"responses":{"201":{"description":"Create member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/members/{member_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/reactions":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List issue reactions"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReactionOption"}}},"required":true},"responses":{"201":{"description":"React to issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/reactions/{reaction_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"reaction_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete reaction"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/repo_relations":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List repo relations"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRepoRelOption"}}},"required":true},"responses":{"201":{"description":"Link repo to issue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoRelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/repo_relations/{rel_id}":{"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Unlink repo from issue"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/stopwatch":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get my stopwatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_StopwatchView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Start stopwatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_StopwatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Stop stopwatch"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/tracked_time":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List tracked time"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/users":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List issue users"}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/users/{uid}":{"patch":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateIssueUserOption"}}},"required":true},"responses":{"200":{"description":"Update issue user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueUserView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/issues/{space_name}/{issue_id}/watch":{"get":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get my watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_WatchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertWatchOption"}}},"required":true},"responses":{"200":{"description":"Upsert watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_WatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["issues"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete watch state"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Posts board view OR post list (when query.status/q/author_id is set)"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostOption"}}},"required":true},"responses":{"201":{"description":"Create a post (thread)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/boards":{"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostBoardOption"}}},"required":true},"responses":{"201":{"description":"Create a posts board (collection)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostBoardView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/labels":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"is_archived","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List board labels","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostLabelOption"}}},"required":true},"responses":{"201":{"description":"Create a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/labels/{label_id}":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Delete a board label"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePostLabelOption"}}},"required":true},"responses":{"200":{"description":"Update a board label","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Get a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Delete a post"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePostOption"}}},"required":true},"responses":{"200":{"description":"Update a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/archive":{"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Archive a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/close":{"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Close a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/labels":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List labels bound to a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostLabelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/labels/{label_id}":{"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Bind a label to a post"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"label_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unbind a label from a post"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/mentions":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List mentions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostMentionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateMentionOption"}}},"required":true},"responses":{"201":{"description":"Mention a user/role in a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostMentionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reactions":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List reactions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PostReactionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePostReactionOption"}}},"required":true},"responses":{"201":{"description":"React to a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReactionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reactions/{reaction_id}":{"delete":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"reaction_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Remove a reaction"}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/reopen":{"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Reopen a post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/replies":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List replies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReplyPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReplyOption"}}},"required":true},"responses":{"201":{"description":"Create a reply","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostReplyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/posts/{space_name}/{number}/watch":{"get":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Get my watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostWatchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertPostWatchOption"}}},"required":true},"responses":{"200":{"description":"Upsert watch state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PostWatchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["posts"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Delete my watch state"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List projects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateProjectCmd"}}},"required":true},"responses":{"201":{"description":"Create a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a project"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProjectCmd"}}},"required":true},"responses":{"200":{"description":"Update a project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProjectView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/activities":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"verb","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List activities","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ActivityPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/documents":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List documents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDocumentCmd"}}},"required":true},"responses":{"201":{"description":"Create a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/documents/{doc_id}":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a document"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateDocumentCmd"}}},"required":true},"responses":{"200":{"description":"Update a document","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DocumentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/favorites":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List favorites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FavoritePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddFavoriteCmd"}}},"required":true},"responses":{"201":{"description":"Add a favorite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FavoriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/favorites/{favorite_id}":{"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"favorite_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Remove a favorite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/links":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List links","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LinkPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddLinkCmd"}}},"required":true},"responses":{"201":{"description":"Add a link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LinkView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/links/{link_id}":{"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Remove a link"}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/members":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddMemberCmd"}}},"required":true},"responses":{"201":{"description":"Add a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/members/{user_id}":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Remove a member"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMemberCmd"}}},"required":true},"responses":{"200":{"description":"Update a member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/views":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List views","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateViewCmd"}}},"required":true},"responses":{"201":{"description":"Create a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/projects/{space_name}/{project_id}/views/{view_id}":{"get":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a view"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["project"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateViewCmd"}}},"required":true},"responses":{"200":{"description":"Update a view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ViewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"owner_user_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"is_private","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"is_archived","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"List repositories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRepoOption"}}},"required":true},"responses":{"201":{"description":"Create a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/search":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"topic","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"include_desc","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"uid","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"priority_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"team_id","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"starred_by","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"private","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"is_private","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"template","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"archived","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string"}},{"name":"exclusive","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"Search repositories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SearchResults"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a repository"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateRepoOption"}}},"required":true},"responses":{"200":{"description":"Update a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/archive":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ArchiveRepoOption"}}},"required":true},"responses":{"200":{"description":"Archive / unarchive a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/archive/{archive_format}/{ref_name}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string"}},{"name":"ref_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"archive_format","in":"path","required":true,"schema":{"type":"string"}},{"name":"ref_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Download an archive"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/assignees/{assignee}":{"get":{"tags":["repo"],"operationId":"check_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assignee","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"User is a valid assignee"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/avatar":{"post":{"tags":["repo"],"operationId":"post_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateAvatarOption"}}},"required":true},"responses":{"204":{"description":"Update repo avatar"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"delete_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete repo avatar"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List branch protections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBranchProtectionOption"}}},"required":true},"responses":{"201":{"description":"Create a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections/priority":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBranchProtectionPriorities"}}},"required":true},"responses":{"204":{"description":"Update branch protection priorities"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branch_protections/{policy_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a branch protection"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditBranchProtectionOption"}}},"required":true},"responses":{"200":{"description":"Edit a branch protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List branches","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBranchOption"}}},"required":true},"responses":{"201":{"description":"Create a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches/{branch_name}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"branch_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"branch_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBranchOption"}}},"required":true},"responses":{"200":{"description":"Update a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"branch_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete a branch"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/branches/{branch_name}/rename":{"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"branch_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RenameBranchOption"}}},"required":true},"responses":{"200":{"description":"Rename a branch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BranchView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List collaborators","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CollaboratorPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators/{user_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"User is a collaborator"}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddCollaboratorOption"}}},"required":true},"responses":{"204":{"description":"Add or update a collaborator"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Remove a collaborator"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/collaborators/{user_id}/permission":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get collaborator permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoCollaboratorPermission"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"sha","in":"query","required":false,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}},{"name":"since","in":"query","required":false,"schema":{"type":"string"}},{"name":"until","in":"query","required":false,"schema":{"type":"string"}},{"name":"stat","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"verification","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"files","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"not","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List commits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitsResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits/{ref}/status":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get combined status by ref","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CombinedStatusView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/commits/{ref}/statuses":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List commit statuses by ref","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/compare/{base}...{head}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"base","in":"path","required":true,"schema":{"type":"string"}},{"name":"head","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Compare two refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CompareView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List contents at root","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents-ext":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List contents (ext form)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentsExtResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents-ext/{path}":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get contents (ext form)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentsExtResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents/change":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ChangeFilesOptions"}}},"required":true},"responses":{"200":{"description":"Multi-file change","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/contents/{path}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a file or directory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateFileOption"}}},"required":true},"responses":{"200":{"description":"Update a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateFileOption"}}},"required":true},"responses":{"201":{"description":"Create a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_DeleteFileOption"}}},"required":true},"responses":{"204":{"description":"Delete a file"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/diffpatch":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ApplyDiffPatchFileOptions"}}},"required":true},"responses":{"200":{"description":"Apply a diff patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ContentsResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/editorconfig/{filename}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get EditorConfig","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/file-contents":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Batch read files","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FilesResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"post_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_Vec_String"}}},"required":true},"responses":{"200":{"description":"Batch read files","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_FileDeleteResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/forks":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List forks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ForksResponse"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ForkRepoOption"}}},"required":true},"responses":{"201":{"description":"Fork a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/generate":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_GenerateRepoOption"}}},"required":true},"responses":{"201":{"description":"Generate a repository from template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/blobs/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a blob","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_BlobView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/diff/{sha}":{"get":{"tags":["repo"],"operationId":"diff_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get commit diff or patch","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a commit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/commits/{sha}.{diff_type}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}},{"name":"diff_type","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get commit diff or patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitDiffPayload"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/notes/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a note","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_NoteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/refs":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List git refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_GitRef"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/refs/{filter}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filter","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filter git refs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_GitRef"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/tags/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get an annotated tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/git/trees/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"recursive","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a tree","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TreeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_config":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get issue config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueConfig"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_config/validate":{"get":{"tags":["repo"],"operationId":"validate_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Validate issue config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_IssueConfigValidation"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/issue_templates":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List issue templates","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_IssueTemplate"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/keys":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"key_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"fingerprint","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List deploy keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateDeployKeyOption"}}},"required":true},"responses":{"201":{"description":"Create a deploy key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/keys/{key_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a deploy key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeployKeyView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a deploy key"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/languages":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get repo language stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LanguagesResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/licenses":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List detected licenses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_LicensesResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/media/{filepath}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filepath","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get media (raw or LFS pointer)","content":{"application/octet-stream":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/merge-upstream":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MergeUpstreamRequest"}}},"required":true},"responses":{"200":{"description":"Merge upstream","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MergeUpstreamResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/new_pin_allowed":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Whether new issue pins are allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_NewPinAllowedResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List pull requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePullRequestOption"}}},"required":true},"responses":{"201":{"description":"Create a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Get a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePullRequestOption"}}},"required":true},"responses":{"200":{"description":"Update a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/close":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Close a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/comments":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List pull request comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestCommentView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreatePullRequestCommentOption"}}},"required":true},"responses":{"201":{"description":"Create a pull request comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestCommentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/events":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List pull request events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestEventView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/lock":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Lock a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/merge":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MergePullRequestOption"}}},"required":true},"responses":{"200":{"description":"Merge a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MergeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/reopen":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Reopen a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/reviews":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List pull request reviews","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PullRequestReviewView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SubmitPullRequestReviewOption"}}},"required":true},"responses":{"201":{"description":"Submit a pull request review","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestReviewView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/pulls/{number}/unlock":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"number","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Unlock a pull request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PullRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/raw/{filepath}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filepath","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get raw file content","content":{"application/octet-stream":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"draft","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"prerelease","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List releases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleasePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateReleaseOption"}}},"required":true},"responses":{"201":{"description":"Create a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/latest":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get the latest release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/tags/{tag}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tag","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a release by tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tag","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete a release by tag"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a release"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditReleaseOption"}}},"required":true},"responses":{"200":{"description":"Edit a release","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}/assets":{"get":{"tags":["repo"],"operationId":"list_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List release attachments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseAttachmentListResponse"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/releases/{release_id}/assets/{attachment_id}":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a release attachment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReleaseAttachmentView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/rename":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RenameRepoOption"}}},"required":true},"responses":{"200":{"description":"Rename a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/reviewers":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List reviewers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserMini"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/signing-key.gpg":{"get":{"tags":["repo"],"operationId":"gpg_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"GPG signing key","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/signing-key.pub":{"get":{"tags":["repo"],"operationId":"ssh_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"SSH signing key","content":{"text/plain":{}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/stargazers":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List stargazers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserMini"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/statuses/{sha}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List commit statuses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateStatusOption"}}},"required":true},"responses":{"201":{"description":"Create a commit status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CommitStatusView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/subscribers":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List subscribers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SubscriberPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/subscription":{"get":{"tags":["repo"],"operationId":"get_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get current user's subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Subscription"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"put_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Watch the repo"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"delete_handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Unwatch the repo"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/sync":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get repo metadata sync status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SyncStatus"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/sync/run":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Trigger a metadata sync","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SyncResult"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tag_protections":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List tag protections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateTagProtectionOption"}}},"required":true},"responses":{"201":{"description":"Create a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tag_protections/{policy_id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Delete a tag protection"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_EditTagProtectionOption"}}},"required":true},"responses":{"200":{"description":"Edit a tag protection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagProtectionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tags":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List tags","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateTagOption"}}},"required":true},"responses":{"201":{"description":"Create a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/tags/{tag_name}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TagView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete a tag"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/topics":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List repo topics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TopicList"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RepoTopicOptions"}}},"required":true},"responses":{"204":{"description":"Replace repo topics"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/topics/{topic}":{"put":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"topic","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Add a topic"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"topic","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Remove a topic"}},"security":[{"bearer_auth":[]}]}},"/api/v1/repos/{space_name}/{repo_id}/transfer":{"post":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_TransferRepoOption"}}},"required":true},"responses":{"200":{"description":"Transfer a repository","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/repositories/{id}":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a repository by id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RepoSummary"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"List spaces owned by the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpacePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateSpaceCmd"}}},"required":true},"responses":{"200":{"description":"Create a new space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/invites/accept":{"post":{"tags":["space"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AcceptInviteCmd"}}},"required":true},"responses":{"200":{"description":"Accept an invite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}}},"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Delete a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateSpaceCmd"}}},"required":true},"responses":{"200":{"description":"Update a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/bans":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List bans in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateBanCmd"}}},"required":true},"responses":{"200":{"description":"Ban a user from a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/bans/{uid}":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a ban","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unban a user from a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateBanCmd"}}},"required":true},"responses":{"200":{"description":"Update a ban","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceBanView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List channels in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ChannelPage"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ChannelView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/roles":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List role overwrites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RoleOverwriteView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SetRoleOverwriteCmd"}}},"required":true},"responses":{"200":{"description":"Set a role overwrite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleOverwriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/roles/{rid}":{"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Remove a role overwrite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/users":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"List user overwrites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_UserOverwriteView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SetUserOverwriteCmd"}}},"required":true},"responses":{"200":{"description":"Set a user overwrite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserOverwriteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/channels/{cid}/overwrites/users/{uid}":{"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"cid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Remove a user overwrite"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/invites":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List invites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInvitePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateInviteCmd"}}},"required":true},"responses":{"200":{"description":"Create an invite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInviteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/invites/{iid}":{"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"iid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Revoke an invite","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceInviteView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List members of a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberPage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddMemberCmd"}}},"required":true},"responses":{"200":{"description":"Add a member to a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a space member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Remove a member from a space"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateMemberCmd"}}},"required":true},"responses":{"200":{"description":"Update a space member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SpaceMemberView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}/roles":{"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AssignRoleCmd"}}},"required":true},"responses":{"200":{"description":"Assign a role to a member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/members/{uid}/roles/{rid}":{"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unassign a role from a member"}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/roles":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List roles in a space","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RolePage"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateRoleCmd"}}},"required":true},"responses":{"200":{"description":"Create a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/spaces/{space_name}/roles/{rid}":{"get":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}}},"delete":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Delete a role"}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["space"],"operationId":"handler","parameters":[{"name":"space_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateRoleCmd"}}},"required":true},"responses":{"200":{"description":"Update a role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RoleView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/topics/search":{"get":{"tags":["repo"],"operationId":"handler","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"Search topics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_TopicSearchResult"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/deletions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List pending and scheduled deletion requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/deletions/{id}/complete":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Deletion request id.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Deletion completed; sessions revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/suspensions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"include_revoked","in":"query","description":"Include revoked suspensions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"All suspensions (admin view).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/suspensions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Suspension id.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RevokeSuspensionCmd"}}},"required":true},"responses":{"204":{"description":"Suspension revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/users/{uid}/profile":{"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProfileCmd"}}},"required":true},"responses":{"200":{"description":"Admin-updated profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/admin/users/{uid}/suspensions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"include_revoked","in":"query","description":"Include revoked suspensions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Suspensions for the given user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SuspendCmd"}}},"required":true},"responses":{"200":{"description":"Suspension created (also sets users.is_restricted = true).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Authenticated user profile (privileged view).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/access-keys":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List access keys for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_AccessKeyView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_CreateAccessKeyCmd"}}},"required":true},"responses":{"200":{"description":"Access key created (token returned only once).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_CreateAccessKeyResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/access-keys/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Access key identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Access key deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/avatar":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Current avatar metadata (200 with empty body if none).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Option_AvatarView"}}}}},"security":[{"bearer_auth":[]}]},"put":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UploadAvatarCmd"}}},"required":true},"responses":{"200":{"description":"Avatar uploaded and bound to caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AvatarView"}}}},"400":{"description":"Invalid content_type or base64 payload."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"204":{"description":"Avatar removed."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/blocks":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of blocked users.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_BlockedSummary"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/blocks/{uid}":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Block succeeded (idempotent; also unfollows both directions)."},"404":{"description":"Target user not found."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unblock succeeded."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/deletion":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RequestDeletionCmd"}}},"required":true},"responses":{"200":{"description":"Deletion request created or returned (idempotent).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"204":{"description":"Active deletion request cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/deletion/confirm":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Deletion request scheduled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeletionRequestView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/devices":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List devices registered to the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_DeviceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/devices/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Device identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Device removed."}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Device identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateDeviceCmd"}}},"required":true},"responses":{"200":{"description":"Device updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_DeviceView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_RequestChangeBody"}}},"required":true},"responses":{"200":{"description":"Email change ticket created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_EmailChangeTicketView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change/confirm":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_ConfirmEmailChangeCmd"}}},"required":true},"responses":{"200":{"description":"Ticket status advanced.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_EmailChangeTicketView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/email-change/{ticket_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"ticket_id","in":"path","description":"Ticket identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Ticket cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List active emails for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_EmailView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddEmailCmd"}}},"required":true},"responses":{"200":{"description":"Email added (unverified).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_AddEmailResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails/{email_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"email_id","in":"path","description":"Email identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Email soft-deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/emails/{email_id}/primary":{"patch":{"tags":["user"],"operationId":"handler","parameters":[{"name":"email_id","in":"path","description":"Email identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Primary email changed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SetPrimaryEmailResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/memes":{"get":{"tags":["user"],"operationId":"list_handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"List the caller's favorite memes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_MemeView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"create_handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertMemeCmd"}}},"required":true},"responses":{"200":{"description":"Meme created or updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MemeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/memes/{id}":{"delete":{"tags":["user"],"operationId":"delete_handler","parameters":[{"name":"id","in":"path","description":"Meme identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Meme deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/saved":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Saved messages for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SavedMessageView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SaveMessageCmd"}}},"required":true},"responses":{"200":{"description":"Message saved (idempotent).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SavedMessageView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/saved/{message_id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"message_id","in":"path","description":"Message identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Message removed from saved list."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/scheduled":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Scheduled messages for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_ScheduledMessageView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/messages/scheduled/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Scheduled message identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Scheduled message cancelled."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"unread_only","in":"query","description":"Only return unread notifications.","required":false,"schema":{"type":"boolean"}},{"name":"notification_type","in":"query","description":"Filter by notification type.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Notifications for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_NotificationView"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_MarkReadCmd"}}},"required":true},"responses":{"200":{"description":"Notifications marked as read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MarkReadResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications/mark-all-read":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"All notifications marked as read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_MarkAllReadResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/notifications/unread-count":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Number of unread notifications for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UnreadCountResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/preferences":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"User preferences (auto-created if missing).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPreferences"}}}}},"security":[{"bearer_auth":[]}]},"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdatePreferencesCmd"}}},"required":true},"responses":{"200":{"description":"Updated preferences.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPreferences"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/profile":{"patch":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpdateProfileCmd"}}},"required":true},"responses":{"200":{"description":"Updated self profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserMe"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/push-subscriptions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List push subscriptions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_PushSubscriptionView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_UpsertPushCmd"}}},"required":true},"responses":{"200":{"description":"Push subscription upserted (endpoint-keyed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_PushSubscriptionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/push-subscriptions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Push subscription id.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Push subscription deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recent-mentions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Recent mentions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RecentMentionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recovery-codes":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List recovery codes for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_RecoveryCodeView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/recovery-codes/regenerate":{"post":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Recovery codes regenerated (plaintext returned once).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RegenerateRecoveryResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/reports":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Reports submitted by the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_ReportView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/sessions":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"app_id","in":"query","description":"Filter by app id.","required":false,"schema":{"type":"string"}},{"name":"include_revoked","in":"query","description":"Include revoked sessions (default false).","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"List active sessions for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SessionView"}}}}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"All sessions revoked for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_RevokeAllResp"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/sessions/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"Session identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Session revoked."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/ssh-keys":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"List SSH keys for the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SshKeyView"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_AddSshKeyCmd"}}},"required":true},"responses":{"200":{"description":"SSH key added.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_SshKeyView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/ssh-keys/{id}":{"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"id","in":"path","description":"SSH key identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"SSH key deleted."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/me/suspensions":{"get":{"tags":["user"],"operationId":"handler","responses":{"200":{"description":"Active suspensions affecting the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_SuspensionView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/reports":{"post":{"tags":["user"],"operationId":"handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequestData_SubmitReportCmd"}}},"required":true},"responses":{"200":{"description":"Report submitted (status = Open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ReportView"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/users/{uid}":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"User identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Public view of the user (visibility-filtered).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_UserPublic"}}}},"404":{"description":"User not found."}}}},"/api/v1/user/users/{uid}/follow":{"post":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Follow succeeded (idempotent)."},"404":{"description":"Target user not found."}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unfollow succeeded."}},"security":[{"bearer_auth":[]}]}},"/api/v1/user/users/{uid}/followers":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of followers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_FollowerSummary"}}}}}}},"/api/v1/user/users/{uid}/following":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"Target user identifier.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Maximum items (default 20).","required":false,"schema":{"type":"integer","minimum":0}},{"name":"cursor","in":"query","description":"Pagination cursor (id).","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Page of accounts the user follows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_Vec_FollowerSummary"}}}}}}},"/api/v1/user/users/{uid}/profile-detail":{"get":{"tags":["user"],"operationId":"handler","parameters":[{"name":"uid","in":"path","description":"User identifier.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Extended profile record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponseData_ProfileView"}}}},"404":{"description":"Profile not found."}}}}},"components":{"schemas":{"AcceptAgreementCmd":{"type":"object","required":["user_id","agreement_key","agreement_version"],"properties":{"agreement_key":{"type":"string"},"agreement_version":{"type":"string"},"user_id":{"type":"string"}}},"AcceptAgreementResp":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"}}},"AcceptInviteCmd":{"type":"object","required":["accept_code"],"properties":{"accept_code":{"type":"string"}}},"AccessKeyScope":{"type":"string","enum":["read","write","repo","admin","all"]},"AccessKeyView":{"type":"object","required":["id","name","token_last_eight","scope","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"},"token_last_eight":{"type":"string"},"updated_at":{"type":"string"}}},"ActivityPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ActivityView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ActivityView":{"type":"object","required":["id","project_id","actor_id","verb","target_kind","created_at"],"properties":{"actor_id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"payload":{},"project_id":{"type":"string","format":"uuid"},"target_id":{"type":["string","null"],"format":"uuid"},"target_kind":{"type":"string"},"verb":{"type":"string"}}},"AddCollaboratorOption":{"type":"object","required":["permission"],"properties":{"permission":{"type":"string"}}},"AddEmailCmd":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"AddEmailResp":{"type":"object","required":["email_id"],"properties":{"email_id":{"type":"string","format":"uuid"}}},"AddFavoriteCmd":{"type":"object","properties":{"folder":{"type":["string","null"]}}},"AddLinkCmd":{"type":"object","required":["related_project_id","kind"],"properties":{"kind":{"$ref":"#/components/schemas/LinkKind"},"related_project_id":{"type":"string","format":"uuid"}}},"AddMemberCmd":{"type":"object","required":["user_id"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"},"user_id":{"type":"string","format":"uuid"}}},"AddSshKeyCmd":{"type":"object","required":["name","content"],"properties":{"content":{"type":"string"},"key_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SshKeyType"}]},"name":{"type":"string"}}},"AgreementDoc":{"type":"object","required":["key","version","updated_at","title","content_md"],"properties":{"content_md":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"string"}}},"AppRequestData_AcceptAgreementCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","agreement_key","agreement_version"],"properties":{"agreement_key":{"type":"string"},"agreement_version":{"type":"string"},"user_id":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AcceptInviteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["accept_code"],"properties":{"accept_code":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddCollaboratorOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["permission"],"properties":{"permission":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddEmailCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_AddFavoriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"folder":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_AddLinkCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["related_project_id","kind"],"properties":{"kind":{"$ref":"#/components/schemas/LinkKind"},"related_project_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AddMemberCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AddSshKeyCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","content"],"properties":{"content":{"type":"string"},"key_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SshKeyType"}]},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_ApplyDiffPatchFileOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"sha":{"type":["string","null"]}}}]},"request_id":{"type":"string"}}},"AppRequestData_ArchiveRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean"}}},"request_id":{"type":"string"}}},"AppRequestData_AssignRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_AuthorizeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["provider","code_verifier"],"properties":{"app_id":{"type":["string","null"]},"code_verifier":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"}}},"request_id":{"type":"string"}}},"AppRequestData_ChangeFilesOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/ChangeFileEntry"}}}}]},"request_id":{"type":"string"}}},"AppRequestData_CloseIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["closed"],"properties":{"closed":{"type":"boolean"}}},"request_id":{"type":"string"}}},"AppRequestData_ConfirmEmailChangeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["ticket_id"],"properties":{"ticket_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateAccessKeyCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","scope"],"properties":{"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBanCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id"],"properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_branch_name"],"properties":{"new_branch_name":{"type":"string"},"old_branch_name":{"type":["string","null"]},"old_ref_name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateBranchProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["branch_name"],"properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"rule_name":{"type":["string","null"]},"unprotected_file_patterns":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateCollectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDependencyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["dependency_id"],"properties":{"dependency_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDeployKeyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","key"],"properties":{"key":{"type":"string"},"read_only":{"type":["boolean","null"]},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateDocumentCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","slug"],"properties":{"content":{"type":"string"},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}}]},"request_id":{"type":"string"}}},"AppRequestData_CreateInviteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_ids"],"properties":{"email":{"type":["string","null"]},"expires_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"user_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMemberOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","kind"],"properties":{"kind":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMentionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["is_everyone","is_here"],"properties":{"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateMilestoneOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePinOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["issue_id","pin_order"],"properties":{"issue_id":{"type":"string","format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostBoardOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePostReactionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateProjectCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"},"target_date":{"type":["string","null"],"format":"date"}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePullRequestCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreatePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["title","head","base"],"properties":{"base":{"type":"string"},"body":{"type":["string","null"]},"head":{"type":"string"},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReactionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReleaseOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["tag_name","title"],"properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]},"title":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateReplyOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"parent_reply_id":{"type":["string","null"],"format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["space_id","name"],"properties":{"auto_init":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"gitignores":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"issue_labels":{"type":["string","null"]},"license_name":{"type":["string","null"]},"name":{"type":"string"},"object_format":{"type":["string","null"]},"parent_dir":{"type":["string","null"],"format":"uuid"},"readme":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRepoRelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["repo_id"],"properties":{"repo_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_CreateRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","permissions"],"properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateSpaceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"public":{"type":"boolean"},"welcome_message":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateStatusOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["state","context"],"properties":{"context":{"type":"string"},"description":{"type":["string","null"]},"state":{"type":"string"},"target_url":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateTagOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["tag_name"],"properties":{"message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_CreateTagProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name_pattern"],"properties":{"name_pattern":{"type":"string"},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_CreateViewCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"sort_by":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_DeleteFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["sha"],"properties":{"sha":{"type":"string"}}}]},"request_id":{"type":"string"}}},"AppRequestData_EditBranchProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"unprotected_file_patterns":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_EditReleaseOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_name":{"type":["string","null"]},"target":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_EditTagProtectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"name_pattern":{"type":["string","null"]},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_ForgotPasswordCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_ForkRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["to_channel_id"],"properties":{"description":{"type":["string","null"]},"name":{"type":["string","null"]},"to_channel_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_GenerateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["to_channel_id","name"],"properties":{"description":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"name":{"type":"string"},"to_channel_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_LoginCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["identifier","password","pow"],"properties":{"app_id":{"type":["string","null"]},"identifier":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_LogoutCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_MarkReadCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["notification_ids"],"properties":{"notification_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_MergePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["style"],"properties":{"commit_message":{"type":["string","null"]},"commit_title":{"type":["string","null"]},"delete_branch_after_merge":{"type":"boolean"},"style":{"$ref":"#/components/schemas/MergeStyle"}}},"request_id":{"type":"string"}}},"AppRequestData_MergeUpstreamRequest":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["branch"],"properties":{"branch":{"type":"string"},"ff_only":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_ReclaimCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"request_id":{"type":"string"}}},"AppRequestData_RefreshCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["refresh_token"],"properties":{"app_id":{"type":["string","null"]},"refresh_token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RegisterCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","password","pow"],"properties":{"accept_agreements":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"username":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_RenameBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RenameRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RepoTopicOptions":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"request_id":{"type":"string"}}},"AppRequestData_RequestChangeBody":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_email"],"properties":{"new_email":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RequestDeletionCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_ResendCodeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","pow","purpose"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"purpose":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_ResetPasswordCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","token","new_password","temp_key_value"],"properties":{"email":{"type":"string"},"new_password":{"type":"string"},"temp_key_value":{"type":"string"},"token":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_RevokeSuspensionCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_SaveMessageCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["channel_id","message_id"],"properties":{"channel_id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SetRoleOverwriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"role_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SetUserOverwriteCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SubmitPullRequestReviewOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["state"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"state":{"$ref":"#/components/schemas/ReviewState"}}},"request_id":{"type":"string"}}},"AppRequestData_SubmitReportCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["reported_uid","reason"],"properties":{"evidence":{"type":["string","null"]},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"}}},"request_id":{"type":"string"}}},"AppRequestData_SuspendCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["suspension_type"],"properties":{"ends_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"}}},"request_id":{"type":"string"}}},"AppRequestData_TransferRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_channel_id"],"properties":{"new_channel_id":{"type":"string","format":"uuid"},"new_name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateAvatarOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["image"],"properties":{"image":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBanCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBranchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["new_commit_id"],"properties":{"force":{"type":["boolean","null"]},"new_commit_id":{"type":"string"},"old_commit_id":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateBranchProtectionPriorities":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateCollectionOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateCommentOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateDeviceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"device_name":{"type":["string","null"]},"is_trusted":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateDocumentCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"content":{"type":["string","null"]},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateFileOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"from_path":{"type":["string","null"]},"sha":{"type":["string","null"]}}}]},"request_id":{"type":"string"}}},"AppRequestData_UpdateIssueOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"body":{"type":["string","null"]},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateIssueUserOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"is_mentioned":{"type":["boolean","null"]},"is_read":{"type":["boolean","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateMemberCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["role"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateMilestoneOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"is_closed":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePostLabelOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePostOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"body":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePreferencesCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_dms_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"allow_mentions_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":["boolean","null"]},"email_flags":{"type":["integer","null"],"format":"int32"},"in_app_flags":{"type":["integer","null"],"format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":["integer","null"],"format":"int32"},"show_online_status":{"type":["boolean","null"]},"theme_mode":{"type":["string","null"]},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateProfileCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"avatar":{"type":["string","null"]},"display_name":{"type":["string","null"]},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"profile":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UpdateProfileFields"}]},"timezone":{"type":["string","null"]},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateProjectCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"health":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectHealth"}]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":["string","null"]},"sort_order":{"type":["integer","null"],"format":"int32"},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]},"target_date":{"type":["string","null"],"format":"date"}}},"request_id":{"type":"string"}}},"AppRequestData_UpdatePullRequestOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"base":{"type":["string","null"]},"body":{"type":["string","null"]},"head":{"type":["string","null"]},"title":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateRepoOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_fast_forward_only_merge":{"type":["boolean","null"]},"allow_manual_merge":{"type":["boolean","null"]},"allow_merge_commits":{"type":["boolean","null"]},"allow_merge_update":{"type":["boolean","null"]},"allow_rebase":{"type":["boolean","null"]},"allow_rebase_explicit":{"type":["boolean","null"]},"allow_rebase_update":{"type":["boolean","null"]},"allow_squash_merge":{"type":["boolean","null"]},"archived":{"type":["boolean","null"]},"autodetect_manual_merge":{"type":["boolean","null"]},"default_allow_maintainer_edit":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"default_delete_branch_after_merge":{"type":["boolean","null"]},"default_merge_style":{"type":["string","null"]},"default_update_style":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"external_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalTracker"}]},"external_wiki":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalWiki"}]},"has_actions":{"type":["boolean","null"]},"has_code":{"type":["boolean","null"]},"has_issues":{"type":["boolean","null"]},"has_packages":{"type":["boolean","null"]},"has_projects":{"type":["boolean","null"]},"has_pull_requests":{"type":["boolean","null"]},"has_releases":{"type":["boolean","null"]},"has_wiki":{"type":["boolean","null"]},"ignore_whitespace_conflicts":{"type":["boolean","null"]},"internal_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InternalTracker"}]},"is_private":{"type":["boolean","null"]},"license_name":{"type":["string","null"]},"name":{"type":["string","null"]},"projects_mode":{"type":["string","null"]},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateRoleCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":["string","null"]},"permissions":{"type":["array","null"],"items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateSpaceCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"allow_invite":{"type":["boolean","null"]},"allow_join":{"type":["boolean","null"]},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":["boolean","null"]},"name":{"type":["string","null"]},"public":{"type":["boolean","null"]},"welcome_message":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpdateViewCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":["boolean","null"]},"layout":{"type":["string","null"]},"name":{"type":["string","null"]},"sort_by":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UploadAttachmentInput":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["filename","content_type","data"],"properties":{"content_type":{"type":"string"},"data":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"filename":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UploadAvatarCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["content_type","data_base64"],"properties":{"content_type":{"type":"string"},"data_base64":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertMemeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["name","content_type","url","size"],"properties":{"content_type":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertPostWatchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertPushCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["endpoint","p256dh_key","auth_key","platform"],"properties":{"auth_key":{"type":"string"},"endpoint":{"type":"string"},"p256dh_key":{"type":"string"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppRequestData_UpsertWatchOption":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"request_id":{"type":"string"}}},"AppRequestData_Vec_String":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"array","items":{"type":"string"}},"request_id":{"type":"string"}}},"AppRequestData_VerifyCodeCmd":{"type":"object","required":["request_id","at"],"properties":{"at":{"type":"string"},"data":{"type":"object","required":["email","purpose","code","temp_key_value"],"properties":{"code":{"type":"string"},"email":{"type":"string"},"purpose":{"type":"string"},"temp_key_value":{"type":"string"},"user_id":{"type":["string","null"]}}},"request_id":{"type":"string"}}},"AppResponseData_AcceptAgreementResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ActivityPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ActivityView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AddEmailResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["email_id"],"properties":{"email_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AttachmentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","owner_type","owner_id","filename","content_type","size","url","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"string","format":"uuid"},"owner_id":{"type":"string","format":"uuid"},"owner_type":{"type":"string"},"size":{"type":"integer","format":"int64"},"uploaded_by":{"type":["string","null"],"format":"uuid"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AuthorizationUrlResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["url","temp_key"],"properties":{"temp_key":{"$ref":"#/components/schemas/TempKey"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_AvatarView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BlobView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","size","encoding","content"],"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchProtectionPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchProtectionView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchProtectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","branch_name","rule_name","priority","enable_push","enable_push_whitelist","push_whitelist_usernames","push_whitelist_teams","push_whitelist_deploy_keys","enable_force_push","enable_force_push_allowlist","force_push_allowlist_usernames","force_push_allowlist_teams","force_push_allowlist_deploy_keys","enable_merge_whitelist","merge_whitelist_usernames","merge_whitelist_teams","enable_bypass_allowlist","bypass_allowlist_usernames","bypass_allowlist_teams","enable_approvals_whitelist","approvals_whitelist_usernames","approvals_whitelist_teams","required_approvals","block_on_rejected_reviews","block_on_change_requested_reviews","block_on_outdated_branch","dismiss_stale_approvals","ignore_stale_approvals","require_signed_commits","block_admin_merge_override","protected_file_patterns","unprotected_file_patterns","created_at","updated_at"],"properties":{"approvals_whitelist_teams":{"type":"array","items":{"type":"string"}},"approvals_whitelist_usernames":{"type":"array","items":{"type":"string"}},"block_admin_merge_override":{"type":"boolean"},"block_on_change_requested_reviews":{"type":"boolean"},"block_on_outdated_branch":{"type":"boolean"},"block_on_rejected_reviews":{"type":"boolean"},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":"array","items":{"type":"string"}},"bypass_allowlist_usernames":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string"},"dismiss_stale_approvals":{"type":"boolean"},"enable_approvals_whitelist":{"type":"boolean"},"enable_bypass_allowlist":{"type":"boolean"},"enable_force_push":{"type":"boolean"},"enable_force_push_allowlist":{"type":"boolean"},"enable_merge_whitelist":{"type":"boolean"},"enable_push":{"type":"boolean"},"enable_push_whitelist":{"type":"boolean"},"force_push_allowlist_deploy_keys":{"type":"boolean"},"force_push_allowlist_teams":{"type":"array","items":{"type":"string"}},"force_push_allowlist_usernames":{"type":"array","items":{"type":"string"}},"id":{"type":"string","format":"uuid"},"ignore_stale_approvals":{"type":"boolean"},"merge_whitelist_teams":{"type":"array","items":{"type":"string"}},"merge_whitelist_usernames":{"type":"array","items":{"type":"string"}},"priority":{"type":"integer","format":"int64"},"protected_file_patterns":{"type":"string"},"push_whitelist_deploy_keys":{"type":"boolean"},"push_whitelist_teams":{"type":"array","items":{"type":"string"}},"push_whitelist_usernames":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string","format":"uuid"},"require_signed_commits":{"type":"boolean"},"required_approvals":{"type":"integer","format":"int32"},"rule_name":{"type":"string"},"unprotected_file_patterns":{"type":"string"},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_BranchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name","commit_sha","is_protected","protected","required_approvals","enable_status_check","status_check_contexts","user_can_push","user_can_merge","effective_branch_protection_name","is_deleted","created_at","updated_at"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitMeta"}]},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"effective_branch_protection_name":{"type":"string"},"enable_status_check":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"is_deleted":{"type":"boolean"},"is_protected":{"type":"boolean"},"name":{"type":"string"},"protected":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"required_approvals":{"type":"integer","format":"int64"},"status_check_contexts":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"user_can_merge":{"type":"boolean"},"user_can_push":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ChannelPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ChannelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","kind","position","is_archived","created_at","updated_at","created_by"],"properties":{"archived_at":{"type":["string","null"]},"archived_by":{"type":["string","null"],"format":"uuid"},"color":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"},"position":{"type":"integer","format":"int32"},"purpose":{"type":["string","null"]},"space_id":{"type":["string","null"],"format":"uuid"},"topic":{"type":["string","null"]},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CollaboratorPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollaboratorView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CollectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CombinedStatusView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","state","statuses","total_count"],"properties":{"sha":{"type":"string"},"state":{"type":"string"},"statuses":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total_count":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","poster_id","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"poster_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitStatusPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitStatusView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","sha","state","context","url","creator","created_at"],"properties":{"context":{"type":"string"},"created_at":{"type":"string"},"creator":{"$ref":"#/components/schemas/CommitUserSummary"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"state":{"type":"string"},"target_url":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CommitsResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitSummary"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CompareView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["base","head","total_commits","ahead_by","behind_by","files"],"properties":{"ahead_by":{"type":"integer","format":"int64"},"base":{"type":"string"},"behind_by":{"type":"integer","format":"int64"},"files":{"type":"array","items":{"$ref":"#/components/schemas/CompareFileDiff"}},"head":{"type":"string"},"merge_base":{"type":["string","null"]},"total_commits":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ContentsListResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ContentsResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["name","path","sha","type","size"],"properties":{"content":{"type":["string","null"]},"download_url":{"type":["string","null"]},"encoding":{"type":["string","null"]},"git_url":{"type":["string","null"]},"html_url":{"type":["string","null"]},"last_author_date":{"type":["string","null"]},"last_commit_message":{"type":["string","null"]},"last_commit_sha":{"type":["string","null"]},"last_committer_date":{"type":["string","null"]},"lfs_oid":{"type":["string","null"]},"lfs_size":{"type":["integer","null"],"format":"int64"},"links":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/FileLinksResponse"}]},"name":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"},"submodule_git_url":{"type":["string","null"]},"target":{"type":["string","null"]},"type":{"type":"string"},"url":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_CreateAccessKeyResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["key","token"],"properties":{"key":{"$ref":"#/components/schemas/AccessKeyView"},"token":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeletionRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DependencyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","dependency_id","created_at"],"properties":{"created_at":{"type":"string"},"dependency_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeployKeyPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeployKeyView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeployKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","key_id","repo_id","title","key_type","fingerprint","content","url","read_only","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_id":{"type":"integer","format":"int64"},"key_type":{"type":"string"},"last_used_at":{"type":["string","null"]},"read_only":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DeviceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DocumentPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DocumentView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_DocumentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","creator_id","title","slug","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"last_editor_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_EmailChangeTicketView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","new_email","status","expires_at","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"new_email":{"type":"string"},"status":{"$ref":"#/components/schemas/EmailChangeTicketStatus"},"used_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FavoritePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FavoriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","user_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"folder":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FileDeleteResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"content":{}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_FilesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["files"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ForgotPasswordResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ForksResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ForkView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueConfig":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["blank_issues_enabled"],"properties":{"blank_issues_enabled":{"type":"boolean"},"contact_links":{}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueConfigValidation":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["valid"],"properties":{"message":{"type":["string","null"]},"valid":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueUserView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","issue_id","is_read","is_mentioned","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_mentioned":{"type":"boolean"},"is_read":{"type":"boolean"},"issue_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_IssueView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","autoincrement_id","author_id","title","body","state","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"autoincrement_id":{"type":"integer","format":"int32"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"milestone_id":{"type":["string","null"],"format":"uuid"},"state":{"$ref":"#/components/schemas/IssueState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","exclusive","exclusive_order","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":"boolean"},"exclusive_order":{"type":"integer","format":"int32"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LanguagesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["languages"],"properties":{"languages":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LicensesResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["licenses"],"properties":{"licenses":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LinkPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LinkView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LinkView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","related_project_id","kind","created_by","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/LinkKind"},"project_id":{"type":"string","format":"uuid"},"related_project_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LoginResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_LogoutResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MarkAllReadResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MarkReadResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MemberView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemberView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","user_id","kind","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MemeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MergeUpstreamResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["merge_type"],"properties":{"merge_type":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MergeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","merged"],"properties":{"merged":{"type":"boolean"},"message":{"type":["string","null"]},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_MilestoneView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","name","is_closed","num_issues","num_closed_issues","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_closed":{"type":"boolean"},"name":{"type":"string"},"num_closed_issues":{"type":"integer","format":"int32"},"num_issues":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_NewPinAllowedResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["allowed"],"properties":{"allowed":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_NoteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","message"],"properties":{"message":{"type":"string"},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_OAuthLoginResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user_id","auto_registered"],"properties":{"access_token":{"type":"string"},"auto_registered":{"type":"boolean"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user_id":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Option_AvatarView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"oneOf":[{"type":"null"},{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}}]},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PinView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","collection_id","pin_order","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostBoardView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","description":"A post board (collection) hosting posts for a space.","required":["id","channel_id","name","nums_open_post","nums_closed_post","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_post":{"type":"integer","format":"int64"},"nums_open_post":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostLabelPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostLabelView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostLabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReplyPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostReplyView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostReplyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","post_id","author_id","body","is_pinned","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"deleted_by":{"type":["string","null"],"format":"uuid"},"edited_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"parent_reply_id":{"type":["string","null"],"format":"uuid"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","description":"A single post (thread).","required":["id","collection_id","number","author_id","title","body","status","is_pinned","reply_count","created_at"],"properties":{"archived_at":{"type":["string","null"]},"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"last_reply_at":{"type":["string","null"]},"last_reply_by":{"type":["string","null"],"format":"uuid"},"number":{"type":"integer","format":"int64"},"reply_count":{"type":"integer","format":"int32"},"status":{"$ref":"#/components/schemas/PostStatusView"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PostWatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","post_id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PowChallengeResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["challenge","ttl_seconds"],"properties":{"challenge":{"type":"string"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProfileView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","show_email","show_location","show_real_name","show_activity","updated_at"],"properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":"boolean"},"show_email":{"type":"boolean"},"show_location":{"type":"boolean"},"show_real_name":{"type":"boolean"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"},"website":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProjectPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ProjectView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","creator_id","name","state","health","sort_order","starred","created_at"],"properties":{"cancelled_at":{"type":["string","null"],"format":"date-time"},"color":{"type":["string","null"]},"completed_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"health":{"$ref":"#/components/schemas/ProjectHealth"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"space_id":{"type":"string","format":"uuid"},"starred":{"type":"integer","format":"int32"},"started_at":{"type":["string","null"],"format":"date-time"},"state":{"$ref":"#/components/schemas/ProjectState"},"target_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestCommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PullRequestView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestReviewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PullRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","number","title","head_branch","base_branch","author_id","state","is_locked","has_merged","created_at","comments_count","reviews_count"],"properties":{"author_id":{"type":"string","format":"uuid"},"base_branch":{"type":"string"},"base_sha":{"type":["string","null"]},"body":{"type":["string","null"]},"closed_at":{"type":["string","null"]},"comments_count":{"type":"integer","format":"int64"},"created_at":{"type":"string"},"has_merged":{"type":"boolean"},"head_branch":{"type":"string"},"head_sha":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_locked":{"type":"boolean"},"mergeable":{"type":["boolean","null"]},"mergeable_state":{"type":["string","null"]},"merged_at":{"type":["string","null"]},"merged_commit_sha":{"type":["string","null"]},"merger_id":{"type":["string","null"]},"number":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"reviews_count":{"type":"integer","format":"int64"},"state":{"$ref":"#/components/schemas/PrState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_PushSubscriptionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","scope","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"scope":{"$ref":"#/components/schemas/ReactionScope"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReclaimResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RefreshResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["access_token","refresh_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RegenerateRecoveryResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RegisterResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","pending","temp_key","purpose"],"properties":{"pending":{"type":"boolean"},"purpose":{"type":"string"},"temp_key":{"$ref":"#/components/schemas/TempKey"},"uid":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseAttachmentListResponse":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachmentView"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseAttachmentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleasePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReleaseView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","tag_name","target","title","sha","num_commits","is_draft","is_prerelease","is_tag","url","html_url","tarball_url","zipball_url","upload_url","publisher","attachments","created_at","updated_at"],"properties":{"attachments":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachment"}},"content":{"type":["string","null"]},"created_at":{"type":"string"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_draft":{"type":"boolean"},"is_prerelease":{"type":"boolean"},"is_tag":{"type":"boolean"},"num_commits":{"type":"integer","format":"int32"},"publisher":{"$ref":"#/components/schemas/UserSummary"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"tag_name":{"type":"string"},"tarball_url":{"type":"string"},"target":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upload_url":{"type":"string"},"url":{"type":"string"},"zipball_url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoCollaboratorPermission":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["permission","role","user"],"properties":{"permission":{"type":"string"},"role":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RepoView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoRelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","repo_id","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","full_name","empty","private","fork","template","mirror","size","stars_count","forks_count","watchers_count","open_issues_count"],"properties":{"description":{"type":["string","null"]},"empty":{"type":"boolean"},"fork":{"type":"boolean"},"forks_count":{"type":"integer","format":"int32"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"mirror":{"type":"boolean"},"name":{"type":"string"},"open_issues_count":{"type":"integer","format":"int32"},"private":{"type":"boolean"},"size":{"type":"integer","format":"int64"},"stars_count":{"type":"integer","format":"int32"},"template":{"type":"boolean"},"watchers_count":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RepoView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","space_id","name","lower_name","full_name","default_branch","enable_lfs","is_private","is_archived","is_fork","is_template","is_mirror","empty","size","git_size","lfs_size","nums_watch","nums_star","nums_pr","nums_commits","nums_branches","nums_tags","allow_rebase","allow_rebase_explicit","allow_squash_merge","allow_merge_commits","allow_fast_forward_only_merge","allow_rebase_update","allow_merge_update","allow_manual_merge","autodetect_manual_merge","default_delete_branch_after_merge","default_allow_maintainer_edit","ignore_whitespace_conflicts","object_format","has_code","has_issues","has_wiki","has_pull_requests","has_projects","has_releases","has_packages","has_actions","projects_mode","languages","licenses","topics","html_url","url","link","ssh_url","clone_url","created_at","updated_at"],"properties":{"allow_fast_forward_only_merge":{"type":"boolean"},"allow_manual_merge":{"type":"boolean"},"allow_merge_commits":{"type":"boolean"},"allow_merge_update":{"type":"boolean"},"allow_rebase":{"type":"boolean"},"allow_rebase_explicit":{"type":"boolean"},"allow_rebase_update":{"type":"boolean"},"allow_squash_merge":{"type":"boolean"},"archived_at":{"type":["string","null"]},"autodetect_manual_merge":{"type":"boolean"},"avatar_url":{"type":["string","null"]},"channel":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ChannelSummary"}]},"channel_id":{"type":"string","format":"uuid"},"clone_url":{"type":"string"},"created_at":{"type":"string"},"default_allow_maintainer_edit":{"type":"boolean"},"default_branch":{"type":"string"},"default_delete_branch_after_merge":{"type":"boolean"},"description":{"type":["string","null"]},"empty":{"type":"boolean"},"enable_lfs":{"type":"boolean"},"full_name":{"type":"string"},"git_size":{"type":"integer","format":"int64"},"has_actions":{"type":"boolean"},"has_code":{"type":"boolean"},"has_issues":{"type":"boolean"},"has_packages":{"type":"boolean"},"has_projects":{"type":"boolean"},"has_pull_requests":{"type":"boolean"},"has_releases":{"type":"boolean"},"has_wiki":{"type":"boolean"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"ignore_whitespace_conflicts":{"type":"boolean"},"is_archived":{"type":"boolean"},"is_fork":{"type":"boolean"},"is_mirror":{"type":"boolean"},"is_private":{"type":"boolean"},"is_template":{"type":"boolean"},"languages":{"type":"array","items":{"type":"string"}},"last_pushed_at":{"type":["string","null"]},"lfs_size":{"type":"integer","format":"int64"},"license_name":{"type":["string","null"]},"licenses":{"type":"array","items":{"type":"string"}},"link":{"type":"string"},"lower_name":{"type":"string"},"name":{"type":"string"},"nums_branches":{"type":"integer","format":"int32"},"nums_commits":{"type":"integer","format":"int32"},"nums_pr":{"type":"integer","format":"int32"},"nums_star":{"type":"integer","format":"int32"},"nums_tags":{"type":"integer","format":"int32"},"nums_watch":{"type":"integer","format":"int32"},"object_format":{"type":"string"},"parent":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RepoView"}]},"primary_language":{"type":["string","null"]},"projects_mode":{"type":"string"},"size":{"type":"integer","format":"int64"},"space":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceSummary"}]},"space_id":{"type":"string","format":"uuid"},"ssh_url":{"type":"string"},"storage_limit_size":{"type":["integer","null"],"format":"int64"},"topics":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"url":{"type":"string"},"website":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ReportView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ResendCodeResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ResetPasswordResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RevokeAllResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RoleOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RolePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RoleView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_RoleView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","name","position","color","version","created_at","created_by","permissions"],"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon_hash":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":"integer","format":"int64"},"space_id":{"type":"string","format":"uuid"},"unicode_emoji":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"version":{"type":"integer","format":"int32"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SavedMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SearchResults":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["data","ok"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RepoSummary"}},"ok":{"type":"boolean"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SetPrimaryEmailResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["email"],"properties":{"email":{"$ref":"#/components/schemas/EmailView"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceBanPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceBanView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceBanView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["space_id","user_id","banned_by","created_at","updated_at","allow_agent_join","allow_speak","allow_push_repo","allow_comment_any"],"properties":{"allow_agent_join":{"type":"boolean"},"allow_comment_any":{"type":"boolean"},"allow_push_repo":{"type":"boolean"},"allow_speak":{"type":"boolean"},"banned_by":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceInvitePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceInviteView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceInviteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","space_id","user_id","email","role_ids","created_at"],"properties":{"accepted_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"revoked_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"space_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceMemberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceMemberView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceMemberView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["space_id","user_id","status","joined_at","created_at","message_notifications","muted","mobile_push","suppress_everyone","suppress_roles","hide_muted_channels"],"properties":{"alias_avatar_url":{"type":["string","null"]},"alias_name":{"type":["string","null"]},"created_at":{"type":"string"},"hide_muted_channels":{"type":"boolean"},"invited_at":{"type":["string","null"]},"invited_by":{"type":["string","null"],"format":"uuid"},"joined_at":{"type":"string"},"last_active_at":{"type":["string","null"]},"left_at":{"type":["string","null"]},"message_notifications":{"$ref":"#/components/schemas/MessageNotifications"},"mobile_push":{"type":"boolean"},"mute_until":{"type":["string","null"]},"muted":{"type":"boolean"},"space_id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SpaceMemberStatus"},"suppress_everyone":{"type":"boolean"},"suppress_roles":{"type":"boolean"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpacePage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SpaceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","owner_id","public","is_active","allow_join","allow_invite","member_count","allow_join_level","member_must_enable_2fa","created_at","updated_at"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"$ref":"#/components/schemas/SpaceAllowJoinLevel"},"avatar_url":{"type":["string","null"]},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_active":{"type":"boolean"},"member_count":{"type":"integer","format":"int64"},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"owner_id":{"type":"string","format":"uuid"},"public":{"type":"boolean"},"updated_at":{"type":"string"},"welcome_message":{"type":["string","null"]}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SshKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_StopwatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","issue_id","user_id","started_at","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"started_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SubscriberPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SubscriberView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Subscription":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SuspensionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SyncResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["repo_id","branches_added","tags_added","commits_added","size_bytes"],"properties":{"branches_added":{"type":"integer","format":"int64"},"commits_added":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"size_bytes":{"type":"integer","format":"int64"},"tags_added":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_SyncStatus":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["repo_id","branches_total","tags_total","commits_total","size","synced_at"],"properties":{"branches_total":{"type":"integer","format":"int64"},"commits_total":{"type":"integer","format":"int64"},"last_pushed_at":{"type":["string","null"]},"primary_language":{"type":["string","null"]},"repo_id":{"type":"string","format":"uuid"},"size":{"type":"integer","format":"int64"},"synced_at":{"type":"string"},"tags_total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagProtectionPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagProtectionView"}},"total":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagProtectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name_pattern","whitelist_usernames","whitelist_teams","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name_pattern":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"whitelist_teams":{"type":"array","items":{"type":"string"}},"whitelist_usernames":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TagView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","repo_id","name","tag_type","commit_sha","commit","message","zipball_url","tarball_url","created_at"],"properties":{"commit":{"$ref":"#/components/schemas/CommitMeta"},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message":{"type":"string"},"name":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"tag_type":{"type":"string"},"tarball_url":{"type":"string"},"zipball_url":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TopicList":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TopicSearchResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicView"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_TreeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["sha","entries"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/TreeEntryView"}},"sha":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UnreadCountResp":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["count"],"properties":{"count":{"type":"integer","format":"int64"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserMe":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","username","display_name","avatar","is_active","is_admin","is_restricted"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"is_active":{"type":"boolean"},"is_admin":{"type":"boolean"},"is_restricted":{"type":"boolean"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserPreferences":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["user_id","theme_mode","in_app_flags","email_flags","push_flags","email_digest","allow_dms_from","allow_mentions_from","show_online_status","created_at","updated_at"],"properties":{"allow_dms_from":{"$ref":"#/components/schemas/Audience"},"allow_mentions_from":{"$ref":"#/components/schemas/Audience"},"created_at":{"type":"string"},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":"boolean"},"email_flags":{"type":"integer","format":"int32"},"in_app_flags":{"type":"integer","format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":"integer","format":"int32"},"show_online_status":{"type":"boolean"},"theme_mode":{"type":"string"},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_UserPublic":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["uid","username","display_name","avatar","visibility","bot","system","created_at"],"properties":{"avatar":{"type":"string"},"bot":{"type":"boolean"},"created_at":{"type":"string"},"display_name":{"type":"string"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"system":{"type":"boolean"},"timezone":{"type":["string","null"]},"uid":{"type":"string","format":"uuid"},"username":{"type":"string"},"visibility":{"$ref":"#/components/schemas/ProfileVisibility"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_AccessKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","token_last_eight","scope","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"},"token_last_eight":{"type":"string"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_AgreementDoc":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["key","version","updated_at","title","content_md"],"properties":{"content_md":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_BlockedSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_CollectionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_DeletionRequestView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_DeviceView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_EmailView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","email","is_activated","is_primary","created_at","updated_at"],"properties":{"activated_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_activated":{"type":"boolean"},"is_primary":{"type":"boolean"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_FollowerSummary":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_GitRef":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","sha","type_"],"properties":{"name":{"type":"string"},"sha":{"type":"string"},"type_":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_IssueTemplate":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","title","content","fields"],"properties":{"content":{"type":"string"},"description":{"type":["string","null"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/IssueTemplateField"}},"name":{"type":"string"},"title":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_MemeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_NotificationView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","notification_type","title","created_at"],"properties":{"actor_uid":{"type":["string","null"],"format":"uuid"},"body":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"notification_type":{"$ref":"#/components/schemas/NotificationType"},"read_at":{"type":["string","null"]},"title":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_OAuthProviderInfo":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["name","display_name","authorize_url"],"properties":{"authorize_url":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostLabelView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PostReactionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestCommentView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestEventView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","event_type","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"pull_request_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PullRequestReviewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_PushSubscriptionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RecentMentionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","message_id","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RecoveryCodeView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"used_at":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_ReportView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_RoleOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SavedMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_ScheduledMessageView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","target_channel_id","payload","scheduled_at","status","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"payload":{"type":"string"},"scheduled_at":{"type":"string"},"status":{"$ref":"#/components/schemas/ScheduledMessageStatus"},"target_channel_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SessionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","kind","is_revoked","created_at","expires_at"],"properties":{"app_id":{"type":["string","null"]},"client_ip_hash":{"type":["string","null"]},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_revoked":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/SessionKind"},"replaced_at":{"type":["string","null"]},"user_agent_hash":{"type":["string","null"]}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SshKeyView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_SuspensionView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_UserMini":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_Vec_UserOverwriteView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"array","items":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_VerifyCodeResult":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["code_row_id"],"properties":{"code_row_id":{"type":"string"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ViewPage":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ViewView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_ViewView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","project_id","creator_id","name","filter","sort_by","layout","is_shared","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"sort_by":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"AppResponseData_WatchView":{"type":"object","required":["code","message","duration","request_id","at","log_id"],"properties":{"at":{"type":"string"},"code":{"type":"integer","format":"int32"},"data":{"type":"object","required":["id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"mode":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"duration":{"type":"string"},"error":{"type":["string","null"]},"log_id":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}},"ApplyDiffPatchFileOptions":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"sha":{"type":["string","null"]}}}]},"ArchiveFormatQuery":{"type":"object","properties":{"format":{"type":["string","null"]},"ref_name":{"type":["string","null"]}}},"ArchiveRepoOption":{"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean"}}},"AssignRoleCmd":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"AttachmentPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AttachmentView"}},"total":{"type":"integer","format":"int64"}}},"AttachmentView":{"type":"object","required":["id","owner_type","owner_id","filename","content_type","size","url","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"filename":{"type":"string"},"id":{"type":"string","format":"uuid"},"owner_id":{"type":"string","format":"uuid"},"owner_type":{"type":"string"},"size":{"type":"integer","format":"int64"},"uploaded_by":{"type":["string","null"],"format":"uuid"},"url":{"type":"string"}}},"Audience":{"type":"string","enum":["everyone","following_only","nobody"]},"AuthorizationUrlResp":{"type":"object","required":["url","temp_key"],"properties":{"temp_key":{"$ref":"#/components/schemas/TempKey"},"url":{"type":"string"}}},"AuthorizeCmd":{"type":"object","required":["provider","code_verifier"],"properties":{"app_id":{"type":["string","null"]},"code_verifier":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"}}},"AvatarFormat":{"type":"string","enum":["jpg","png","webp","gif"]},"AvatarView":{"type":"object","required":["uid","url","format","bytes","updated_at"],"properties":{"bytes":{"type":"integer","format":"int64","minimum":0},"format":{"$ref":"#/components/schemas/AvatarFormat"},"uid":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"url":{"type":"string"}}},"BlobView":{"type":"object","required":["sha","size","encoding","content"],"properties":{"content":{"type":"string"},"encoding":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"BlockedSummary":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"BranchPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchView"}},"total":{"type":"integer","format":"int64"}}},"BranchProtectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BranchProtectionView"}},"total":{"type":"integer","format":"int64"}}},"BranchProtectionView":{"type":"object","required":["id","repo_id","branch_name","rule_name","priority","enable_push","enable_push_whitelist","push_whitelist_usernames","push_whitelist_teams","push_whitelist_deploy_keys","enable_force_push","enable_force_push_allowlist","force_push_allowlist_usernames","force_push_allowlist_teams","force_push_allowlist_deploy_keys","enable_merge_whitelist","merge_whitelist_usernames","merge_whitelist_teams","enable_bypass_allowlist","bypass_allowlist_usernames","bypass_allowlist_teams","enable_approvals_whitelist","approvals_whitelist_usernames","approvals_whitelist_teams","required_approvals","block_on_rejected_reviews","block_on_change_requested_reviews","block_on_outdated_branch","dismiss_stale_approvals","ignore_stale_approvals","require_signed_commits","block_admin_merge_override","protected_file_patterns","unprotected_file_patterns","created_at","updated_at"],"properties":{"approvals_whitelist_teams":{"type":"array","items":{"type":"string"}},"approvals_whitelist_usernames":{"type":"array","items":{"type":"string"}},"block_admin_merge_override":{"type":"boolean"},"block_on_change_requested_reviews":{"type":"boolean"},"block_on_outdated_branch":{"type":"boolean"},"block_on_rejected_reviews":{"type":"boolean"},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":"array","items":{"type":"string"}},"bypass_allowlist_usernames":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string"},"dismiss_stale_approvals":{"type":"boolean"},"enable_approvals_whitelist":{"type":"boolean"},"enable_bypass_allowlist":{"type":"boolean"},"enable_force_push":{"type":"boolean"},"enable_force_push_allowlist":{"type":"boolean"},"enable_merge_whitelist":{"type":"boolean"},"enable_push":{"type":"boolean"},"enable_push_whitelist":{"type":"boolean"},"force_push_allowlist_deploy_keys":{"type":"boolean"},"force_push_allowlist_teams":{"type":"array","items":{"type":"string"}},"force_push_allowlist_usernames":{"type":"array","items":{"type":"string"}},"id":{"type":"string","format":"uuid"},"ignore_stale_approvals":{"type":"boolean"},"merge_whitelist_teams":{"type":"array","items":{"type":"string"}},"merge_whitelist_usernames":{"type":"array","items":{"type":"string"}},"priority":{"type":"integer","format":"int64"},"protected_file_patterns":{"type":"string"},"push_whitelist_deploy_keys":{"type":"boolean"},"push_whitelist_teams":{"type":"array","items":{"type":"string"}},"push_whitelist_usernames":{"type":"array","items":{"type":"string"}},"repo_id":{"type":"string","format":"uuid"},"require_signed_commits":{"type":"boolean"},"required_approvals":{"type":"integer","format":"int32"},"rule_name":{"type":"string"},"unprotected_file_patterns":{"type":"string"},"updated_at":{"type":"string"}}},"BranchView":{"type":"object","required":["id","repo_id","name","commit_sha","is_protected","protected","required_approvals","enable_status_check","status_check_contexts","user_can_push","user_can_merge","effective_branch_protection_name","is_deleted","created_at","updated_at"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitMeta"}]},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"effective_branch_protection_name":{"type":"string"},"enable_status_check":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"is_deleted":{"type":"boolean"},"is_protected":{"type":"boolean"},"name":{"type":"string"},"protected":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"required_approvals":{"type":"integer","format":"int64"},"status_check_contexts":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"user_can_merge":{"type":"boolean"},"user_can_push":{"type":"boolean"}}},"CallbackCmd":{"type":"object","required":["provider","code","state","temp_key_value"],"properties":{"app_id":{"type":["string","null"]},"code":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProvider"},"state":{"type":"string"},"temp_key_value":{"type":"string"}}},"ChangeFileEntry":{"type":"object","required":["operation","path"],"properties":{"content":{"type":["string","null"]},"from_path":{"type":["string","null"]},"operation":{"type":"string"},"path":{"type":"string"},"sha":{"type":["string","null"]}}},"ChangeFilesOptions":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/ChangeFileEntry"}}}}]},"ChannelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ChannelView"}},"total":{"type":"integer","format":"int64"}}},"ChannelSummary":{"type":"object","required":["id","space_id","name"],"properties":{"display_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"space_id":{"type":"string","format":"uuid"}}},"ChannelView":{"type":"object","required":["id","name","kind","position","is_archived","created_at","updated_at","created_by"],"properties":{"archived_at":{"type":["string","null"]},"archived_by":{"type":["string","null"],"format":"uuid"},"color":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"},"position":{"type":"integer","format":"int32"},"purpose":{"type":["string","null"]},"space_id":{"type":["string","null"],"format":"uuid"},"topic":{"type":["string","null"]},"updated_at":{"type":"string"}}},"CloseIssueOption":{"type":"object","required":["closed"],"properties":{"closed":{"type":"boolean"}}},"CollaboratorPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollaboratorView"}},"total":{"type":"integer","format":"int64"}}},"CollaboratorView":{"type":"object","required":["id","repo_id","user_id","mode","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"CollectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollectionView"}},"total":{"type":"integer","format":"int64"}}},"CollectionView":{"type":"object","required":["id","channel_id","name","nums_open_issue","nums_closed_issue","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_issue":{"type":"integer","format":"int64"},"nums_open_issue":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"CombinedStatusView":{"type":"object","required":["sha","state","statuses","total_count"],"properties":{"sha":{"type":"string"},"state":{"type":"string"},"statuses":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total_count":{"type":"integer","format":"int64"}}},"CommentPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommentView"}},"total":{"type":"integer","format":"int64"}}},"CommentView":{"type":"object","required":["id","poster_id","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"poster_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"CommitDateOptions":{"type":"object","properties":{"author":{"type":["string","null"]},"committer":{"type":["string","null"]}}},"CommitDiffPayload":{"type":"object","required":["sha","format","content"],"properties":{"content":{"type":"string"},"format":{"type":"string"},"sha":{"type":"string"}}},"CommitMeta":{"type":"object","required":["sha","message"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"sha":{"type":"string"},"tree_sha":{"type":["string","null"]}}},"CommitStatusPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitStatusView"}},"total":{"type":"integer","format":"int64"}}},"CommitStatusView":{"type":"object","required":["id","repo_id","sha","state","context","url","creator","created_at"],"properties":{"context":{"type":"string"},"created_at":{"type":"string"},"creator":{"$ref":"#/components/schemas/CommitUserSummary"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"state":{"type":"string"},"target_url":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"url":{"type":"string"}}},"CommitSummary":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserMini"}]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserMini"}]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"CommitUserSummary":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}},"CommitView":{"type":"object","required":["sha","message","parent_shas","tree_sha"],"properties":{"author_email":{"type":["string","null"]},"author_name":{"type":["string","null"]},"authored_at":{"type":["string","null"]},"committed_at":{"type":["string","null"]},"committer_email":{"type":["string","null"]},"committer_name":{"type":["string","null"]},"message":{"type":"string"},"parent_shas":{"type":"array","items":{"type":"string"}},"sha":{"type":"string"},"tree_sha":{"type":"string"}}},"CommitsResponse":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommitSummary"}},"total":{"type":"integer","format":"int64"}}},"CompareFileDiff":{"type":"object","required":["path","additions","deletions","status"],"properties":{"additions":{"type":"integer","format":"int64"},"deletions":{"type":"integer","format":"int64"},"path":{"type":"string"},"status":{"type":"string"}}},"CompareView":{"type":"object","required":["base","head","total_commits","ahead_by","behind_by","files"],"properties":{"ahead_by":{"type":"integer","format":"int64"},"base":{"type":"string"},"behind_by":{"type":"integer","format":"int64"},"files":{"type":"array","items":{"$ref":"#/components/schemas/CompareFileDiff"}},"head":{"type":"string"},"merge_base":{"type":["string","null"]},"total_commits":{"type":"integer","format":"int64"}}},"ConfirmEmailChangeCmd":{"type":"object","required":["ticket_id"],"properties":{"ticket_id":{"type":"string","format":"uuid"}}},"ContentHistoryPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentHistoryView"}},"total":{"type":"integer","format":"int64"}}},"ContentHistoryView":{"type":"object","required":["id","issue_id","poster_id","edited_at","created_at"],"properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"content_after":{"type":["string","null"]},"content_before":{"type":["string","null"]},"created_at":{"type":"string"},"edited_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"poster_id":{"type":"string","format":"uuid"}}},"ContentsExtResponse":{"type":"object","required":["dir_contents"],"properties":{"dir_contents":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}},"file_contents":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ContentsResponse"}]}}},"ContentsListResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"ContentsQuery":{"type":"object","properties":{"ref":{"type":["string","null"]}}},"ContentsResponse":{"type":"object","required":["name","path","sha","type","size"],"properties":{"content":{"type":["string","null"]},"download_url":{"type":["string","null"]},"encoding":{"type":["string","null"]},"git_url":{"type":["string","null"]},"html_url":{"type":["string","null"]},"last_author_date":{"type":["string","null"]},"last_commit_message":{"type":["string","null"]},"last_commit_sha":{"type":["string","null"]},"last_committer_date":{"type":["string","null"]},"lfs_oid":{"type":["string","null"]},"lfs_size":{"type":["integer","null"],"format":"int64"},"links":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/FileLinksResponse"}]},"name":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":"integer","format":"int64"},"submodule_git_url":{"type":["string","null"]},"target":{"type":["string","null"]},"type":{"type":"string"},"url":{"type":["string","null"]}}},"CreateAccessKeyCmd":{"type":"object","required":["name","scope"],"properties":{"name":{"type":"string"},"scope":{"$ref":"#/components/schemas/AccessKeyScope"}}},"CreateAccessKeyResp":{"type":"object","required":["key","token"],"properties":{"key":{"$ref":"#/components/schemas/AccessKeyView"},"token":{"type":"string"}}},"CreateBanCmd":{"type":"object","required":["user_id"],"properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"CreateBranchOption":{"type":"object","required":["new_branch_name"],"properties":{"new_branch_name":{"type":"string"},"old_branch_name":{"type":["string","null"]},"old_ref_name":{"type":["string","null"]}}},"CreateBranchProtectionOption":{"type":"object","required":["branch_name"],"properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_name":{"type":"string"},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"rule_name":{"type":["string","null"]},"unprotected_file_patterns":{"type":["string","null"]}}},"CreateCollectionOption":{"type":"object","required":["space_id","name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"CreateCommentOption":{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"parent_id":{"type":["string","null"],"format":"uuid"}}},"CreateDependencyOption":{"type":"object","required":["dependency_id"],"properties":{"dependency_id":{"type":"string","format":"uuid"}}},"CreateDeployKeyOption":{"type":"object","required":["title","key"],"properties":{"key":{"type":"string"},"read_only":{"type":["boolean","null"]},"title":{"type":"string"}}},"CreateDocumentCmd":{"type":"object","required":["title","slug"],"properties":{"content":{"type":"string"},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"}}},"CreateFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}}]},"CreateInviteCmd":{"type":"object","required":["role_ids"],"properties":{"email":{"type":["string","null"]},"expires_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"user_id":{"type":["string","null"],"format":"uuid"}}},"CreateIssueOption":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":"string"}}},"CreateLabelOption":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"}}},"CreateMemberOption":{"type":"object","required":["user_id","kind"],"properties":{"kind":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"CreateMentionOption":{"type":"object","required":["is_everyone","is_here"],"properties":{"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"CreateMilestoneOption":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"name":{"type":"string"}}},"CreatePinOption":{"type":"object","required":["issue_id","pin_order"],"properties":{"issue_id":{"type":"string","format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"CreatePostBoardOption":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"}}},"CreatePostLabelOption":{"type":"object","required":["name","color"],"properties":{"color":{"type":"string"},"name":{"type":"string"}}},"CreatePostOption":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string"},"title":{"type":"string"}}},"CreatePostReactionOption":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"CreateProjectCmd":{"type":"object","required":["space_id","name"],"properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"parent_dir":{"type":["string","null"],"format":"uuid"},"space_id":{"type":"string","format":"uuid"},"target_date":{"type":["string","null"],"format":"date"}}},"CreatePullRequestCommentOption":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]}}},"CreatePullRequestOption":{"type":"object","required":["title","head","base"],"properties":{"base":{"type":"string"},"body":{"type":["string","null"]},"head":{"type":"string"},"title":{"type":"string"}}},"CreateReactionOption":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}},"CreateReleaseOption":{"type":"object","required":["tag_name","title"],"properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]},"title":{"type":"string"}}},"CreateReplyOption":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"parent_reply_id":{"type":["string","null"],"format":"uuid"}}},"CreateRepoOption":{"type":"object","required":["space_id","name"],"properties":{"auto_init":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"gitignores":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"issue_labels":{"type":["string","null"]},"license_name":{"type":["string","null"]},"name":{"type":"string"},"object_format":{"type":["string","null"]},"parent_dir":{"type":["string","null"],"format":"uuid"},"readme":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"CreateRepoRelOption":{"type":"object","required":["repo_id"],"properties":{"repo_id":{"type":"string","format":"uuid"}}},"CreateRoleCmd":{"type":"object","required":["name","permissions"],"properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"CreateSpaceCmd":{"type":"object","required":["name"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"public":{"type":"boolean"},"welcome_message":{"type":["string","null"]}}},"CreateStatusOption":{"type":"object","required":["state","context"],"properties":{"context":{"type":"string"},"description":{"type":["string","null"]},"state":{"type":"string"},"target_url":{"type":["string","null"]}}},"CreateTagOption":{"type":"object","required":["tag_name"],"properties":{"message":{"type":["string","null"]},"tag_name":{"type":"string"},"target":{"type":["string","null"]}}},"CreateTagProtectionOption":{"type":"object","required":["name_pattern"],"properties":{"name_pattern":{"type":"string"},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"CreateViewCmd":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"sort_by":{"type":"string"}}},"DeleteFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["sha"],"properties":{"sha":{"type":"string"}}}]},"DeletionRequestView":{"type":"object","required":["id","user_id","status","created_at","updated_at"],"properties":{"cancelled_at":{"type":["string","null"]},"completed_at":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"scheduled_for":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/DeletionStatus"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"DeletionStatus":{"type":"string","enum":["pending","scheduled","completed","cancelled"]},"DependencyView":{"type":"object","required":["id","issue_id","dependency_id","created_at"],"properties":{"created_at":{"type":"string"},"dependency_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"}}},"DeployKeyPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeployKeyView"}},"total":{"type":"integer","format":"int64"}}},"DeployKeyView":{"type":"object","required":["id","key_id","repo_id","title","key_type","fingerprint","content","url","read_only","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_id":{"type":"integer","format":"int64"},"key_type":{"type":"string"},"last_used_at":{"type":["string","null"]},"read_only":{"type":"boolean"},"repo_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"url":{"type":"string"}}},"DeviceView":{"type":"object","required":["id","is_trusted","first_seen_at","last_seen_at","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"device_name":{"type":["string","null"]},"device_type":{"type":["string","null"]},"first_seen_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_trusted":{"type":"boolean"},"last_seen_at":{"type":"string"},"os":{"type":["string","null"]},"updated_at":{"type":"string"},"user_agent":{"type":["string","null"]}}},"DocumentPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DocumentView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"DocumentView":{"type":"object","required":["id","project_id","creator_id","title","slug","content","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"last_editor_id":{"type":["string","null"],"format":"uuid"},"parent_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"EditBranchProtectionOption":{"type":"object","properties":{"approvals_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"approvals_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"block_admin_merge_override":{"type":["boolean","null"]},"block_on_change_requested_reviews":{"type":["boolean","null"]},"block_on_outdated_branch":{"type":["boolean","null"]},"block_on_rejected_reviews":{"type":["boolean","null"]},"branch_pattern":{"type":["string","null"]},"bypass_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"bypass_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"dismiss_stale_approvals":{"type":["boolean","null"]},"enable_approvals_whitelist":{"type":["boolean","null"]},"enable_bypass_allowlist":{"type":["boolean","null"]},"enable_force_push":{"type":["boolean","null"]},"enable_force_push_allowlist":{"type":["boolean","null"]},"enable_merge_whitelist":{"type":["boolean","null"]},"enable_push":{"type":["boolean","null"]},"enable_push_whitelist":{"type":["boolean","null"]},"force_push_allowlist_deploy_keys":{"type":["boolean","null"]},"force_push_allowlist_teams":{"type":["array","null"],"items":{"type":"string"}},"force_push_allowlist_usernames":{"type":["array","null"],"items":{"type":"string"}},"ignore_stale_approvals":{"type":["boolean","null"]},"merge_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"merge_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"priority":{"type":["integer","null"],"format":"int64"},"protected_file_patterns":{"type":["string","null"]},"push_whitelist_deploy_keys":{"type":["boolean","null"]},"push_whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"push_whitelist_usernames":{"type":["array","null"],"items":{"type":"string"}},"require_signed_commits":{"type":["boolean","null"]},"required_approvals":{"type":["integer","null"],"format":"int32"},"unprotected_file_patterns":{"type":["string","null"]}}},"EditReleaseOption":{"type":"object","properties":{"content":{"type":["string","null"]},"is_draft":{"type":["boolean","null"]},"is_prerelease":{"type":["boolean","null"]},"tag_name":{"type":["string","null"]},"target":{"type":["string","null"]},"title":{"type":["string","null"]}}},"EditTagProtectionOption":{"type":"object","properties":{"name_pattern":{"type":["string","null"]},"whitelist_teams":{"type":["array","null"],"items":{"type":"string"}},"whitelist_usernames":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}}},"EmailChangeTicketStatus":{"type":"string","enum":["pending","verified","completed","cancelled"]},"EmailChangeTicketView":{"type":"object","required":["id","new_email","status","expires_at","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"new_email":{"type":"string"},"status":{"$ref":"#/components/schemas/EmailChangeTicketStatus"},"used_at":{"type":["string","null"]}}},"EmailView":{"type":"object","required":["id","email","is_activated","is_primary","created_at","updated_at"],"properties":{"activated_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_activated":{"type":"boolean"},"is_primary":{"type":"boolean"},"updated_at":{"type":"string"}}},"ErrorBody":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"EventPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventView"}},"total":{"type":"integer","format":"int64"}}},"EventView":{"type":"object","required":["id","user_id","event_type","created_at"],"properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"new_ref":{"type":["string","null"]},"new_title":{"type":["string","null"]},"old_ref":{"type":["string","null"]},"old_title":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"ExternalTracker":{"type":"object","required":["external_tracker_url","external_tracker_format","external_tracker_style"],"properties":{"external_tracker_format":{"type":"string"},"external_tracker_style":{"type":"string"},"external_tracker_url":{"type":"string"}}},"ExternalWiki":{"type":"object","required":["external_wiki_url"],"properties":{"external_wiki_url":{"type":"string"}}},"FavoritePage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"FavoriteView":{"type":"object","required":["id","project_id","user_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"folder":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"project_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"FileDeleteResponse":{"type":"object","properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"content":{}}},"FileLinksResponse":{"type":"object","properties":{"git":{"type":["string","null"]},"html":{"type":["string","null"]},"self":{"type":["string","null"]}}},"FileOptions":{"type":"object","properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GitIdentity"}]},"branch":{"type":["string","null"]},"committer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/GitIdentity"}]},"dates":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitDateOptions"}]},"force_push":{"type":["boolean","null"]},"message":{"type":["string","null"]},"new_branch":{"type":["string","null"]},"signoff":{"type":["boolean","null"]}}},"FilesResponse":{"type":"object","required":["files"],"properties":{"commit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CommitSummary"}]},"files":{"type":"array","items":{"$ref":"#/components/schemas/ContentsResponse"}}}},"FollowerSummary":{"type":"object","required":["user","since"],"properties":{"since":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"ForgotPasswordCmd":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"ForgotPasswordResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"ForkRepoOption":{"type":"object","required":["to_channel_id"],"properties":{"description":{"type":["string","null"]},"name":{"type":["string","null"]},"to_channel_id":{"type":"string","format":"uuid"}}},"ForkView":{"type":"object","required":["id","name","full_name","owner","private","fork","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"fork":{"type":"boolean"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/UserMini"},"private":{"type":"boolean"},"updated_at":{"type":"string"}}},"ForksResponse":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ForkView"}},"total":{"type":"integer","format":"int64"}}},"GenerateRepoOption":{"type":"object","required":["to_channel_id","name"],"properties":{"description":{"type":["string","null"]},"is_private":{"type":["boolean","null"]},"name":{"type":"string"},"to_channel_id":{"type":"string","format":"uuid"}}},"GitIdentity":{"type":"object","required":["name","email"],"properties":{"date":{"type":["string","null"]},"email":{"type":"string"},"name":{"type":"string"}}},"GitRef":{"type":"object","required":["name","sha","type_"],"properties":{"name":{"type":"string"},"sha":{"type":"string"},"type_":{"type":"string"}}},"HealthStatus":{"type":"object","required":["status","service"],"properties":{"service":{"type":"string"},"status":{"type":"string"}}},"InternalTracker":{"type":"object","required":["enable_time_tracker","allow_only_contributors_to_track_time","enable_issue_dependencies"],"properties":{"allow_only_contributors_to_track_time":{"type":"boolean"},"enable_issue_dependencies":{"type":"boolean"},"enable_time_tracker":{"type":"boolean"}}},"IssueConfig":{"type":"object","required":["blank_issues_enabled"],"properties":{"blank_issues_enabled":{"type":"boolean"},"contact_links":{}}},"IssueConfigValidation":{"type":"object","required":["valid"],"properties":{"message":{"type":["string","null"]},"valid":{"type":"boolean"}}},"IssuePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/IssueView"}},"total":{"type":"integer","format":"int64"}}},"IssueState":{"type":"string","enum":["open","closed"]},"IssueTemplate":{"type":"object","required":["name","title","content","fields"],"properties":{"content":{"type":"string"},"description":{"type":["string","null"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/IssueTemplateField"}},"name":{"type":"string"},"title":{"type":"string"}}},"IssueTemplateField":{"type":"object","required":["type_","id","name"],"properties":{"description":{"type":["string","null"]},"id":{"type":"string"},"name":{"type":"string"},"required":{"type":["boolean","null"]},"type_":{"type":"string"},"validations":{}}},"IssueUserView":{"type":"object","required":["id","user_id","issue_id","is_read","is_mentioned","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_mentioned":{"type":"boolean"},"is_read":{"type":"boolean"},"issue_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"IssueView":{"type":"object","required":["id","collection_id","autoincrement_id","author_id","title","body","state","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"autoincrement_id":{"type":"integer","format":"int32"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"milestone_id":{"type":["string","null"],"format":"uuid"},"state":{"$ref":"#/components/schemas/IssueState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"LabelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LabelView"}},"total":{"type":"integer","format":"int64"}}},"LabelView":{"type":"object","required":["id","channel_id","name","exclusive","exclusive_order","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"exclusive":{"type":"boolean"},"exclusive_order":{"type":"integer","format":"int32"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"LanguagesResponse":{"type":"object","required":["languages"],"properties":{"languages":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"propertyNames":{"type":"string"}}}},"LicensesResponse":{"type":"object","required":["licenses"],"properties":{"licenses":{"type":"array","items":{"type":"string"}}}},"LinkKind":{"type":"string","enum":["related","duplicate","blocks","blocked_by"]},"LinkPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LinkView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"LinkView":{"type":"object","required":["id","project_id","related_project_id","kind","created_by","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/LinkKind"},"project_id":{"type":"string","format":"uuid"},"related_project_id":{"type":"string","format":"uuid"}}},"ListActivityQuery":{"type":"object","properties":{"page":{"type":"integer","format":"int64","minimum":0},"per_page":{"type":"integer","format":"int64","minimum":0},"verb":{"type":["string","null"]}}},"ListAttachmentQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListBlocksQuery":{"type":"object","properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0}}},"ListBranchProtectionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListBranchQuery":{"type":"object","properties":{"keyword":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListCollaboratorQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListCollectionQuery":{"type":"object","properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListCommentQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"parent_id":{"type":["string","null"],"format":"uuid"}}},"ListContentHistoryQuery":{"type":"object","properties":{"comment_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListDeployKeyQuery":{"type":"object","properties":{"fingerprint":{"type":["string","null"]},"key_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListEventQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListFollowersQuery":{"type":"object","required":["target_uid"],"properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"target_uid":{"type":"string","format":"uuid"}}},"ListFollowingQuery":{"type":"object","required":["user_uid"],"properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"user_uid":{"type":"string","format":"uuid"}}},"ListIssueQuery":{"type":"object","properties":{"author_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"milestone_id":{"type":["string","null"],"format":"uuid"},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IssueState"}]}}},"ListLabelQuery":{"type":"object","properties":{"is_archived":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListMemberQuery":{"type":"object","properties":{"kind":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListMilestoneQuery":{"type":"object","properties":{"is_closed":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"ListNotificationsQuery":{"type":"object","properties":{"cursor":{"type":["string","null"],"format":"uuid"},"limit":{"type":"integer","minimum":0},"notification_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NotificationType"}]},"unread_only":{"type":["boolean","null"]}}},"ListPostQuery":{"type":"object","properties":{"author_id":{"type":["string","null"],"format":"uuid"},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]}}},"ListProjectQuery":{"type":"object","required":["space_id"],"properties":{"lead_id":{"type":["string","null"],"format":"uuid"},"page":{"type":"integer","format":"int64","minimum":0},"per_page":{"type":"integer","format":"int64","minimum":0},"q":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"starred_only":{"type":["boolean","null"]},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]}}},"ListPullRequestQuery":{"type":"object","properties":{"keyword":{"type":["string","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"state":{"type":["string","null"]}}},"ListReactionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListReleaseQuery":{"type":"object","properties":{"draft":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"prerelease":{"type":["boolean","null"]}}},"ListRepoQuery":{"type":"object","properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"is_archived":{"type":["boolean","null"]},"is_private":{"type":["boolean","null"]},"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"owner_user_id":{"type":["string","null"],"format":"uuid"},"q":{"type":["string","null"]}}},"ListSessionsQuery":{"type":"object","properties":{"app_id":{"type":["string","null"]},"include_revoked":{"type":"boolean"}}},"ListStatusQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"sort":{"type":["string","null"]},"state":{"type":["string","null"]}}},"ListSubscriberQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTagProtectionQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTagQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0}}},"ListTrackedTimeQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"offset":{"type":["integer","null"],"format":"int64","minimum":0},"user_id":{"type":["string","null"],"format":"uuid"}}},"LoginCmd":{"type":"object","required":["identifier","password","pow"],"properties":{"app_id":{"type":["string","null"]},"identifier":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"LoginResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user":{"$ref":"#/components/schemas/UserPublic"}}},"LogoutCmd":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string"}}},"LogoutResp":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"boolean"}}},"MarkAllReadResp":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"MarkReadCmd":{"type":"object","required":["notification_ids"],"properties":{"notification_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"MarkReadResp":{"type":"object","required":["marked"],"properties":{"marked":{"type":"integer","format":"int64","minimum":0}}},"MemberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MemberView"}},"total":{"type":"integer","format":"int64"}}},"MemberRole":{"type":"string","enum":["owner","lead","contributor","viewer"]},"MemberView":{"type":"object","required":["id","issue_id","user_id","kind","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"MemeView":{"type":"object","required":["id","name","content_type","url","size","created_at"],"properties":{"content_type":{"type":"string"},"created_at":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"MergePullRequestOption":{"type":"object","required":["style"],"properties":{"commit_message":{"type":["string","null"]},"commit_title":{"type":["string","null"]},"delete_branch_after_merge":{"type":"boolean"},"style":{"$ref":"#/components/schemas/MergeStyle"}}},"MergeStyle":{"type":"string","enum":["fast_forward","rebase","rebase_merge","squash","merge","manually_merged"]},"MergeUpstreamRequest":{"type":"object","required":["branch"],"properties":{"branch":{"type":"string"},"ff_only":{"type":["boolean","null"]}}},"MergeUpstreamResponse":{"type":"object","required":["merge_type"],"properties":{"merge_type":{"type":"string"}}},"MergeView":{"type":"object","required":["sha","merged"],"properties":{"merged":{"type":"boolean"},"message":{"type":["string","null"]},"sha":{"type":"string"}}},"MessageNotifications":{"type":"string","enum":["all","mentions","nothing"]},"MilestonePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneView"}},"total":{"type":"integer","format":"int64"}}},"MilestoneView":{"type":"object","required":["id","collection_id","name","is_closed","num_issues","num_closed_issues","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_closed":{"type":"boolean"},"name":{"type":"string"},"num_closed_issues":{"type":"integer","format":"int32"},"num_issues":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"]}}},"NewPinAllowedResponse":{"type":"object","required":["allowed"],"properties":{"allowed":{"type":"boolean"}}},"NoteView":{"type":"object","required":["sha","message"],"properties":{"message":{"type":"string"},"sha":{"type":"string"}}},"NotificationType":{"type":"string","enum":["mention","reply","follow","invite","assignment","system"]},"NotificationView":{"type":"object","required":["id","notification_type","title","created_at"],"properties":{"actor_uid":{"type":["string","null"],"format":"uuid"},"body":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"notification_type":{"$ref":"#/components/schemas/NotificationType"},"read_at":{"type":["string","null"]},"title":{"type":"string"}}},"OAuthLoginResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in","user_id","auto_registered"],"properties":{"access_token":{"type":"string"},"auto_registered":{"type":"boolean"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"user_id":{"type":"string"}}},"OAuthProvider":{"type":"string","enum":["google","github","apple"]},"OAuthProviderInfo":{"type":"object","required":["name","display_name","authorize_url"],"properties":{"authorize_url":{"type":"string"},"display_name":{"type":"string"},"name":{"type":"string"}}},"Permission":{"type":"object","required":["admin","push","pull"],"properties":{"admin":{"type":"boolean"},"pull":{"type":"boolean"},"push":{"type":"boolean"}}},"PinView":{"type":"object","required":["id","collection_id","pin_order","created_at"],"properties":{"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"pin_order":{"type":"integer","format":"int32"}}},"PostBoardPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostBoardView"}},"total":{"type":"integer","format":"int64"}}},"PostBoardView":{"type":"object","description":"A post board (collection) hosting posts for a space.","required":["id","channel_id","name","nums_open_post","nums_closed_post","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"nums_closed_post":{"type":"integer","format":"int64"},"nums_open_post":{"type":"integer","format":"int64"},"updated_at":{"type":["string","null"]}}},"PostLabelPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostLabelView"}},"total":{"type":"integer","format":"int64"}}},"PostLabelView":{"type":"object","required":["id","channel_id","name","color","is_archived","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"color":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_archived":{"type":"boolean"},"name":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PostMentionView":{"type":"object","required":["id","target","target_id","is_everyone","is_here","created_at"],"properties":{"channel_id":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_everyone":{"type":"boolean"},"is_here":{"type":"boolean"},"role_id":{"type":["string","null"],"format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":["string","null"],"format":"uuid"}}},"PostPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostView"}},"total":{"type":"integer","format":"int64"}}},"PostReactionView":{"type":"object","required":["id","target","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/PostTargetView"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"PostReplyPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PostReplyView"}},"total":{"type":"integer","format":"int64"}}},"PostReplyView":{"type":"object","required":["id","post_id","author_id","body","is_pinned","created_at"],"properties":{"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"created_at":{"type":"string"},"deleted_at":{"type":["string","null"]},"deleted_by":{"type":["string","null"],"format":"uuid"},"edited_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"parent_reply_id":{"type":["string","null"],"format":"uuid"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]}}},"PostStatusView":{"type":"string","enum":["open","closed","archived","locked"]},"PostTargetView":{"type":"string","enum":["post","reply"]},"PostView":{"type":"object","description":"A single post (thread).","required":["id","collection_id","number","author_id","title","body","status","is_pinned","reply_count","created_at"],"properties":{"archived_at":{"type":["string","null"]},"author_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"closed_at":{"type":["string","null"]},"collection_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_pinned":{"type":"boolean"},"last_reply_at":{"type":["string","null"]},"last_reply_by":{"type":["string","null"],"format":"uuid"},"number":{"type":"integer","format":"int64"},"reply_count":{"type":"integer","format":"int32"},"status":{"$ref":"#/components/schemas/PostStatusView"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PostWatchView":{"type":"object","required":["id","post_id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"mode":{"type":"string"},"post_id":{"type":"string","format":"uuid"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PowChallengeResp":{"type":"object","required":["challenge","ttl_seconds"],"properties":{"challenge":{"type":"string"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0}}},"PowProof":{"type":"object","required":["challenge","solution"],"properties":{"challenge":{"type":"string"},"solution":{"type":"string"}}},"PrState":{"type":"string","enum":["open","closed","merged"]},"ProfileView":{"type":"object","required":["user_id","show_email","show_location","show_real_name","show_activity","updated_at"],"properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":"boolean"},"show_email":{"type":"boolean"},"show_location":{"type":"boolean"},"show_real_name":{"type":"boolean"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"},"website":{"type":["string","null"]}}},"ProfileVisibility":{"type":"string","enum":["public","registered_only","members_only","private"]},"ProjectHealth":{"type":"string","enum":["on_track","at_risk","off_track","none"]},"ProjectPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ProjectState":{"type":"string","enum":["backlog","planned","in_progress","paused","completed","cancelled"]},"ProjectView":{"type":"object","required":["id","space_id","creator_id","name","state","health","sort_order","starred","created_at"],"properties":{"cancelled_at":{"type":["string","null"],"format":"date-time"},"color":{"type":["string","null"]},"completed_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"health":{"$ref":"#/components/schemas/ProjectHealth"},"icon":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"space_id":{"type":"string","format":"uuid"},"starred":{"type":"integer","format":"int32"},"started_at":{"type":["string","null"],"format":"date-time"},"state":{"$ref":"#/components/schemas/ProjectState"},"target_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"PublisherSummary":{"type":"object","required":["id","name","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"},"name":{"type":"string"}}},"PullRequestCommentView":{"type":"object","required":["id","pull_request_id","user_id","body","created_at"],"properties":{"body":{"type":"string"},"commit_sha":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"line":{"type":["integer","null"],"format":"int32"},"path":{"type":["string","null"]},"pull_request_id":{"type":"string","format":"uuid"},"review_id":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PullRequestEventView":{"type":"object","required":["id","pull_request_id","user_id","event_type","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"event_type":{"type":"string"},"id":{"type":"string","format":"uuid"},"pull_request_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"PullRequestPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PullRequestView"}},"total":{"type":"integer","format":"int64"}}},"PullRequestReviewView":{"type":"object","required":["id","pull_request_id","user_id","official","state","created_at"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"official":{"type":"boolean"},"pull_request_id":{"type":"string","format":"uuid"},"state":{"$ref":"#/components/schemas/ReviewState"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"PullRequestView":{"type":"object","required":["id","repo_id","number","title","head_branch","base_branch","author_id","state","is_locked","has_merged","created_at","comments_count","reviews_count"],"properties":{"author_id":{"type":"string","format":"uuid"},"base_branch":{"type":"string"},"base_sha":{"type":["string","null"]},"body":{"type":["string","null"]},"closed_at":{"type":["string","null"]},"comments_count":{"type":"integer","format":"int64"},"created_at":{"type":"string"},"has_merged":{"type":"boolean"},"head_branch":{"type":"string"},"head_sha":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_locked":{"type":"boolean"},"mergeable":{"type":["boolean","null"]},"mergeable_state":{"type":["string","null"]},"merged_at":{"type":["string","null"]},"merged_commit_sha":{"type":["string","null"]},"merger_id":{"type":["string","null"]},"number":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"reviews_count":{"type":"integer","format":"int64"},"state":{"$ref":"#/components/schemas/PrState"},"title":{"type":"string"},"updated_at":{"type":["string","null"]}}},"PushPlatform":{"type":"string","enum":["web_push","android_fcm","ios_apns"]},"PushSubscriptionView":{"type":"object","required":["id","platform","endpoint","created_at"],"properties":{"created_at":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string","format":"uuid"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"ReactionAggView":{"type":"object","required":["emoji","count","user_ids"],"properties":{"count":{"type":"integer","format":"int64"},"emoji":{"type":"string"},"user_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"ReactionScope":{"type":"string","enum":["issue","comment"]},"ReactionView":{"type":"object","required":["id","scope","target_id","user_id","emoji","created_at"],"properties":{"created_at":{"type":"string"},"emoji":{"type":"string"},"id":{"type":"string","format":"uuid"},"scope":{"$ref":"#/components/schemas/ReactionScope"},"target_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"RecentMentionView":{"type":"object","required":["id","channel_id","message_id","created_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"ReclaimCmd":{"type":"object","required":["email","pow"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"}}},"ReclaimResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"RecoveryCodeView":{"type":"object","required":["id","created_at"],"properties":{"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"used_at":{"type":["string","null"]}}},"RefreshCmd":{"type":"object","required":["refresh_token"],"properties":{"app_id":{"type":["string","null"]},"refresh_token":{"type":"string"}}},"RefreshResp":{"type":"object","required":["access_token","refresh_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"token_type":{"type":"string"}}},"RegenerateRecoveryResp":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","items":{"type":"string"}}}},"RegisterCmd":{"type":"object","required":["email","password","pow"],"properties":{"accept_agreements":{"type":"array","items":{"type":"string"}},"email":{"type":"string"},"password":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"username":{"type":["string","null"]}}},"RegisterResp":{"type":"object","required":["uid","pending","temp_key","purpose"],"properties":{"pending":{"type":"boolean"},"purpose":{"type":"string"},"temp_key":{"$ref":"#/components/schemas/TempKey"},"uid":{"type":"string"}}},"ReleaseAttachment":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"ReleaseAttachmentListResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachmentView"}}}},"ReleaseAttachmentView":{"type":"object","required":["id","name","size","download_url","created_at"],"properties":{"created_at":{"type":"string"},"download_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"ReleasePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseView"}},"total":{"type":"integer","format":"int64"}}},"ReleaseView":{"type":"object","required":["id","repo_id","tag_name","target","title","sha","num_commits","is_draft","is_prerelease","is_tag","url","html_url","tarball_url","zipball_url","upload_url","publisher","attachments","created_at","updated_at"],"properties":{"attachments":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAttachment"}},"content":{"type":["string","null"]},"created_at":{"type":"string"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_draft":{"type":"boolean"},"is_prerelease":{"type":"boolean"},"is_tag":{"type":"boolean"},"num_commits":{"type":"integer","format":"int32"},"publisher":{"$ref":"#/components/schemas/UserSummary"},"repo_id":{"type":"string","format":"uuid"},"sha":{"type":"string"},"tag_name":{"type":"string"},"tarball_url":{"type":"string"},"target":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string"},"upload_url":{"type":"string"},"url":{"type":"string"},"zipball_url":{"type":"string"}}},"RenameBranchOption":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"RenameRepoOption":{"type":"object","required":["new_name"],"properties":{"new_name":{"type":"string"}}},"RepoCollaboratorPermission":{"type":"object","required":["permission","role","user"],"properties":{"permission":{"type":"string"},"role":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"}}},"RepoPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RepoView"}},"total":{"type":"integer","format":"int64"}}},"RepoRelView":{"type":"object","required":["id","issue_id","repo_id","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"repo_id":{"type":"string","format":"uuid"}}},"RepoSummary":{"type":"object","required":["id","name","full_name","empty","private","fork","template","mirror","size","stars_count","forks_count","watchers_count","open_issues_count"],"properties":{"description":{"type":["string","null"]},"empty":{"type":"boolean"},"fork":{"type":"boolean"},"forks_count":{"type":"integer","format":"int32"},"full_name":{"type":"string"},"id":{"type":"string","format":"uuid"},"mirror":{"type":"boolean"},"name":{"type":"string"},"open_issues_count":{"type":"integer","format":"int32"},"private":{"type":"boolean"},"size":{"type":"integer","format":"int64"},"stars_count":{"type":"integer","format":"int32"},"template":{"type":"boolean"},"watchers_count":{"type":"integer","format":"int32"}}},"RepoTopicOptions":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"RepoView":{"type":"object","required":["id","channel_id","space_id","name","lower_name","full_name","default_branch","enable_lfs","is_private","is_archived","is_fork","is_template","is_mirror","empty","size","git_size","lfs_size","nums_watch","nums_star","nums_pr","nums_commits","nums_branches","nums_tags","allow_rebase","allow_rebase_explicit","allow_squash_merge","allow_merge_commits","allow_fast_forward_only_merge","allow_rebase_update","allow_merge_update","allow_manual_merge","autodetect_manual_merge","default_delete_branch_after_merge","default_allow_maintainer_edit","ignore_whitespace_conflicts","object_format","has_code","has_issues","has_wiki","has_pull_requests","has_projects","has_releases","has_packages","has_actions","projects_mode","languages","licenses","topics","html_url","url","link","ssh_url","clone_url","created_at","updated_at"],"properties":{"allow_fast_forward_only_merge":{"type":"boolean"},"allow_manual_merge":{"type":"boolean"},"allow_merge_commits":{"type":"boolean"},"allow_merge_update":{"type":"boolean"},"allow_rebase":{"type":"boolean"},"allow_rebase_explicit":{"type":"boolean"},"allow_rebase_update":{"type":"boolean"},"allow_squash_merge":{"type":"boolean"},"archived_at":{"type":["string","null"]},"autodetect_manual_merge":{"type":"boolean"},"avatar_url":{"type":["string","null"]},"channel":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ChannelSummary"}]},"channel_id":{"type":"string","format":"uuid"},"clone_url":{"type":"string"},"created_at":{"type":"string"},"default_allow_maintainer_edit":{"type":"boolean"},"default_branch":{"type":"string"},"default_delete_branch_after_merge":{"type":"boolean"},"description":{"type":["string","null"]},"empty":{"type":"boolean"},"enable_lfs":{"type":"boolean"},"full_name":{"type":"string"},"git_size":{"type":"integer","format":"int64"},"has_actions":{"type":"boolean"},"has_code":{"type":"boolean"},"has_issues":{"type":"boolean"},"has_packages":{"type":"boolean"},"has_projects":{"type":"boolean"},"has_pull_requests":{"type":"boolean"},"has_releases":{"type":"boolean"},"has_wiki":{"type":"boolean"},"html_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"ignore_whitespace_conflicts":{"type":"boolean"},"is_archived":{"type":"boolean"},"is_fork":{"type":"boolean"},"is_mirror":{"type":"boolean"},"is_private":{"type":"boolean"},"is_template":{"type":"boolean"},"languages":{"type":"array","items":{"type":"string"}},"last_pushed_at":{"type":["string","null"]},"lfs_size":{"type":"integer","format":"int64"},"license_name":{"type":["string","null"]},"licenses":{"type":"array","items":{"type":"string"}},"link":{"type":"string"},"lower_name":{"type":"string"},"name":{"type":"string"},"nums_branches":{"type":"integer","format":"int32"},"nums_commits":{"type":"integer","format":"int32"},"nums_pr":{"type":"integer","format":"int32"},"nums_star":{"type":"integer","format":"int32"},"nums_tags":{"type":"integer","format":"int32"},"nums_watch":{"type":"integer","format":"int32"},"object_format":{"type":"string"},"parent":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RepoView"}]},"primary_language":{"type":["string","null"]},"projects_mode":{"type":"string"},"size":{"type":"integer","format":"int64"},"space":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceSummary"}]},"space_id":{"type":"string","format":"uuid"},"ssh_url":{"type":"string"},"storage_limit_size":{"type":["integer","null"],"format":"int64"},"topics":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string"},"url":{"type":"string"},"website":{"type":["string","null"]}}},"ReportStatus":{"type":"string","enum":["open","under_review","resolved","dismissed"]},"ReportView":{"type":"object","required":["id","reported_uid","reason","status","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"evidence":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"},"reporter_uid":{"type":["string","null"],"format":"uuid"},"resolution_note":{"type":["string","null"]},"resolver_uid":{"type":["string","null"],"format":"uuid"},"status":{"$ref":"#/components/schemas/ReportStatus"},"updated_at":{"type":"string"}}},"RequestChangeBody":{"type":"object","required":["new_email"],"properties":{"new_email":{"type":"string"}}},"RequestDeletionCmd":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"ResendCodeCmd":{"type":"object","required":["email","pow","purpose"],"properties":{"email":{"type":"string"},"pow":{"$ref":"#/components/schemas/PowProof"},"purpose":{"type":"string"}}},"ResendCodeResp":{"type":"object","required":["sent","temp_key"],"properties":{"sent":{"type":"boolean"},"temp_key":{"$ref":"#/components/schemas/TempKey"}}},"ResetPasswordCmd":{"type":"object","required":["email","token","new_password","temp_key_value"],"properties":{"email":{"type":"string"},"new_password":{"type":"string"},"temp_key_value":{"type":"string"},"token":{"type":"string"}}},"ResetPasswordResp":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}}},"ReviewState":{"type":"string","enum":["approved","changes_requested","commented"]},"RevokeAllResp":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"integer","format":"int64","minimum":0}}},"RevokeSuspensionCmd":{"type":"object","properties":{"reason":{"type":["string","null"]}}},"RoleOverwriteView":{"type":"object","required":["id","space_id","channel_id","role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"role_id":{"type":"string","format":"uuid"},"space_id":{"type":"string","format":"uuid"}}},"RolePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RoleView"}},"total":{"type":"integer","format":"int64"}}},"RoleView":{"type":"object","required":["id","space_id","name","position","color","version","created_at","created_by","permissions"],"properties":{"color":{"type":"string"},"created_at":{"type":"string"},"created_by":{"type":"string","format":"uuid"},"icon_hash":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"position":{"type":"integer","format":"int64"},"space_id":{"type":"string","format":"uuid"},"unicode_emoji":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"version":{"type":"integer","format":"int32"}}},"SaveMessageCmd":{"type":"object","required":["channel_id","message_id"],"properties":{"channel_id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"}}},"SavedMessageView":{"type":"object","required":["id","channel_id","message_id","saved_at"],"properties":{"channel_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"saved_at":{"type":"string"}}},"ScheduledMessageStatus":{"type":"string","enum":["pending","sent","cancelled"]},"ScheduledMessageView":{"type":"object","required":["id","target_channel_id","payload","scheduled_at","status","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"payload":{"type":"string"},"scheduled_at":{"type":"string"},"status":{"$ref":"#/components/schemas/ScheduledMessageStatus"},"target_channel_id":{"type":"string","format":"uuid"}}},"SearchResults":{"type":"object","required":["data","ok"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RepoSummary"}},"ok":{"type":"boolean"}}},"SessionKind":{"type":"string","enum":["web_login","bearer_access"]},"SessionView":{"type":"object","required":["id","kind","is_revoked","created_at","expires_at"],"properties":{"app_id":{"type":["string","null"]},"client_ip_hash":{"type":["string","null"]},"created_at":{"type":"string"},"expires_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"is_revoked":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/SessionKind"},"replaced_at":{"type":["string","null"]},"user_agent_hash":{"type":["string","null"]}}},"SetPrimaryEmailResp":{"type":"object","required":["email"],"properties":{"email":{"$ref":"#/components/schemas/EmailView"}}},"SetRoleOverwriteCmd":{"type":"object","required":["role_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"role_id":{"type":"string","format":"uuid"}}},"SetUserOverwriteCmd":{"type":"object","required":["user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"SpaceAllowJoinLevel":{"type":"string","enum":["none","need_mail_active","need_mail_active_and_last_one_mid","need_mail_active_and_last_one_hours","need_mail_active_and_phone_active"]},"SpaceBanPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceBanView"}},"total":{"type":"integer","format":"int64"}}},"SpaceBanView":{"type":"object","required":["space_id","user_id","banned_by","created_at","updated_at","allow_agent_join","allow_speak","allow_push_repo","allow_comment_any"],"properties":{"allow_agent_join":{"type":"boolean"},"allow_comment_any":{"type":"boolean"},"allow_push_repo":{"type":"boolean"},"allow_speak":{"type":"boolean"},"banned_by":{"type":"string","format":"uuid"},"created_at":{"type":"string"},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"space_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"SpaceInvitePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceInviteView"}},"total":{"type":"integer","format":"int64"}}},"SpaceInviteView":{"type":"object","required":["id","space_id","user_id","email","role_ids","created_at"],"properties":{"accepted_at":{"type":["string","null"]},"created_at":{"type":"string"},"email":{"type":"string"},"expires_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"revoked_at":{"type":["string","null"]},"role_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"space_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"SpaceMemberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceMemberView"}},"total":{"type":"integer","format":"int64"}}},"SpaceMemberStatus":{"type":"string","enum":["active","inactive","left","removed"]},"SpaceMemberView":{"type":"object","required":["space_id","user_id","status","joined_at","created_at","message_notifications","muted","mobile_push","suppress_everyone","suppress_roles","hide_muted_channels"],"properties":{"alias_avatar_url":{"type":["string","null"]},"alias_name":{"type":["string","null"]},"created_at":{"type":"string"},"hide_muted_channels":{"type":"boolean"},"invited_at":{"type":["string","null"]},"invited_by":{"type":["string","null"],"format":"uuid"},"joined_at":{"type":"string"},"last_active_at":{"type":["string","null"]},"left_at":{"type":["string","null"]},"message_notifications":{"$ref":"#/components/schemas/MessageNotifications"},"mobile_push":{"type":"boolean"},"mute_until":{"type":["string","null"]},"muted":{"type":"boolean"},"space_id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/SpaceMemberStatus"},"suppress_everyone":{"type":"boolean"},"suppress_roles":{"type":"boolean"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}},"SpacePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpaceView"}},"total":{"type":"integer","format":"int64"}}},"SpaceSummary":{"type":"object","required":["id","name"],"properties":{"display_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"SpaceView":{"type":"object","required":["id","name","owner_id","public","is_active","allow_join","allow_invite","member_count","allow_join_level","member_must_enable_2fa","created_at","updated_at"],"properties":{"allow_invite":{"type":"boolean"},"allow_join":{"type":"boolean"},"allow_join_level":{"$ref":"#/components/schemas/SpaceAllowJoinLevel"},"avatar_url":{"type":["string","null"]},"created_at":{"type":"string"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_active":{"type":"boolean"},"member_count":{"type":"integer","format":"int64"},"member_must_enable_2fa":{"type":"boolean"},"name":{"type":"string"},"owner_id":{"type":"string","format":"uuid"},"public":{"type":"boolean"},"updated_at":{"type":"string"},"welcome_message":{"type":["string","null"]}}},"SshKeyType":{"type":"string","enum":["ssh_rsa","ssh_ed25519","ecdsa_sha2_nistp256"]},"SshKeyView":{"type":"object","required":["id","name","key_type","fingerprint","created_at"],"properties":{"created_at":{"type":"string"},"fingerprint":{"type":"string"},"id":{"type":"string","format":"uuid"},"key_type":{"$ref":"#/components/schemas/SshKeyType"},"last_used_at":{"type":["string","null"]},"name":{"type":"string"}}},"StopwatchView":{"type":"object","required":["id","issue_id","user_id","started_at","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"started_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"SubmitPullRequestReviewOption":{"type":"object","required":["state"],"properties":{"commit_sha":{"type":["string","null"]},"content":{"type":["string","null"]},"state":{"$ref":"#/components/schemas/ReviewState"}}},"SubmitReportCmd":{"type":"object","required":["reported_uid","reason"],"properties":{"evidence":{"type":["string","null"]},"reason":{"type":"string"},"reported_uid":{"type":"string","format":"uuid"}}},"SubscriberPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SubscriberView"}},"total":{"type":"integer","format":"int64"}}},"SubscriberView":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"Subscription":{"type":"object","required":["user_id","repo_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"mode":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}}},"SuspendCmd":{"type":"object","required":["suspension_type"],"properties":{"ends_at":{"type":["string","null"]},"reason":{"type":["string","null"]},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"}}},"SuspensionType":{"type":"string","enum":["temporary","permanent"]},"SuspensionView":{"type":"object","required":["id","user_id","suspension_type","starts_at","created_at"],"properties":{"created_at":{"type":"string"},"ends_at":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"reason":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"revoked_by":{"type":["string","null"],"format":"uuid"},"starts_at":{"type":"string"},"suspended_by":{"type":["string","null"],"format":"uuid"},"suspension_type":{"$ref":"#/components/schemas/SuspensionType"},"user_id":{"type":"string","format":"uuid"}}},"SyncResult":{"type":"object","required":["repo_id","branches_added","tags_added","commits_added","size_bytes"],"properties":{"branches_added":{"type":"integer","format":"int64"},"commits_added":{"type":"integer","format":"int64"},"repo_id":{"type":"string","format":"uuid"},"size_bytes":{"type":"integer","format":"int64"},"tags_added":{"type":"integer","format":"int64"}}},"SyncStatus":{"type":"object","required":["repo_id","branches_total","tags_total","commits_total","size","synced_at"],"properties":{"branches_total":{"type":"integer","format":"int64"},"commits_total":{"type":"integer","format":"int64"},"last_pushed_at":{"type":["string","null"]},"primary_language":{"type":["string","null"]},"repo_id":{"type":"string","format":"uuid"},"size":{"type":"integer","format":"int64"},"synced_at":{"type":"string"},"tags_total":{"type":"integer","format":"int64"}}},"TagPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagView"}},"total":{"type":"integer","format":"int64"}}},"TagProtectionPage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TagProtectionView"}},"total":{"type":"integer","format":"int64"}}},"TagProtectionView":{"type":"object","required":["id","repo_id","name_pattern","whitelist_usernames","whitelist_teams","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name_pattern":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string"},"whitelist_teams":{"type":"array","items":{"type":"string"}},"whitelist_usernames":{"type":"array","items":{"type":"string"}}}},"TagView":{"type":"object","required":["id","repo_id","name","tag_type","commit_sha","commit","message","zipball_url","tarball_url","created_at"],"properties":{"commit":{"$ref":"#/components/schemas/CommitMeta"},"commit_sha":{"type":"string"},"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"message":{"type":"string"},"name":{"type":"string"},"repo_id":{"type":"string","format":"uuid"},"tag_type":{"type":"string"},"tarball_url":{"type":"string"},"zipball_url":{"type":"string"}}},"TempKey":{"type":"object","required":["name","value","ttl_seconds","secure","http_only","same_site"],"properties":{"domain":{"type":["string","null"]},"http_only":{"type":"boolean"},"name":{"type":"string"},"path":{"type":["string","null"]},"same_site":{"type":"string"},"secure":{"type":"boolean"},"ttl_seconds":{"type":"integer","format":"int64","minimum":0},"value":{"type":"string"}}},"TopicList":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"type":"string"}}}},"TopicSearchQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int64","minimum":0},"page":{"type":["integer","null"],"format":"int64","minimum":0},"q":{"type":["string","null"]}}},"TopicSearchResult":{"type":"object","required":["topics"],"properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicView"}}}},"TopicView":{"type":"object","required":["id","name","repo_count","created_at","updated_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"repo_count":{"type":"integer","format":"int32"},"updated_at":{"type":"string"}}},"TrackedTimePage":{"type":"object","required":["items","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TrackedTimeView"}},"total":{"type":"integer","format":"int64"}}},"TrackedTimeView":{"type":"object","required":["id","issue_id","user_id","seconds","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":"string","format":"uuid"},"seconds":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"TransferRepoOption":{"type":"object","required":["new_channel_id"],"properties":{"new_channel_id":{"type":"string","format":"uuid"},"new_name":{"type":["string","null"]}}},"TreeEntryView":{"type":"object","required":["path","mode","type_","sha"],"properties":{"mode":{"type":"string"},"path":{"type":"string"},"sha":{"type":"string"},"size":{"type":["integer","null"],"format":"int64"},"type_":{"type":"string"}}},"TreeView":{"type":"object","required":["sha","entries"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/TreeEntryView"}},"sha":{"type":"string"}}},"UnassignRoleCmd":{"type":"object","required":["role_id"],"properties":{"role_id":{"type":"string","format":"uuid"}}},"UnreadCountResp":{"type":"object","required":["count"],"properties":{"count":{"type":"integer","format":"int64"}}},"UpdateAvatarOption":{"type":"object","required":["image"],"properties":{"image":{"type":"string"}}},"UpdateBanCmd":{"type":"object","properties":{"allow_agent_join":{"type":["boolean","null"]},"allow_comment_any":{"type":["boolean","null"]},"allow_push_repo":{"type":["boolean","null"]},"allow_speak":{"type":["boolean","null"]},"expires_at":{"type":["string","null"]},"reason":{"type":["string","null"]}}},"UpdateBranchOption":{"type":"object","required":["new_commit_id"],"properties":{"force":{"type":["boolean","null"]},"new_commit_id":{"type":"string"},"old_commit_id":{"type":["string","null"]}}},"UpdateBranchProtectionPriorities":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"UpdateCollectionOption":{"type":"object","properties":{"description":{"type":["string","null"]},"icon":{"type":["string","null"]},"name":{"type":["string","null"]}}},"UpdateCommentOption":{"type":"object","required":["content"],"properties":{"content":{"type":"string"}}},"UpdateDeviceCmd":{"type":"object","properties":{"device_name":{"type":["string","null"]},"is_trusted":{"type":["boolean","null"]}}},"UpdateDocumentCmd":{"type":"object","properties":{"content":{"type":["string","null"]},"icon":{"type":["string","null"]},"parent_id":{"type":["string","null"],"format":"uuid"},"slug":{"type":["string","null"]},"title":{"type":["string","null"]}}},"UpdateFileOption":{"allOf":[{"$ref":"#/components/schemas/FileOptions"},{"type":"object","required":["content"],"properties":{"content":{"type":"string"},"from_path":{"type":["string","null"]},"sha":{"type":["string","null"]}}}]},"UpdateIssueOption":{"type":"object","properties":{"body":{"type":["string","null"]},"description":{"type":["string","null"]},"milestone_id":{"type":["string","null"],"format":"uuid"},"title":{"type":["string","null"]}}},"UpdateIssueUserOption":{"type":"object","properties":{"is_mentioned":{"type":["boolean","null"]},"is_read":{"type":["boolean","null"]}}},"UpdateLabelOption":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"exclusive":{"type":["boolean","null"]},"exclusive_order":{"type":["integer","null"],"format":"int32"},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdateMemberCmd":{"type":"object","required":["role"],"properties":{"role":{"$ref":"#/components/schemas/MemberRole"}}},"UpdateMilestoneOption":{"type":"object","properties":{"description":{"type":["string","null"]},"due_at":{"type":["string","null"]},"is_closed":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdatePostLabelOption":{"type":"object","properties":{"color":{"type":["string","null"]},"is_archived":{"type":["boolean","null"]},"name":{"type":["string","null"]}}},"UpdatePostOption":{"type":"object","properties":{"body":{"type":["string","null"]},"status":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PostStatusView"}]},"title":{"type":["string","null"]}}},"UpdatePreferencesCmd":{"type":"object","properties":{"allow_dms_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"allow_mentions_from":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Audience"}]},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":["boolean","null"]},"email_flags":{"type":["integer","null"],"format":"int32"},"in_app_flags":{"type":["integer","null"],"format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":["integer","null"],"format":"int32"},"show_online_status":{"type":["boolean","null"]},"theme_mode":{"type":["string","null"]},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"}}},"UpdateProfileCmd":{"type":"object","properties":{"avatar":{"type":["string","null"]},"display_name":{"type":["string","null"]},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"profile":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UpdateProfileFields"}]},"timezone":{"type":["string","null"]},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]}}},"UpdateProfileFields":{"type":"object","properties":{"accent_color":{"type":["string","null"]},"banner_color":{"type":["integer","null"],"format":"int32"},"banner_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["string","null"]},"date_of_birth":{"type":["string","null"],"format":"date"},"location":{"type":["string","null"]},"pronouns":{"type":["string","null"]},"pronouns_privacy":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProfileVisibility"}]},"real_name":{"type":["string","null"]},"show_activity":{"type":["boolean","null"]},"show_email":{"type":["boolean","null"]},"show_location":{"type":["boolean","null"]},"show_real_name":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"UpdateProjectCmd":{"type":"object","properties":{"color":{"type":["string","null"]},"description":{"type":["string","null"]},"health":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectHealth"}]},"icon":{"type":["string","null"]},"lead_id":{"type":["string","null"],"format":"uuid"},"name":{"type":["string","null"]},"sort_order":{"type":["integer","null"],"format":"int32"},"state":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ProjectState"}]},"target_date":{"type":["string","null"],"format":"date"}}},"UpdatePullRequestOption":{"type":"object","properties":{"base":{"type":["string","null"]},"body":{"type":["string","null"]},"head":{"type":["string","null"]},"title":{"type":["string","null"]}}},"UpdateRepoOption":{"type":"object","properties":{"allow_fast_forward_only_merge":{"type":["boolean","null"]},"allow_manual_merge":{"type":["boolean","null"]},"allow_merge_commits":{"type":["boolean","null"]},"allow_merge_update":{"type":["boolean","null"]},"allow_rebase":{"type":["boolean","null"]},"allow_rebase_explicit":{"type":["boolean","null"]},"allow_rebase_update":{"type":["boolean","null"]},"allow_squash_merge":{"type":["boolean","null"]},"archived":{"type":["boolean","null"]},"autodetect_manual_merge":{"type":["boolean","null"]},"default_allow_maintainer_edit":{"type":["boolean","null"]},"default_branch":{"type":["string","null"]},"default_delete_branch_after_merge":{"type":["boolean","null"]},"default_merge_style":{"type":["string","null"]},"default_update_style":{"type":["string","null"]},"description":{"type":["string","null"]},"enable_lfs":{"type":["boolean","null"]},"external_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalTracker"}]},"external_wiki":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExternalWiki"}]},"has_actions":{"type":["boolean","null"]},"has_code":{"type":["boolean","null"]},"has_issues":{"type":["boolean","null"]},"has_packages":{"type":["boolean","null"]},"has_projects":{"type":["boolean","null"]},"has_pull_requests":{"type":["boolean","null"]},"has_releases":{"type":["boolean","null"]},"has_wiki":{"type":["boolean","null"]},"ignore_whitespace_conflicts":{"type":["boolean","null"]},"internal_tracker":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InternalTracker"}]},"is_private":{"type":["boolean","null"]},"license_name":{"type":["string","null"]},"name":{"type":["string","null"]},"projects_mode":{"type":["string","null"]},"template":{"type":["boolean","null"]},"website":{"type":["string","null"]}}},"UpdateReportCmd":{"type":"object","required":["status"],"properties":{"resolution_note":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/ReportStatus"}}},"UpdateRoleCmd":{"type":"object","properties":{"color":{"type":["string","null"]},"icon_hash":{"type":["string","null"]},"name":{"type":["string","null"]},"permissions":{"type":["array","null"],"items":{"type":"string"}},"position":{"type":["integer","null"],"format":"int64"},"unicode_emoji":{"type":["string","null"]}}},"UpdateSpaceCmd":{"type":"object","properties":{"allow_invite":{"type":["boolean","null"]},"allow_join":{"type":["boolean","null"]},"allow_join_level":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SpaceAllowJoinLevel"}]},"avatar_url":{"type":["string","null"]},"description":{"type":["string","null"]},"member_must_enable_2fa":{"type":["boolean","null"]},"name":{"type":["string","null"]},"public":{"type":["boolean","null"]},"welcome_message":{"type":["string","null"]}}},"UpdateViewCmd":{"type":"object","properties":{"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"is_shared":{"type":["boolean","null"]},"layout":{"type":["string","null"]},"name":{"type":["string","null"]},"sort_by":{"type":["string","null"]}}},"UploadAttachmentInput":{"type":"object","required":["filename","content_type","data"],"properties":{"content_type":{"type":"string"},"data":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"filename":{"type":"string"}}},"UploadAvatarCmd":{"type":"object","required":["content_type","data_base64"],"properties":{"content_type":{"type":"string"},"data_base64":{"type":"string"}}},"UpsertMemeCmd":{"type":"object","required":["name","content_type","url","size"],"properties":{"content_type":{"type":"string"},"height":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"size":{"type":"integer","format":"int64"},"url":{"type":"string"},"width":{"type":["integer","null"],"format":"int32"}}},"UpsertPostWatchOption":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"UpsertPushCmd":{"type":"object","required":["endpoint","p256dh_key","auth_key","platform"],"properties":{"auth_key":{"type":"string"},"endpoint":{"type":"string"},"p256dh_key":{"type":"string"},"platform":{"$ref":"#/components/schemas/PushPlatform"},"user_agent":{"type":["string","null"]}}},"UpsertWatchOption":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string"}}},"UserMe":{"type":"object","required":["uid","username","display_name","avatar","is_active","is_admin","is_restricted"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"is_active":{"type":"boolean"},"is_admin":{"type":"boolean"},"is_restricted":{"type":"boolean"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"UserMini":{"type":"object","required":["id","login"],"properties":{"avatar_url":{"type":["string","null"]},"email":{"type":["string","null"]},"full_name":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"}}},"UserOverwriteView":{"type":"object","required":["channel_id","user_id","allow_mask","deny_mask"],"properties":{"allow_mask":{"type":"integer","format":"int64"},"channel_id":{"type":"string","format":"uuid"},"deny_mask":{"type":"integer","format":"int64"},"user_id":{"type":"string","format":"uuid"}}},"UserPreferences":{"type":"object","required":["user_id","theme_mode","in_app_flags","email_flags","push_flags","email_digest","allow_dms_from","allow_mentions_from","show_online_status","created_at","updated_at"],"properties":{"allow_dms_from":{"$ref":"#/components/schemas/Audience"},"allow_mentions_from":{"$ref":"#/components/schemas/Audience"},"created_at":{"type":"string"},"diff_view_style":{"type":["string","null"]},"email_digest":{"type":"boolean"},"email_flags":{"type":"integer","format":"int32"},"in_app_flags":{"type":"integer","format":"int32"},"mute_until":{"type":["string","null"]},"push_flags":{"type":"integer","format":"int32"},"show_online_status":{"type":"boolean"},"theme_mode":{"type":"string"},"theme_token":{"type":["string","null"]},"theme_version":{"type":["integer","null"],"format":"int64"},"updated_at":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"UserPublic":{"type":"object","required":["uid","username","display_name","avatar"],"properties":{"avatar":{"type":"string"},"display_name":{"type":"string"},"language":{"type":["string","null"]},"locale":{"type":["string","null"]},"timezone":{"type":["string","null"]},"uid":{"type":"string"},"username":{"type":"string"}}},"UserSummary":{"type":"object","required":["id","name","login"],"properties":{"email":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"login":{"type":"string"},"name":{"type":"string"}}},"VerifyCodeCmd":{"type":"object","required":["email","purpose","code","temp_key_value"],"properties":{"code":{"type":"string"},"email":{"type":"string"},"purpose":{"type":"string"},"temp_key_value":{"type":"string"},"user_id":{"type":["string","null"]}}},"VerifyCodeResult":{"type":"object","required":["code_row_id"],"properties":{"code_row_id":{"type":"string"}}},"ViewPage":{"type":"object","required":["total","items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ViewView"}},"total":{"type":"integer","format":"int64","minimum":0}}},"ViewView":{"type":"object","required":["id","project_id","creator_id","name","filter","sort_by","layout","is_shared","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"creator_id":{"type":"string","format":"uuid"},"description":{"type":["string","null"]},"filter":{},"group_by":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_shared":{"type":"boolean"},"layout":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"sort_by":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":["string","null"],"format":"date-time"}}},"WatchView":{"type":"object","required":["id","user_id","mode","created_at"],"properties":{"created_at":{"type":"string"},"id":{"type":"string","format":"uuid"},"issue_id":{"type":["string","null"],"format":"uuid"},"mode":{"type":"string"},"updated_at":{"type":["string","null"]},"user_id":{"type":"string","format":"uuid"}}}}},"tags":[{"name":"auth","description":"Authentication endpoints"},{"name":"issues","description":"Issue tracking (lib/issues)"},{"name":"posts","description":"Post discussion (lib/post)"},{"name":"project","description":"Project lifecycle, members, views, documents, links, favorites, activities."},{"name":"repo","description":"Repository service (lib/repo)"},{"name":"space","description":"Space, membership, roles, invites, bans, channels, channel members and overwrite endpoints."},{"name":"user","description":"User profile, account, sessions and notifications endpoints."}]}
No newline at end of file