import {
  DtoCreateGroupReq,
  DtoUsersResultForSelf,
  HttpUpdateUserInfoPayload,
  DtoOrganizationAccess,
  DtoRepos4User,
  DtoRepos4UserBase,
  DtoUsersResult,
  DtoUserFollowResult,
  DtoOrganizationUnion,
  DtoWorkspaceDeleteResult,
  DtoWorkspaceDeleteReq,
  DtoWorkspaceListResult,
  DtoUpdateGroupReq,
  DtoUpdateGroupAvatarReq,
  DtoListInheritMembers,
  DtoUsersWithAccessLevelInSlug,
  DtoMemberAccessLevelInSlugUnion,
  DtoMemberAccessLevel,
  DtoUpdateMembersRequest,
  DtoCreateRepoReq,
  DtoOrganizationSettingWithParent,
  DtoGroupSettingReq,
  DtoUploadAssetsResponse,
  DtoUploadRequestParams,
  DtoRepoPatch,
  DtoBuildLogsResult,
  DtoBuildResult,
  DtoStartBuildReq,
  DtoBuildStatusResult,
  WebRepoContribTrend,
  DtoForks,
  DtoForkReq,
  ApiPostBlobForm,
  ApiBranch,
  OpenapiCreateBranchForm,
  ApiBranchDetail,
  WebCommitAnnotationInBatch,
  WebGetCommitAnnotationsInBatchForm,
  WebCommitAnnotation,
  OpenapiPutCommitAnnotationsForm,
  ApiCommitAsset,
  OpenapiPostCommitAssetUploadUrlForm,
  ApiCommitStatus,
  ApiCommit,
  ApiCompareResponse,
  ApiContent,
  OpenapiHeadRef,
  WebTagAnnotation,
  OpenapiPutTagAnnotationsForm,
  ApiTag,
  ApiPostTagFrom,
  ApiIssue,
  ApiPostIssueForm,
  ApiIssueDetail,
  ApiPatchIssueForm,
  ApiIssueComment,
  ApiPostIssueCommentForm,
  ApiPatchIssueCommentForm,
  ApiLabel,
  ApiPostIssueLabelsForm,
  ApiPutIssueLabelsForm,
  ApiPostLabelForm,
  ApiPatchLabelForm,
  DtoOutsideCollaboratorInRepo,
  ApiPullRequestInfo,
  ApiPullRequest,
  ApiPullCreationForm,
  ApiPull,
  ApiPatchPullRequest,
  ApiPullRequestComment,
  ApiPullCommentCreationForm,
  ApiPostPullLabelsForm,
  ApiPutPullLabelsForm,
  ApiMergePullResponse,
  ApiMergePullRequest,
  ApiPullReviewCreationForm,
  ApiRelease,
  OpenapiPostReleaseForm,
  OpenapiPatchReleaseForm,
  OpenapiPostReleaseAssetUploadUrlForm,
  ApiReleaseAsset,
  ApiBranchProtection,
  ApiPipelineSettings,
  WebPipelineSettings,
  ApiPullRequestSettings,
  ApiPushLimitSettings,
  DtoRepoStarUsers,
  DtoWorkspaceDetailResult,
  DtoPackage,
  DtoQuotaRsp,
  DtoPackageDetail,
  DtoTagDetail,
  DtoTag,
} from "./types";
type Organizations_CreateOrganization = (params: {
  request: DtoCreateGroupReq;
}) => Promise<any>;

type Users_GetUserInfo = () => Promise<DtoUsersResultForSelf>;

type Users_UpdateUserInfo = (params: {
  request: HttpUpdateUserInfoPayload;
}) => Promise<any>;

type Users_AutoCompleteSource = (params?: {
  source_type?: "Group" | "Repo";
  page?: number;
  page_size?: number;
  search?: string;
  access?: "Reporter" | "Developer" | "Master" | "Owner";
}) => Promise<string[]>;

type Organizations_ListTopGroups = (params?: {
  page?: number;
  page_size?: number;
  search?: string;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
}) => Promise<DtoOrganizationAccess[]>;

type Organizations_ListGroups = (params: {
  group: string;
  page?: number;
  page_size?: number;
  access?: number;
}) => Promise<DtoOrganizationAccess[]>;

type Repositories_GetRepos = (params?: {
  page?: number;
  page_size?: number;
  search?: string;
  filter_type?: "private" | "public" | "encrypted";
  role?: "Reporter" | "Developer" | "Master" | "Owner";
  order_by?: "created_at" | "last_updated_at" | "stars" | "slug_path" | "forks";
  desc?: boolean;
}) => Promise<DtoRepos4User[]>;

type Repositories_GetUserAllStaredRepos = (params?: {
  page?: number;
  page_size?: number;
  search?: string;
  desc?: boolean;
  order_by?: "created_at" | "last_updated_at" | "stars" | "forks";
}) => Promise<DtoRepos4UserBase[]>;

type Users_GetUserInfoByName = (params: {
  username: string;
}) => Promise<DtoUsersResult>;

type Assets_GetUserAvatar = (params: {
  username: string;
  size: string;
}) => Promise<any>;

type Followers_GetFollowersByUserID = (params: {
  username: string;
  page?: number;
  page_size?: number;
}) => Promise<DtoUserFollowResult[]>;

type Followers_GetFollowingByUserID = (params: {
  username: string;
  page?: number;
  page_size?: number;
}) => Promise<DtoUserFollowResult[]>;

type Organizations_GetGroupsByUserID = (params: {
  username: string;
  search?: string;
  page?: number;
  page_size?: number;
  desc?: boolean;
  order_by?: "join_time" | "created_at";
}) => Promise<DtoOrganizationUnion>;

type Repositories_GetPinnedRepoByID = (params: {
  username: string;
}) => Promise<DtoRepos4User[]>;

type Repositories_GetReposByUserName = (params: {
  username: string;
  search?: string;
  role?: "Reporter" | "Developer" | "Master" | "Owner";
  page?: number;
  page_size?: number;
  desc?: boolean;
  order_by?: "created_at" | "last_updated_at" | "stars" | "slug_path" | "forks";
}) => Promise<DtoRepos4User[]>;

type Starring_GetUserStaredRepos = (params: {
  username: string;
  search?: string;
  page?: number;
  page_size?: number;
  desc?: boolean;
  order_by?: "created_at" | "last_updated_at" | "stars" | "forks";
}) => Promise<DtoRepos4User[]>;

type Workspace_DeleteWorkspace = (params: {
  request: DtoWorkspaceDeleteReq;
}) => Promise<DtoWorkspaceDeleteResult>;

type Workspace_ListWorkspaces = (params?: {
  branch?: string;
  end?: string;
  page?: number;
  pageSize?: number;
  slug?: string;
  start?: string;
  status?: string;
}) => Promise<DtoWorkspaceListResult>;

type Organizations_DeleteOrganization = (params: {
  group: string;
  "x-cnb-identity-ticket"?: string;
}) => Promise<any>;

type Organizations_GetGroup = (params: {
  group: string;
}) => Promise<DtoOrganizationAccess>;

type Organizations_UpdateOrganization = (params: {
  group: string;
  request: DtoUpdateGroupReq;
}) => Promise<any>;

type Organizations_UpdateGroupAvatar = (params: {
  group: string;
  request: DtoUpdateGroupAvatarReq;
}) => Promise<any>;

type Collaborators_ListInheritMembersOfGroup = (params: {
  group: string;
  search?: string;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
  page?: number;
  page_size?: number;
}) => Promise<DtoListInheritMembers[]>;

type Assets_PutLogos = (params: {
  group: string;
  token: string;
}) => Promise<any>;

type Assets_GetLogos = (params: {
  group: string;
  size?: string;
}) => Promise<any>;

type Collaborators_ListMembersOfGroup = (params: {
  group: string;
  page?: number;
  page_size?: number;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
  search?: string;
}) => Promise<DtoUsersWithAccessLevelInSlug[]>;

type Contributors_GetMemberAccessLevelOfGroup = (params: {
  group: string;
  include_inherit?: boolean;
}) => Promise<DtoMemberAccessLevelInSlugUnion>;

type Contributors_ListMemberAccessLevelOfGroup = (params: {
  group: string;
  username: string;
}) => Promise<DtoMemberAccessLevel[]>;

type Collaborators_DeleteMembersOfGroup = (params: {
  group: string;
  username: string;
}) => Promise<any>;

type Collaborators_AddMembersOfGroup = (params: {
  group: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Collaborators_UpdateMembersOfGroup = (params: {
  group: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Repositories_GetPinnedRepoByGroup = (params: {
  group: string;
}) => Promise<DtoRepos4UserBase[]>;

type Repositories_SetPinnedRepoByGroup = (params: {
  group: string;
  request: string[];
}) => Promise<DtoRepos4UserBase[]>;

type Repositories_GetGroupSubRepos = (params: {
  group: string;
  page?: number;
  page_size?: number;
  filter_type?: "private" | "public" | "encrypted";
  order_by?: "created_at" | "last_updated_at" | "stars" | "slug_path";
  desc?: boolean;
  descendant?: "all" | "sub" | "grand";
  search?: string;
}) => Promise<DtoRepos4UserBase[]>;

type Repositories_CreateRepo = (params: {
  group: string;
  request: DtoCreateRepoReq;
}) => Promise<any>;

type Organizations_GetGroupSetting = (params: {
  group: string;
}) => Promise<DtoOrganizationSettingWithParent>;

type Organizations_UpdateGroupSetting = (params: {
  group: string;
  request: DtoGroupSettingReq;
}) => Promise<any>;

type Organizations_ListSubgroups = (params: {
  group: string;
  search?: string;
  page: number;
  page_size: number;
}) => Promise<DtoOrganizationUnion[]>;

type Assets_UploadLogos = (params: {
  group: string;
  request: DtoUploadRequestParams;
}) => Promise<DtoUploadAssetsResponse>;

type Missions_DeleteMission = (params: {
  mission: string;
  "x-cnb-identity-ticket"?: string;
}) => Promise<any>;

type Collaborators_AddMembersOfMission = (params: {
  mission: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Artifactory_DeleteRegistry = (params: {
  registry: string;
  "x-cnb-identity-ticket"?: string;
}) => Promise<any>;

type Collaborators_AddMembersOfRegistry = (params: {
  registry: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Repositories_DeleteRepo = (params: {
  repo: string;
  "x-cnb-identity-ticket"?: string;
}) => Promise<any>;

type Repositories_GetRepo = (params: {
  repo: string;
}) => Promise<DtoRepos4User>;

type Repositories_UpdateRepo = (params: {
  repo: string;
  request: DtoRepoPatch;
}) => Promise<any>;

type Build_GetBuildLogs = (params: {
  repo: string;
  createTime?: string;
  endTime?: string;
  event?: string;
  page?: number;
  pagesize?: number;
  sha?: string;
  sn?: string;
  sourceRef?: string;
  status?: string;
  targetRef?: string;
  userId?: string;
  userName?: string;
}) => Promise<DtoBuildLogsResult>;

type Build_StartBuild = (params: {
  repo: string;
  request: DtoStartBuildReq;
}) => Promise<DtoBuildResult[]>;

type Build_GetBuildStatus = (params: {
  repo: string;
  sn: string;
}) => Promise<DtoBuildStatusResult>;

type Build_StopBuild = (params: {
  repo: string;
  sn: string;
}) => Promise<DtoBuildResult[]>;

type Assets_GetCommitAssets = (params: {
  repo: string;
  fileName: string;
}) => Promise<any>;

type RepoContributor_GetRepoContributorTrend = (params: {
  repo: string;
  limit?: number;
  exclude_external_users?: boolean;
}) => Promise<WebRepoContribTrend>;

type Assets_GetFiles = (params: {
  repo: string;
  userIdKey: string;
  randomUUID: string;
  fileName: string;
}) => Promise<any>;

type Assets_PutFiles = (params: {
  repo: string;
  userIdKey: string;
  randomUUID: string;
  fileName: string;
  token: string;
}) => Promise<any>;

type Repositories_ListForksRepos = (params: {
  repo: string;
  page: number;
  page_size: number;
}) => Promise<DtoForks[]>;

type Repositories_CreateAFork = (params: {
  repo: string;
  request: DtoForkReq;
}) => Promise<any>;

type Git_GetArchiveCommitChangedFiles = (params: {
  repo: string;
  sha1?: string;
}) => Promise<any>;

type Git_GetArchiveCompareChangedFiles = (params: {
  repo: string;
  base_head: string;
}) => Promise<any>;

type Git_CreateBlob = (params: {
  repo: string;
  post_blob_form: ApiPostBlobForm;
}) => Promise<any>;

type Git_ListBranches = (params: {
  repo: string;
  page?: number;
  page_size?: number;
}) => Promise<ApiBranch[]>;

type Git_CreateBranch = (params: {
  repo: string;
  create_branch_form: OpenapiCreateBranchForm;
}) => Promise<any>;

type Git_DeleteBranch = (params: {
  repo: string;
  branch: string;
}) => Promise<any>;

type Git_GetBranch = (params: {
  repo: string;
  branch?: string;
}) => Promise<ApiBranchDetail>;

type Git_GetCommitAnnotationsInBatch = (params: {
  repo: string;
  get_commit_annotations_form: WebGetCommitAnnotationsInBatchForm;
}) => Promise<WebCommitAnnotationInBatch[]>;

type Git_GetCommitAnnotations = (params: {
  repo: string;
  sha: string;
}) => Promise<WebCommitAnnotation[]>;

type Git_PutCommitAnnotations = (params: {
  repo: string;
  sha: string;
  put_commit_annotations_form: OpenapiPutCommitAnnotationsForm;
}) => Promise<any>;

type Git_DeleteCommitAnnotation = (params: {
  repo: string;
  sha: string;
  key: string;
}) => Promise<any>;

type Git_GetCommitAssetsBySha = (params: {
  repo: string;
  sha1: string;
}) => Promise<ApiCommitAsset[]>;

type Git_PostCommitAssetUploadConfirmation = (params: {
  repo: string;
  sha1: number;
  token: string;
  asset_path: string;
}) => Promise<any>;

type Git_PostCommitAssetUploadURL = (params: {
  repo: string;
  sha1: number;
  create_commit_asset_upload_url_form: OpenapiPostCommitAssetUploadUrlForm;
}) => Promise<any>;

type Git_DeleteCommitAsset = (params: {
  repo: string;
  sha1: string;
  asset_id: number;
}) => Promise<any>;

type Git_GetCommitStatuses = (params: {
  repo: string;
  commitish: string;
}) => Promise<ApiCommitStatus[]>;

type Git_ListCommits = (params: {
  repo: string;
  sha?: string;
  author?: string;
  committer?: string;
  since?: string;
  until?: string;
  page?: number;
  page_size?: number;
}) => Promise<ApiCommit[]>;

type Git_GetCommit = (params: {
  repo: string;
  ref: string;
}) => Promise<ApiCommit>;

type Git_GetCompareCommits = (params: {
  repo: string;
  base_head: string;
}) => Promise<ApiCompareResponse>;

type Git_GetContent = (params: {
  repo: string;
  file_path: string;
  ref?: string;
}) => Promise<ApiContent>;

type Git_GetHead = (params: { repo: string }) => Promise<OpenapiHeadRef>;

type Git_DeleteTagAnnotation = (params: {
  repo: string;
  tag_with_key: string;
}) => Promise<any>;

type Git_GetTagAnnotations = (params: {
  repo: string;
  tag: string;
}) => Promise<WebTagAnnotation[]>;

type Git_PutTagAnnotations = (params: {
  repo: string;
  tag: string;
  put_tag_annotations_form: OpenapiPutTagAnnotationsForm;
}) => Promise<any>;

type Git_ListTags = (params: {
  repo: string;
  page?: number;
  page_size?: number;
}) => Promise<ApiTag[]>;

type Git_CreateTag = (params: {
  repo: string;
  post_tag_form: ApiPostTagFrom;
}) => Promise<any>;

type Git_DeleteTag = (params: { repo: string; tag: string }) => Promise<any>;

type Git_GetTag = (params: { repo: string; tag: string }) => Promise<ApiTag>;

type Assets_GetImgs = (params: {
  repo: string;
  userIdKey: string;
  fileName: string;
}) => Promise<any>;

type Assets_PutImgs = (params: {
  repo: string;
  userIdKey: string;
  fileName: string;
  token: string;
}) => Promise<any>;

type Collaborators_ListInheritMembersOfRepo = (params: {
  repo: string;
  search?: string;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
  page?: number;
  page_size?: number;
}) => Promise<DtoListInheritMembers[]>;

type Issues_ListIssues = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  state?: string;
  keyword?: string;
  priority?: string;
  labels?: string;
  authors?: string;
  assignees?: string;
  updated_time_begin?: string;
  updated_time_end?: string;
  order_by?: string;
}) => Promise<ApiIssue[]>;

type Issues_CreateIssue = (params: {
  repo: string;
  post_issue_form: ApiPostIssueForm;
}) => Promise<any>;

type Issues_GetIssue = (params: {
  repo: string;
  number: number;
}) => Promise<ApiIssueDetail>;

type Issues_UpdateIssue = (params: {
  repo: string;
  number: number;
  patch_issue_form: ApiPatchIssueForm;
}) => Promise<ApiIssueDetail>;

type Issues_ListIssueComments = (params: {
  repo: string;
  number: number;
  page?: number;
  page_size?: number;
}) => Promise<ApiIssueComment[]>;

type Issues_PostIssueComment = (params: {
  repo: string;
  number: number;
  post_issue_comment_form: ApiPostIssueCommentForm;
}) => Promise<any>;

type Issues_GetIssueComment = (params: {
  repo: string;
  number: number;
  comment_id: number;
}) => Promise<ApiIssueComment>;

type Issues_PatchIssueComment = (params: {
  repo: string;
  number: number;
  comment_id: number;
  patch_issue_comment_form: ApiPatchIssueCommentForm;
}) => Promise<ApiIssueComment>;

type Issues_DeleteIssueLabels = (params: {
  repo: string;
  number: number;
}) => Promise<any>;

type Issues_ListIssueLabels = (params: {
  repo: string;
  number: number;
  page?: number;
  page_size?: number;
}) => Promise<ApiLabel[]>;

type Issues_PostIssueLabels = (params: {
  repo: string;
  number: number;
  post_issue_labels_form: ApiPostIssueLabelsForm;
}) => Promise<ApiLabel>;

type Issues_PutIssueLabels = (params: {
  repo: string;
  number: number;
  put_issue_labels_form: ApiPutIssueLabelsForm;
}) => Promise<ApiLabel>;

type Issues_DeleteIssueLabel = (params: {
  repo: string;
  number: number;
  name: string;
}) => Promise<ApiLabel>;

type RepoLabels_ListLabels = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  keyword?: string;
}) => Promise<ApiLabel[]>;

type RepoLabels_PostLabel = (params: {
  repo: string;
  post_label_form: ApiPostLabelForm;
}) => Promise<any>;

type RepoLabels_DeleteLabel = (params: {
  repo: string;
  name: string;
}) => Promise<any>;

type RepoLabels_PatchLabel = (params: {
  repo: string;
  name: string;
  patch_label_form: ApiPatchLabelForm;
}) => Promise<ApiLabel>;

type Collaborators_ListAllMembers = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
  search?: string;
  names?: string;
  order_by?: "created_at" | "stars" | "follower";
  desc?: boolean;
}) => Promise<DtoUsersWithAccessLevelInSlug[]>;

type Collaborators_ListMembersOfRepo = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  role?: "Guest" | "Reporter" | "Developer" | "Master" | "Owner";
  search?: string;
}) => Promise<DtoUsersWithAccessLevelInSlug[]>;

type Contributors_GetMemberAccessLevelOfRepo = (params: {
  repo: string;
  include_inherit?: boolean;
}) => Promise<DtoMemberAccessLevelInSlugUnion>;

type Contributors_ListMemberAccessLevelOfRepo = (params: {
  repo: string;
  username: string;
}) => Promise<DtoMemberAccessLevel[]>;

type Collaborators_DeleteMembersOfRepo = (params: {
  repo: string;
  username: string;
}) => Promise<any>;

type Collaborators_AddMembersOfRepo = (params: {
  repo: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Collaborators_UpdateMembersOfRepo = (params: {
  repo: string;
  username: string;
  request: DtoUpdateMembersRequest;
}) => Promise<any>;

type Collaborators_ListOutsideCollaborators = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  role?: "Guest" | "Reporter" | "Developer" | "Master";
  search?: string;
}) => Promise<DtoOutsideCollaboratorInRepo[]>;

type Collaborators_DeleteOutsideCollaborators = (params: {
  repo: string;
  username: string;
}) => Promise<any>;

type Collaborators_UpdateOutsideCollaborators = (params: {
  repo: string;
  username: string;
  role: "Guest" | "Reporter" | "Developer";
}) => Promise<any>;

type Pulls_ListPullsByNumbers = (params: {
  repo: string;
  n: any[];
}) => Promise<ApiPullRequestInfo[]>;

type Pulls_ListPulls = (params: {
  repo: string;
  page?: number;
  page_size?: number;
  state?: string;
  authors?: string;
  reviewers?: string;
  assignees?: string;
  base_ref?: string;
}) => Promise<ApiPullRequest[]>;

type Pulls_PostPull = (params: {
  repo: string;
  post_pull_form: ApiPullCreationForm;
}) => Promise<any>;

type Pulls_GetPull = (params: {
  repo: string;
  number: number;
}) => Promise<ApiPull>;

type Pulls_PatchPull = (params: {
  repo: string;
  number: number;
  update_pull_request_form: ApiPatchPullRequest;
}) => Promise<ApiPull>;

type Pulls_ListPullComments = (params: {
  repo: string;
  number: string;
  page?: number;
  page_size?: number;
}) => Promise<ApiPullRequestComment[]>;

type Pulls_PostPullComment = (params: {
  repo: string;
  number: number;
  post_pull_comment_form: ApiPullCommentCreationForm;
}) => Promise<any>;

type Pulls_DeletePullLabels = (params: {
  repo: string;
  number: number;
}) => Promise<any>;

type Pulls_ListPullLabels = (params: {
  repo: string;
  number: number;
  page?: number;
  page_size?: number;
}) => Promise<ApiLabel[]>;

type Pulls_PostPullLabels = (params: {
  repo: string;
  number: number;
  post_pull_labels_form: ApiPostPullLabelsForm;
}) => Promise<ApiLabel>;

type Pulls_PutPullLabels = (params: {
  repo: string;
  number: number;
  put_pull_labels_form: ApiPutPullLabelsForm;
}) => Promise<ApiLabel>;

type Pulls_DeletePullLabel = (params: {
  repo: string;
  number: number;
  name: string;
}) => Promise<ApiLabel>;

type Pulls_MergePull = (params: {
  repo: string;
  number: number;
  merge_pull_request_form: ApiMergePullRequest;
}) => Promise<ApiMergePullResponse>;

type Pulls_PostPullReview = (params: {
  repo: string;
  number: number;
  post_pull_review_form: ApiPullReviewCreationForm;
}) => Promise<any>;

type Releases_ListReleases = (params: {
  repo: string;
  page?: number;
  page_size?: number;
}) => Promise<ApiRelease[]>;

type Releases_PostRelease = (params: {
  repo: string;
  create_release_form: OpenapiPostReleaseForm;
}) => Promise<any>;

type Assets_GetReleasesAsset = (params: {
  repo: string;
  fileName: string;
}) => Promise<any>;

type Releases_GetReleaseByTag = (params: {
  repo: string;
  tag: string;
}) => Promise<ApiRelease>;

type Releases_DeleteRelease = (params: {
  repo: string;
  release_id: number;
}) => Promise<any>;

type Releases_GetReleaseByID = (params: {
  repo: string;
  release_id: number;
}) => Promise<ApiRelease>;

type Releases_PatchRelease = (params: {
  repo: string;
  release_id: number;
  patch_release_form: OpenapiPatchReleaseForm;
}) => Promise<any>;

type Releases_PostReleaseAssetUploadConfirmation = (params: {
  repo: string;
  release_id: number;
  token: string;
  asset_path: string;
}) => Promise<any>;

type Releases_PostReleaseAssetUploadURL = (params: {
  repo: string;
  release_id: number;
  create_release_asset_upload_url_form: OpenapiPostReleaseAssetUploadUrlForm;
}) => Promise<any>;

type Releases_DeleteReleaseAsset = (params: {
  repo: string;
  release_id: number;
  asset_id: number;
}) => Promise<any>;

type Releases_GetReleaseAsset = (params: {
  repo: string;
  release_id: number;
  asset_id: number;
}) => Promise<ApiReleaseAsset>;

type GitSettings_ListBranchProtections = (params: {
  repo: string;
}) => Promise<ApiBranchProtection[]>;

type GitSettings_PostBranchProtection = (params: {
  repo: string;
  branch_protection_form: ApiBranchProtection;
}) => Promise<any>;

type GitSettings_DeleteBranchProtection = (params: {
  repo: string;
  id: string;
}) => Promise<any>;

type GitSettings_GetBranchProtection = (params: {
  repo: string;
  id: string;
}) => Promise<ApiBranchProtection>;

type GitSettings_PatchBranchProtection = (params: {
  repo: string;
  id: string;
  branch_protection_form: ApiBranchProtection;
}) => Promise<any>;

type GitSettings_GetPipelineSettings = (params: {
  repo: string;
}) => Promise<ApiPipelineSettings>;

type GitSettings_PutPipelineSettings = (params: {
  repo: string;
  pipeline_form: WebPipelineSettings;
}) => Promise<any>;

type GitSettings_GetPullRequestSettings = (params: {
  repo: string;
}) => Promise<ApiPullRequestSettings>;

type GitSettings_PutPullRequestSettings = (params: {
  repo: string;
  pull_request_form: ApiPullRequestSettings;
}) => Promise<any>;

type GitSettings_GetPushLimitSettings = (params: {
  repo: string;
}) => Promise<ApiPushLimitSettings>;

type GitSettings_PutPushLimitSettings = (params: {
  repo: string;
  push_limit_form: ApiPushLimitSettings;
}) => Promise<any>;

type Starring_ListStarUsers = (params: {
  repo: string;
  filter_type: "all" | "followed";
  page: number;
  page_size: number;
}) => Promise<DtoRepoStarUsers>;

type Collaborators_TopContributors = (params: {
  repo: string;
  top?: number;
}) => Promise<DtoUsersResult[]>;

type Assets_UploadFiles = (params: {
  repo: string;
  request: DtoUploadRequestParams;
}) => Promise<DtoUploadAssetsResponse>;

type Assets_UploadImgs = (params: {
  repo: string;
  request: DtoUploadRequestParams;
}) => Promise<DtoUploadAssetsResponse>;

type Assets_UploadReleases = (params: {
  repo: string;
  tagName: string;
  request: DtoUploadRequestParams;
}) => Promise<DtoUploadAssetsResponse>;

type Workspace_GetWorkspaceDetail = (params: {
  repo: string;
  sn: string;
}) => Promise<DtoWorkspaceDetailResult>;

type Artifactory_ListPackages = (params: {
  slug: string;
  type: "all" | "docker" | "helm" | "maven" | "npm" | "ohpm";
  page?: number;
  page_size?: number;
  ordering?: "pull_count" | "last_push_at" | "name_ascend" | "name_descend";
  name?: string;
}) => Promise<DtoPackage[]>;

type Artifactory_HeadPackages = (params: {
  slug: string;
  type: "all" | "docker" | "helm";
  page?: number;
  page_size?: number;
  ordering?: "pull_count" | "last_push_at" | "name_ascend" | "name_descend";
  name?: string;
}) => Promise<any>;

type Artifactory_GetQuotaByProjectName = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
}) => Promise<DtoQuotaRsp>;

type Artifactory_GetQuotasByProjectName = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  page?: number;
  page_size?: number;
  ordering?: "used_ascend" | "used_descend";
}) => Promise<DtoQuotaRsp[]>;

type Artifactory_DownloadQuotasByProjectName = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  page?: number;
  page_size?: number;
  ordering?: "used_ascend" | "used_descend";
}) => Promise<DtoQuotaRsp[]>;

type Artifactory_GetPackage = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  name: string;
}) => Promise<DtoPackageDetail>;

type Artifactory_DeletePackageTag = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  name: string;
  tag: string;
}) => Promise<any>;

type Artifactory_GetPackageTagDetail = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  name: string;
  tag: string;
  sha256?: string;
}) => Promise<DtoTagDetail>;

type Artifactory_ListPackageTags = (params: {
  slug: string;
  type: "docker" | "helm" | "maven" | "npm" | "ohpm";
  pkgname: string;
  page?: number;
  page_size?: number;
  ordering?: "pull_count" | "last_push_at";
  name?: string;
}) => Promise<DtoTag>;

export interface Client {
  groups: {
    /***
     * 创建新组织
     *
     * 访问令牌调用此接口需包含以下权限
     * group-manage:rw
     *
     * /groups
     */
    post: Organizations_CreateOrganization;
  };

  user: {
    /***
     * 获取指定用户的详情信息
     *
     * 访问令牌调用此接口需包含以下权限
     * account-profile:r
     *
     * /user
     */
    get: Users_GetUserInfo;

    /***
     * 更新指定用户的详情信息, 可更新内容为: 昵称, 个人签名, 微信公众号名称, 微信公众号二维码链接, 个人网站, 个人地址, 公司名称
     *
     * 访问令牌调用此接口需包含以下权限
     * account-profile:rw
     *
     * /user
     */
    post: Users_UpdateUserInfo;

    autocompleteSource: {
      /***
       * 查询当前用户用户拥有指定权限的所有资源列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /user/autocomplete_source
       */
      list: Users_AutoCompleteSource;
    };

    groups: {
      /***
       * 获取当前用户拥有权限的顶层组织列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /user/groups
       */
      list: Organizations_ListTopGroups;

      /***
       * 查询当前用户在指定组织下拥有指定权限的子组织列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /user/groups/{group}
       */
      listByGroup: Organizations_ListGroups;
    };

    repos: {
      /***
       * 获取当前用户拥有指定权限及其以上权限的仓库
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /user/repos
       */
      list: Repositories_GetRepos;
    };

    staredRepos: {
      /***
       * 获取当前用户 star 的仓库列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /user/stared-repos
       */
      list: Repositories_GetUserAllStaredRepos;
    };
  };

  users: {
    /***
     * 获取指定用户的详情信息
     *
     * 访问令牌调用此接口需包含以下权限
     * account-profile:r
     *
     * /users/{username}
     */
    get: Users_GetUserInfoByName;

    avatar: {
      /***
       * 获取指定用户的用户头像
       *
       * 访问令牌调用此接口需包含以下权限
       * account-profile:r
       *
       * /users/{username}/avatar/{size}
       */
      get: Assets_GetUserAvatar;
    };

    followers: {
      /***
       * 获取指定用户的粉丝列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/followers
       */
      list: Followers_GetFollowersByUserID;
    };

    following: {
      /***
       * 获取指定用户的关注人列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/following
       */
      list: Followers_GetFollowingByUserID;
    };

    groups: {
      /***
       * 获取指定用户拥有权限的顶层组织列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/groups
       */
      get: Organizations_GetGroupsByUserID;
    };

    pinnedRepos: {
      /***
       * 获取指定用户的用户仓库墙
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/pinned-repos
       */
      list: Repositories_GetPinnedRepoByID;
    };

    repos: {
      /***
       * 获取指定用户有指定以上权限并且客人态可见的仓库
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/repos
       */
      list: Repositories_GetReposByUserName;
    };

    staredRepos: {
      /***
       * 获取指定用户的 star 仓库列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /users/{username}/stared-repos
       */
      list: Starring_GetUserStaredRepos;
    };
  };

  workspace: {
    delete: {
      /***
       * 删除我的云原生开发环境
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:rw
       *
       * /workspace/delete
       */
      post: Workspace_DeleteWorkspace;
    };

    list: {
      /***
       * 获取我的云原生开发环境列表
       *
       * 访问令牌调用此接口需包含以下权限
       * account-engage:r
       *
       * /workspace/list
       */
      get: Workspace_ListWorkspaces;
    };
  };

  group: {
    /***
     * 删除指定组织
     *
     * 访问令牌调用此接口需包含以下权限
     * group-delete:rw
     *
     * /{group}
     */
    delete: Organizations_DeleteOrganization;

    /***
     * 获取指定组织信息
     *
     * 访问令牌调用此接口需包含以下权限
     * group-resource:r
     *
     * /{group}
     */
    get: Organizations_GetGroup;

    /***
     * 更新组织信息, 可更新的内容为: 组织描述, 组织展示名称, 组织网站, 组织联系邮箱
     *
     * 访问令牌调用此接口需包含以下权限
     * group-manage:rw
     *
     * /{group}
     */
    put: Organizations_UpdateOrganization;

    avatar: {
      /***
       * 更新组织头像 URL 地址
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/avatar
       */
      put: Organizations_UpdateGroupAvatar;
    };

    inheritMembers: {
      /***
       * 获取指定组织或仓库内的继承成员
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:r
       *
       * /{group}/-/inherit-members
       */
      list: Collaborators_ListInheritMembersOfGroup;
    };

    logos: {
      /***
       * 确认上传的logo
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/logos
       */
      put: Assets_PutLogos;

      /***
       * 发起一个获取 logo 的请求，返回内容或者 302 到某个地址
       *
       * 访问令牌调用此接口需包含以下权限
       * group-resource:r
       *
       * /{group}/-/logos/{size}
       */
      get: Assets_GetLogos;
    };

    members: {
      /***
       * 获取指定组织或仓库内的所有直接成员
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:r
       *
       * /{group}/-/members
       */
      list: Collaborators_ListMembersOfGroup;

      accessLevel: {
        /***
         * 获取指定组织或仓库内, 访问成员在当前层级内的权限信息
         *
         * 访问令牌调用此接口需包含以下权限
         * group-manage:r
         *
         * /{group}/-/members/access-level
         */
        get: Contributors_GetMemberAccessLevelOfGroup;

        /***
         * 获取指定组织或仓库内指定成员的权限信息, 结果按组织层级来展示, 包含上层组织的权限继承信息
         *
         * 访问令牌调用此接口需包含以下权限
         * group-manage:r
         *
         * /{group}/-/members/{username}/access-level
         */
        list: Contributors_ListMemberAccessLevelOfGroup;
      };

      /***
       * 删除指定组织或仓库的直接成员, 包含两种场景: 1. 作为直接成员的用户自己退出 2. 由管理者移除指定的直接成员
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/members/{username}
       */
      delete: Collaborators_DeleteMembersOfGroup;

      /***
       * 添加成员
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/members/{username}
       */
      post: Collaborators_AddMembersOfGroup;

      /***
       * 更新指定组织或仓库内的直接成员权限信息
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/members/{username}
       */
      put: Collaborators_UpdateMembersOfGroup;
    };

    pinnedRepos: {
      /***
       * 获取指定组织的仓库墙列表
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:r
       *
       * /{group}/-/pinned-repos
       */
      list: Repositories_GetPinnedRepoByGroup;

      /***
       * 更新指定组织仓库墙
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/pinned-repos
       */
      put: Repositories_SetPinnedRepoByGroup;
    };

    repos: {
      /***
       * 查询组织下访问用户有权限查看到仓库
       *
       * 访问令牌调用此接口需包含以下权限
       * group-resource:r
       *
       * /{group}/-/repos
       */
      list: Repositories_GetGroupSubRepos;

      /***
       * 创建仓库
       *
       * 访问令牌调用此接口需包含以下权限
       * group-resource:rw
       *
       * /{group}/-/repos
       */
      post: Repositories_CreateRepo;
    };

    settings: {
      /***
       * 获取指定组织的配置详情
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:r
       *
       * /{group}/-/settings
       */
      get: Organizations_GetGroupSetting;

      /***
       * 更新指定组织的配置, 可更新内容为: 是否对外隐藏组织成员
       *
       * 访问令牌调用此接口需包含以下权限
       * group-manage:rw
       *
       * /{group}/-/settings
       */
      put: Organizations_UpdateGroupSetting;
    };

    subGroups: {
      /***
       * 获取指定组织下的子组织列表
       *
       * 访问令牌调用此接口需包含以下权限
       * group-resource:r
       *
       * /{group}/-/sub-groups
       */
      list: Organizations_ListSubgroups;
    };

    upload: {
      logos: {
        /***
         * 发起一个上传 logo 的请求，返回上传 cos 的 url 和 form 内容
         *
         * 访问令牌调用此接口需包含以下权限
         * group-manage:rw
         *
         * /{group}/-/upload/logos
         */
        post: Assets_UploadLogos;
      };
    };
  };

  mission: {
    /***
     * 删除指定任务集
     *
     * 访问令牌调用此接口需包含以下权限
     * mission-delete:rw
     *
     * /{mission}
     */
    delete: Missions_DeleteMission;

    members: {
      /***
       * 添加成员
       *
       * 访问令牌调用此接口需包含以下权限
       * mission-manage:rw
       *
       * /{mission}/-/members/{username}
       */
      post: Collaborators_AddMembersOfMission;
    };
  };

  registry: {
    /***
     * 删除制品仓库
     *
     * 访问令牌调用此接口需包含以下权限
     * registry-delete:rw
     *
     * /{registry}
     */
    delete: Artifactory_DeleteRegistry;

    members: {
      /***
       * 添加成员
       *
       * 访问令牌调用此接口需包含以下权限
       * registry-manage:rw
       *
       * /{registry}/-/members/{username}
       */
      post: Collaborators_AddMembersOfRegistry;
    };
  };

  repo: {
    /***
     * 删除指定仓库
     *
     * 访问令牌调用此接口需包含以下权限
     * repo-delete:rw
     *
     * /{repo}
     */
    delete: Repositories_DeleteRepo;

    /***
     * 获取指定仓库信息
     *
     * 访问令牌调用此接口需包含以下权限
     * repo-basic-info:r
     *
     * /{repo}
     */
    get: Repositories_GetRepo;

    /***
     * 更新仓库信息, 可更新的内容为: 仓库简介, 仓库站点, 仓库主题, 开源许可证
     *
     * 访问令牌调用此接口需包含以下权限
     * repo-manage:rw
     *
     * /{repo}
     */
    patch: Repositories_UpdateRepo;

    build: {
      logs: {
        /***
         * 查询流水线构建列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-cnb-trigger:r
         *
         * /{repo}/-/build/logs
         */
        get: Build_GetBuildLogs;
      };

      start: {
        /***
         * 开始一个构建
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-cnb-trigger:rw
         *
         * /{repo}/-/build/start
         */
        post: Build_StartBuild;
      };

      status: {
        /***
         * 查询流水线构建状态
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-cnb-trigger:r
         *
         * /{repo}/-/build/status/{sn}
         */
        get: Build_GetBuildStatus;
      };

      stop: {
        /***
         * 停止一个构建
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-cnb-trigger:rw
         *
         * /{repo}/-/build/stop/{sn}
         */
        post: Build_StopBuild;
      };
    };

    commitAssets: {
      download: {
        /***
         * 发起一个获取 commits 附件的请求，返回内容或者 302 到某个地址
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:r
         *
         * /{repo}/-/commit-assets/download/{fileName}
         */
        get: Assets_GetCommitAssets;
      };
    };

    contributor: {
      trend: {
        /***
         * 查询仓库贡献者前 100 名的详细趋势数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/contributor/trend
         */
        get: RepoContributor_GetRepoContributorTrend;
      };
    };

    files: {
      /***
       * 发起一个获取 files 的请求，返回内容或者 302 到某个地址
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-contents:r
       *
       * /{repo}/-/files/{userIdKey}/{randomUUID}/{fileName}
       */
      get: Assets_GetFiles;

      /***
       * 发起一个确认 files 的请求，上传的图片要调用此接口才能生效
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-contents:rw
       *
       * /{repo}/-/files/{userIdKey}/{randomUUID}/{fileName}
       */
      put: Assets_PutFiles;
    };

    forks: {
      /***
       * 获取指定仓库的 fork 列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-base-info:r
       *
       * /{repo}/-/forks
       */
      list: Repositories_ListForksRepos;

      /***
       * fork 仓库
       *
       * 访问令牌调用此接口需包含以下权限
       * group-resource:rw
       *
       * /{repo}/-/forks
       */
      post: Repositories_CreateAFork;
    };

    git: {
      archiveCommitChangedFiles: {
        /***
         * 打包下载 commit 变更文件
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/archive-commit-changed-files/{sha1}
         */
        get: Git_GetArchiveCommitChangedFiles;
      };

      archiveCompareChangedFiles: {
        /***
         * 打包下载两次 ref 之间的变更文件
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/archive-compare-changed-files/{base_head}
         */
        get: Git_GetArchiveCompareChangedFiles;
      };

      blobs: {
        /***
         * 创建一个 blob
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/blobs
         */
        post: Git_CreateBlob;
      };

      branches: {
        /***
         * 查询分支列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/branches
         */
        list: Git_ListBranches;

        /***
         * 创建新分支
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/branches
         */
        post: Git_CreateBranch;

        /***
         * 删除指定分支
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/branches/{branch}
         */
        delete: Git_DeleteBranch;

        /***
         * 查询指定分支
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/branches/{branch}
         */
        get: Git_GetBranch;
      };

      commitAnnotationsInBatch: {
        /***
         * 查询指定 commit 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commit-annotations-in-batch
         */
        post: Git_GetCommitAnnotationsInBatch;
      };

      commitAnnotations: {
        /***
         * 查询指定 commit 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commit-annotations/{sha}
         */
        list: Git_GetCommitAnnotations;

        /***
         * 设定指定 commit 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/commit-annotations/{sha}
         */
        put: Git_PutCommitAnnotations;

        /***
         * 删除指定 commit 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/commit-annotations/{sha}/{key}
         */
        delete: Git_DeleteCommitAnnotation;
      };

      commitAssets: {
        /***
         * 查询指定 commit 的附件
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commit-assets/{sha1}
         */
        list: Git_GetCommitAssetsBySha;

        assetUploadConfirmation: {
          /***
           * 确认 Commit asset 上传完成
           *
           * 访问令牌调用此接口需包含以下权限
           * repo-code:rw
           *
           * /{repo}/-/git/commit-assets/{sha1}/asset-upload-confirmation/{token}/{asset_path}
           */
          post: Git_PostCommitAssetUploadConfirmation;
        };

        assetUploadUrl: {
          /***
           * 新增一个 Commit asset
           *
           * 访问令牌调用此接口需包含以下权限
           * repo-code:rw
           *
           * /{repo}/-/git/commit-assets/{sha1}/asset-upload-url
           */
          post: Git_PostCommitAssetUploadURL;
        };

        /***
         * 删除指定 commit 的附件
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/commit-assets/{sha1}/{asset_id}
         */
        delete: Git_DeleteCommitAsset;
      };

      commitStatuses: {
        /***
         * 查询指定 commit 的 check statuses
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commit-statuses/{commitish}
         */
        list: Git_GetCommitStatuses;
      };

      commits: {
        /***
         * 查询 commit 列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commits
         */
        list: Git_ListCommits;

        /***
         * 查询指定 commit
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/commits/{ref}
         */
        get: Git_GetCommit;
      };

      compare: {
        /***
         * 对比 base...head
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/compare/{base_head}
         */
        get: Git_GetCompareCommits;
      };

      contents: {
        /***
         * 查询仓库文件列表或文件
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/contents/{file_path}
         */
        get: Git_GetContent;
      };

      head: {
        /***
         * 获取仓库默认分支
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/git/head
         */
        get: Git_GetHead;
      };

      tagAnnotations: {
        /***
         * 删除指定 tag 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/git/tag-annotations/{tag_with_key}
         */
        delete: Git_DeleteTagAnnotation;

        /***
         * 查询指定 tag 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:r
         *
         * /{repo}/-/git/tag-annotations/{tag}
         */
        list: Git_GetTagAnnotations;

        /***
         * 设定指定 tag 的元数据
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/git/tag-annotations/{tag}
         */
        put: Git_PutTagAnnotations;
      };

      tags: {
        /***
         * 查询标签列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:r
         *
         * /{repo}/-/git/tags
         */
        list: Git_ListTags;

        /***
         * 创建一个 tag
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/git/tags
         */
        post: Git_CreateTag;

        /***
         * 删除指定标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/git/tags/{tag}
         */
        delete: Git_DeleteTag;

        /***
         * 查询指定 Tag
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:r
         *
         * /{repo}/-/git/tags/{tag}
         */
        get: Git_GetTag;
      };
    };

    imgs: {
      /***
       * 发起一个获取 imgs 的请求，返回内容或者 302 到某个地址
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-contents:r
       *
       * /{repo}/-/imgs/{userIdKey}/{fileName}
       */
      get: Assets_GetImgs;

      /***
       * 发起一个确认 imgs 的请求，上传的图片要调用此接口才能生效
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-contents:rw
       *
       * /{repo}/-/imgs/{userIdKey}/{fileName}
       */
      put: Assets_PutImgs;
    };

    inheritMembers: {
      /***
       * 获取指定组织或仓库内的继承成员
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:r
       *
       * /{repo}/-/inherit-members
       */
      list: Collaborators_ListInheritMembersOfRepo;
    };

    issues: {
      /***
       * 查询仓库的 Issues
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:r
       *
       * /{repo}/-/issues
       */
      list: Issues_ListIssues;

      /***
       * 创建一个 Issue
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:rw
       *
       * /{repo}/-/issues
       */
      post: Issues_CreateIssue;

      /***
       * 查询指定的 Issues
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:r
       *
       * /{repo}/-/issues/{number}
       */
      get: Issues_GetIssue;

      /***
       * 更新一个 Issue
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:rw
       *
       * /{repo}/-/issues/{number}
       */
      patch: Issues_UpdateIssue;

      comments: {
        /***
         * 查询仓库的 Issue 评论列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:r
         *
         * /{repo}/-/issues/{number}/comments
         */
        list: Issues_ListIssueComments;

        /***
         * 创建一个 Issue Comment
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/comments
         */
        post: Issues_PostIssueComment;

        /***
         * 获取一个 Issue Comment
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:r
         *
         * /{repo}/-/issues/{number}/comments/{comment_id}
         */
        get: Issues_GetIssueComment;

        /***
         * 修改一个 Issue Comment
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/comments/{comment_id}
         */
        patch: Issues_PatchIssueComment;
      };

      labels: {
        /***
         * 清空 Issue 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/labels
         */
        delete: Issues_DeleteIssueLabels;

        /***
         * 查询 Issue 的标签(label) 列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:r
         *
         * /{repo}/-/issues/{number}/labels
         */
        list: Issues_ListIssueLabels;

        /***
         * 新增 Issue 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/labels
         */
        post: Issues_PostIssueLabels;

        /***
         * 设置 Issue 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/labels
         */
        put: Issues_PutIssueLabels;

        /***
         * 删除 Issue 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/issues/{number}/labels/{name}
         */
        deleteByName: Issues_DeleteIssueLabel;
      };
    };

    labels: {
      /***
       * 查询仓库的标签(label) 列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:r
       *
       * /{repo}/-/labels
       */
      list: RepoLabels_ListLabels;

      /***
       * 创建一个 标签
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:rw
       *
       * /{repo}/-/labels
       */
      post: RepoLabels_PostLabel;

      /***
       * 删除指定的仓库标签 label
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:rw
       *
       * /{repo}/-/labels/{name}
       */
      delete: RepoLabels_DeleteLabel;

      /***
       * 更新标签信息
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-notes:rw
       *
       * /{repo}/-/labels/{name}
       */
      patch: RepoLabels_PatchLabel;
    };

    listMembers: {
      /***
       * 获取指定仓库内的有效成员列表，包含继承成员
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:r
       *
       * /{repo}/-/list-members
       */
      list: Collaborators_ListAllMembers;
    };

    members: {
      /***
       * 获取指定组织或仓库内的所有直接成员
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:r
       *
       * /{repo}/-/members
       */
      list: Collaborators_ListMembersOfRepo;

      accessLevel: {
        /***
         * 获取指定组织或仓库内, 访问成员在当前层级内的权限信息
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/members/access-level
         */
        get: Contributors_GetMemberAccessLevelOfRepo;

        /***
         * 获取指定组织或仓库内指定成员的权限信息, 结果按组织层级来展示, 包含上层组织的权限继承信息
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/members/{username}/access-level
         */
        list: Contributors_ListMemberAccessLevelOfRepo;
      };

      /***
       * 删除指定组织或仓库的直接成员, 包含两种场景: 1. 作为直接成员的用户自己退出 2. 由管理者移除指定的直接成员
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:rw
       *
       * /{repo}/-/members/{username}
       */
      delete: Collaborators_DeleteMembersOfRepo;

      /***
       * 添加成员
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:rw
       *
       * /{repo}/-/members/{username}
       */
      post: Collaborators_AddMembersOfRepo;

      /***
       * 更新指定组织或仓库内的直接成员权限信息
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:rw
       *
       * /{repo}/-/members/{username}
       */
      put: Collaborators_UpdateMembersOfRepo;
    };

    outsideCollaborators: {
      /***
       * 获取指定仓库内的外部贡献者
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:r
       *
       * /{repo}/-/outside-collaborators
       */
      list: Collaborators_ListOutsideCollaborators;

      /***
       * 删除指定仓库的外部贡献者, 包含两种场景: 1. 作为外部贡献者的用户自己退出仓库 2. 由仓库管理者移除指定的外部贡献者
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:rw
       *
       * /{repo}/-/outside-collaborators/{username}
       */
      delete: Collaborators_DeleteOutsideCollaborators;

      /***
       * 更新指定仓库的外部贡献者权限信息
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-manage:rw
       *
       * /{repo}/-/outside-collaborators/{username}
       */
      put: Collaborators_UpdateOutsideCollaborators;
    };

    pullInBatch: {
      /***
       * [openapi] 根据numbers查询 Pull 列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-pr:r
       *
       * /{repo}/-/pull-in-batch
       */
      list: Pulls_ListPullsByNumbers;
    };

    pulls: {
      /***
       * [openapi] 查询 Pull 列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-pr:r
       *
       * /{repo}/-/pulls
       */
      list: Pulls_ListPulls;

      /***
       * [openapi] 新增一个 Pull
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-pr:rw
       *
       * /{repo}/-/pulls
       */
      post: Pulls_PostPull;

      /***
       * [openapi] 查询指定 Pull
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-pr:r
       *
       * /{repo}/-/pulls/{number}
       */
      get: Pulls_GetPull;

      /***
       * [openapi] 更新一个 Pull Request
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-pr:rw
       *
       * /{repo}/-/pulls/{number}
       */
      patch: Pulls_PatchPull;

      comments: {
        /***
         * [openapi] 查询 Pull Comments 列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:r
         *
         * /{repo}/-/pulls/{number}/comments
         */
        list: Pulls_ListPullComments;

        /***
         * [openapi] 新增一个 Pull Comment
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/comments
         */
        post: Pulls_PostPullComment;
      };

      labels: {
        /***
         * 清空 Pull 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/labels
         */
        delete: Pulls_DeletePullLabels;

        /***
         * 查询 Pull 的标签(label) 列表
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:r
         *
         * /{repo}/-/pulls/{number}/labels
         */
        list: Pulls_ListPullLabels;

        /***
         * 新增 Pull 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/labels
         */
        post: Pulls_PostPullLabels;

        /***
         * 设置 Pull 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/labels
         */
        put: Pulls_PutPullLabels;

        /***
         * 删除 Pull 标签
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/labels/{name}
         */
        deleteByName: Pulls_DeletePullLabel;
      };

      merge: {
        /***
         * [openapi] 合并一个 Pull Request
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-pr:rw
         *
         * /{repo}/-/pulls/{number}/merge
         */
        put: Pulls_MergePull;
      };

      reviews: {
        /***
         * 新增一次 pull request 评审
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-notes:rw
         *
         * /{repo}/-/pulls/{number}/reviews
         */
        post: Pulls_PostPullReview;
      };
    };

    releases: {
      /***
       * [openapi] 查询 release 列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-code:r
       *
       * /{repo}/-/releases
       */
      list: Releases_ListReleases;

      /***
       * [openapi] 新增一个 Release
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-code:rw
       *
       * /{repo}/-/releases
       */
      post: Releases_PostRelease;

      download: {
        /***
         * 发起一个获取 release 附件的请求，返回内容或者 302 到某个地址
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:r
         *
         * /{repo}/-/releases/download/{fileName}
         */
        get: Assets_GetReleasesAsset;
      };

      tags: {
        /***
         * [openapi] 通过 tag 查询指定 release
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/releases/tags/{tag}
         */
        get: Releases_GetReleaseByTag;
      };

      /***
       * [openapi] 删除指定的 release
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-code:rw
       *
       * /{repo}/-/releases/{release_id}
       */
      delete: Releases_DeleteRelease;

      /***
       * [openapi] 根据 id	查询指定 release
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-code:r
       *
       * /{repo}/-/releases/{release_id}
       */
      get: Releases_GetReleaseByID;

      /***
       * [openapi] 更新 release
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-code:rw
       *
       * /{repo}/-/releases/{release_id}
       */
      patch: Releases_PatchRelease;

      assetUploadConfirmation: {
        /***
         * [openapi] 确认 Release asset 上传完成
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/releases/{release_id}/asset-upload-confirmation/{token}/{asset_path}
         */
        post: Releases_PostReleaseAssetUploadConfirmation;
      };

      assetUploadUrl: {
        /***
         * [openapi] 新增一个 Release asset
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/releases/{release_id}/asset-upload-url
         */
        post: Releases_PostReleaseAssetUploadURL;
      };

      assets: {
        /***
         * [openapi] 删除指定的 release asset
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:rw
         *
         * /{repo}/-/releases/{release_id}/assets/{asset_id}
         */
        delete: Releases_DeleteReleaseAsset;

        /***
         * [openapi] 查询指定的 release asset
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-code:r
         *
         * /{repo}/-/releases/{release_id}/assets/{asset_id}
         */
        get: Releases_GetReleaseAsset;
      };
    };

    settings: {
      branchProtections: {
        /***
         * 查询仓库保护分支规则列表(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/settings/branch-protections
         */
        list: GitSettings_ListBranchProtections;

        /***
         * 新增仓库保护分支规则(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/branch-protections
         */
        post: GitSettings_PostBranchProtection;

        /***
         * 删除仓库保护分支规则(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/branch-protections/{id}
         */
        delete: GitSettings_DeleteBranchProtection;

        /***
         * 查询仓库保护分支规则(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/settings/branch-protections/{id}
         */
        get: GitSettings_GetBranchProtection;

        /***
         * 更新仓库保护分支规则(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/branch-protections/{id}
         */
        patch: GitSettings_PatchBranchProtection;
      };

      cloudNativeBuild: {
        /***
         * 查询仓库云原生构建设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/settings/cloud-native-build
         */
        get: GitSettings_GetPipelineSettings;

        /***
         * 更新仓库云原生构建设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/cloud-native-build
         */
        put: GitSettings_PutPipelineSettings;
      };

      pullRequest: {
        /***
         * 查询仓库合并请求设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/settings/pull-request
         */
        get: GitSettings_GetPullRequestSettings;

        /***
         * 设置仓库推送设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/pull-request
         */
        put: GitSettings_PutPullRequestSettings;
      };

      pushLimit: {
        /***
         * 查询仓库推送设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:r
         *
         * /{repo}/-/settings/push-limit
         */
        get: GitSettings_GetPushLimitSettings;

        /***
         * 设置仓库推送设置(openapi)
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-manage:rw
         *
         * /{repo}/-/settings/push-limit
         */
        put: GitSettings_PutPushLimitSettings;
      };
    };

    stars: {
      /***
       * 获取指定仓库的star用户列表
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-basic-info:r
       *
       * /{repo}/-/stars
       */
      get: Starring_ListStarUsers;
    };

    topActivityUsers: {
      /***
       * 获取 top 贡献用户
       *
       * 访问令牌调用此接口需包含以下权限
       * repo-base-info:r
       *
       * /{repo}/-/top-activity-users
       */
      list: Collaborators_TopContributors;
    };

    upload: {
      files: {
        /***
         * 发起一个上传 files（issue，pr 及其评论中文档，压缩包等）的请求，返回上传 cos 的 url 和 form 内容
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/upload/files
         */
        post: Assets_UploadFiles;
      };

      imgs: {
        /***
         * 发起一个上传 imgs 的请求，返回上传 cos 的 url 和 form 内容
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/upload/imgs
         */
        post: Assets_UploadImgs;
      };

      releases: {
        /***
         * 发起一个上传 release 附件的请求，返回上传 cos 的 url 和 form 内容
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-contents:rw
         *
         * /{repo}/-/upload/releases/{tagName}
         */
        post: Assets_UploadReleases;
      };
    };

    workspace: {
      detail: {
        /***
         * 根据流水线sn查询云原生开发访问地址
         *
         * 访问令牌调用此接口需包含以下权限
         * repo-cnb-detail:r
         *
         * /{repo}/-/workspace/detail/{sn}
         */
        get: Workspace_GetWorkspaceDetail;
      };
    };
  };

  slug: {
    packages: {
      /***
       * List all packages
       *
       * 访问令牌调用此接口需包含以下权限
       * registry-package:r
       *
       * /{slug}/-/packages
       */
      list: Artifactory_ListPackages;

      /***
       * Head all packages
       *
       * 访问令牌调用此接口需包含以下权限
       * registry-package:r
       *
       * /{slug}/-/packages
       */
      head: Artifactory_HeadPackages;

      type: {
        quota: {
          /***
           * Get quota of specific registry
           *
           * 访问令牌调用此接口需包含以下权限
           * registry-package:r
           *
           * /{slug}/-/packages/{type}/-/quota
           */
          get: Artifactory_GetQuotaByProjectName;
        };

        quotas: {
          /***
           * Get quotas of packages under one registry
           *
           * 访问令牌调用此接口需包含以下权限
           * registry-package:r
           *
           * /{slug}/-/packages/{type}/-/quotas
           */
          list: Artifactory_GetQuotasByProjectName;

          download: {
            /***
             * Download registry quota details
             *
             * 访问令牌调用此接口需包含以下权限
             * registry-package:r
             *
             * /{slug}/-/packages/{type}/-/quotas/download
             */
            list: Artifactory_DownloadQuotasByProjectName;
          };
        };
      };

      /***
       * Get the specific package
       *
       * 访问令牌调用此接口需包含以下权限
       * registry-package:r
       *
       * /{slug}/-/packages/{type}/{name}
       */
      get: Artifactory_GetPackage;

      name: {
        tag: {
          /***
           * Delete the specific tag under specific package
           *
           * 访问令牌调用此接口需包含以下权限
           * registry-package-delete:rw
           *
           * /{slug}/-/packages/{type}/{name}/-/tag/{tag}
           */
          delete: Artifactory_DeletePackageTag;

          /***
           * Get the specific tag under specific package
           *
           * 访问令牌调用此接口需包含以下权限
           * registry-package:r
           *
           * /{slug}/-/packages/{type}/{name}/-/tag/{tag}
           */
          get: Artifactory_GetPackageTagDetail;
        };
      };

      pkgname: {
        tags: {
          /***
           * List all tags under specific package
           *
           * 访问令牌调用此接口需包含以下权限
           * registry-package:r
           *
           * /{slug}/-/packages/{type}/{pkgname}/-/tags
           */
          get: Artifactory_ListPackageTags;
        };
      };
    };
  };

  Organizations: {
    CreateOrganization: Organizations_CreateOrganization;
    ListTopGroups: Organizations_ListTopGroups;
    ListGroups: Organizations_ListGroups;
    GetGroupsByUserID: Organizations_GetGroupsByUserID;
    DeleteOrganization: Organizations_DeleteOrganization;
    GetGroup: Organizations_GetGroup;
    UpdateOrganization: Organizations_UpdateOrganization;
    UpdateGroupAvatar: Organizations_UpdateGroupAvatar;
    GetGroupSetting: Organizations_GetGroupSetting;
    UpdateGroupSetting: Organizations_UpdateGroupSetting;
    ListSubgroups: Organizations_ListSubgroups;
  };

  Users: {
    GetUserInfo: Users_GetUserInfo;
    UpdateUserInfo: Users_UpdateUserInfo;
    AutoCompleteSource: Users_AutoCompleteSource;
    GetUserInfoByName: Users_GetUserInfoByName;
  };

  Repositories: {
    GetRepos: Repositories_GetRepos;
    GetUserAllStaredRepos: Repositories_GetUserAllStaredRepos;
    GetPinnedRepoByID: Repositories_GetPinnedRepoByID;
    GetReposByUserName: Repositories_GetReposByUserName;
    GetPinnedRepoByGroup: Repositories_GetPinnedRepoByGroup;
    SetPinnedRepoByGroup: Repositories_SetPinnedRepoByGroup;
    GetGroupSubRepos: Repositories_GetGroupSubRepos;
    CreateRepo: Repositories_CreateRepo;
    DeleteRepo: Repositories_DeleteRepo;
    GetRepo: Repositories_GetRepo;
    UpdateRepo: Repositories_UpdateRepo;
    ListForksRepos: Repositories_ListForksRepos;
    CreateAFork: Repositories_CreateAFork;
  };

  Assets: {
    GetUserAvatar: Assets_GetUserAvatar;
    PutLogos: Assets_PutLogos;
    GetLogos: Assets_GetLogos;
    UploadLogos: Assets_UploadLogos;
    GetCommitAssets: Assets_GetCommitAssets;
    GetFiles: Assets_GetFiles;
    PutFiles: Assets_PutFiles;
    GetImgs: Assets_GetImgs;
    PutImgs: Assets_PutImgs;
    GetReleasesAsset: Assets_GetReleasesAsset;
    UploadFiles: Assets_UploadFiles;
    UploadImgs: Assets_UploadImgs;
    UploadReleases: Assets_UploadReleases;
  };

  Followers: {
    GetFollowersByUserID: Followers_GetFollowersByUserID;
    GetFollowingByUserID: Followers_GetFollowingByUserID;
  };

  Starring: {
    GetUserStaredRepos: Starring_GetUserStaredRepos;
    ListStarUsers: Starring_ListStarUsers;
  };

  Workspace: {
    DeleteWorkspace: Workspace_DeleteWorkspace;
    ListWorkspaces: Workspace_ListWorkspaces;
    GetWorkspaceDetail: Workspace_GetWorkspaceDetail;
  };

  Collaborators: {
    ListInheritMembersOfGroup: Collaborators_ListInheritMembersOfGroup;
    ListMembersOfGroup: Collaborators_ListMembersOfGroup;
    DeleteMembersOfGroup: Collaborators_DeleteMembersOfGroup;
    AddMembersOfGroup: Collaborators_AddMembersOfGroup;
    UpdateMembersOfGroup: Collaborators_UpdateMembersOfGroup;
    AddMembersOfMission: Collaborators_AddMembersOfMission;
    AddMembersOfRegistry: Collaborators_AddMembersOfRegistry;
    ListInheritMembersOfRepo: Collaborators_ListInheritMembersOfRepo;
    ListAllMembers: Collaborators_ListAllMembers;
    ListMembersOfRepo: Collaborators_ListMembersOfRepo;
    DeleteMembersOfRepo: Collaborators_DeleteMembersOfRepo;
    AddMembersOfRepo: Collaborators_AddMembersOfRepo;
    UpdateMembersOfRepo: Collaborators_UpdateMembersOfRepo;
    ListOutsideCollaborators: Collaborators_ListOutsideCollaborators;
    DeleteOutsideCollaborators: Collaborators_DeleteOutsideCollaborators;
    UpdateOutsideCollaborators: Collaborators_UpdateOutsideCollaborators;
    TopContributors: Collaborators_TopContributors;
  };

  Contributors: {
    GetMemberAccessLevelOfGroup: Contributors_GetMemberAccessLevelOfGroup;
    ListMemberAccessLevelOfGroup: Contributors_ListMemberAccessLevelOfGroup;
    GetMemberAccessLevelOfRepo: Contributors_GetMemberAccessLevelOfRepo;
    ListMemberAccessLevelOfRepo: Contributors_ListMemberAccessLevelOfRepo;
  };

  Missions: {
    DeleteMission: Missions_DeleteMission;
  };

  Artifactory: {
    DeleteRegistry: Artifactory_DeleteRegistry;
    ListPackages: Artifactory_ListPackages;
    HeadPackages: Artifactory_HeadPackages;
    GetQuotaByProjectName: Artifactory_GetQuotaByProjectName;
    GetQuotasByProjectName: Artifactory_GetQuotasByProjectName;
    DownloadQuotasByProjectName: Artifactory_DownloadQuotasByProjectName;
    GetPackage: Artifactory_GetPackage;
    DeletePackageTag: Artifactory_DeletePackageTag;
    GetPackageTagDetail: Artifactory_GetPackageTagDetail;
    ListPackageTags: Artifactory_ListPackageTags;
  };

  Build: {
    GetBuildLogs: Build_GetBuildLogs;
    StartBuild: Build_StartBuild;
    GetBuildStatus: Build_GetBuildStatus;
    StopBuild: Build_StopBuild;
  };

  RepoContributor: {
    GetRepoContributorTrend: RepoContributor_GetRepoContributorTrend;
  };

  Git: {
    GetArchiveCommitChangedFiles: Git_GetArchiveCommitChangedFiles;
    GetArchiveCompareChangedFiles: Git_GetArchiveCompareChangedFiles;
    CreateBlob: Git_CreateBlob;
    ListBranches: Git_ListBranches;
    CreateBranch: Git_CreateBranch;
    DeleteBranch: Git_DeleteBranch;
    GetBranch: Git_GetBranch;
    GetCommitAnnotationsInBatch: Git_GetCommitAnnotationsInBatch;
    GetCommitAnnotations: Git_GetCommitAnnotations;
    PutCommitAnnotations: Git_PutCommitAnnotations;
    DeleteCommitAnnotation: Git_DeleteCommitAnnotation;
    GetCommitAssetsBySha: Git_GetCommitAssetsBySha;
    PostCommitAssetUploadConfirmation: Git_PostCommitAssetUploadConfirmation;
    PostCommitAssetUploadURL: Git_PostCommitAssetUploadURL;
    DeleteCommitAsset: Git_DeleteCommitAsset;
    GetCommitStatuses: Git_GetCommitStatuses;
    ListCommits: Git_ListCommits;
    GetCommit: Git_GetCommit;
    GetCompareCommits: Git_GetCompareCommits;
    GetContent: Git_GetContent;
    GetHead: Git_GetHead;
    DeleteTagAnnotation: Git_DeleteTagAnnotation;
    GetTagAnnotations: Git_GetTagAnnotations;
    PutTagAnnotations: Git_PutTagAnnotations;
    ListTags: Git_ListTags;
    CreateTag: Git_CreateTag;
    DeleteTag: Git_DeleteTag;
    GetTag: Git_GetTag;
  };

  Issues: {
    ListIssues: Issues_ListIssues;
    CreateIssue: Issues_CreateIssue;
    GetIssue: Issues_GetIssue;
    UpdateIssue: Issues_UpdateIssue;
    ListIssueComments: Issues_ListIssueComments;
    PostIssueComment: Issues_PostIssueComment;
    GetIssueComment: Issues_GetIssueComment;
    PatchIssueComment: Issues_PatchIssueComment;
    DeleteIssueLabels: Issues_DeleteIssueLabels;
    ListIssueLabels: Issues_ListIssueLabels;
    PostIssueLabels: Issues_PostIssueLabels;
    PutIssueLabels: Issues_PutIssueLabels;
    DeleteIssueLabel: Issues_DeleteIssueLabel;
  };

  RepoLabels: {
    ListLabels: RepoLabels_ListLabels;
    PostLabel: RepoLabels_PostLabel;
    DeleteLabel: RepoLabels_DeleteLabel;
    PatchLabel: RepoLabels_PatchLabel;
  };

  Pulls: {
    ListPullsByNumbers: Pulls_ListPullsByNumbers;
    ListPulls: Pulls_ListPulls;
    PostPull: Pulls_PostPull;
    GetPull: Pulls_GetPull;
    PatchPull: Pulls_PatchPull;
    ListPullComments: Pulls_ListPullComments;
    PostPullComment: Pulls_PostPullComment;
    DeletePullLabels: Pulls_DeletePullLabels;
    ListPullLabels: Pulls_ListPullLabels;
    PostPullLabels: Pulls_PostPullLabels;
    PutPullLabels: Pulls_PutPullLabels;
    DeletePullLabel: Pulls_DeletePullLabel;
    MergePull: Pulls_MergePull;
    PostPullReview: Pulls_PostPullReview;
  };

  Releases: {
    ListReleases: Releases_ListReleases;
    PostRelease: Releases_PostRelease;
    GetReleaseByTag: Releases_GetReleaseByTag;
    DeleteRelease: Releases_DeleteRelease;
    GetReleaseByID: Releases_GetReleaseByID;
    PatchRelease: Releases_PatchRelease;
    PostReleaseAssetUploadConfirmation: Releases_PostReleaseAssetUploadConfirmation;
    PostReleaseAssetUploadURL: Releases_PostReleaseAssetUploadURL;
    DeleteReleaseAsset: Releases_DeleteReleaseAsset;
    GetReleaseAsset: Releases_GetReleaseAsset;
  };

  GitSettings: {
    ListBranchProtections: GitSettings_ListBranchProtections;
    PostBranchProtection: GitSettings_PostBranchProtection;
    DeleteBranchProtection: GitSettings_DeleteBranchProtection;
    GetBranchProtection: GitSettings_GetBranchProtection;
    PatchBranchProtection: GitSettings_PatchBranchProtection;
    GetPipelineSettings: GitSettings_GetPipelineSettings;
    PutPipelineSettings: GitSettings_PutPipelineSettings;
    GetPullRequestSettings: GitSettings_GetPullRequestSettings;
    PutPullRequestSettings: GitSettings_PutPullRequestSettings;
    GetPushLimitSettings: GitSettings_GetPushLimitSettings;
    PutPushLimitSettings: GitSettings_PutPushLimitSettings;
  };
}
