# Generated with protoc-gen-openapi # https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi openapi: 3.0.3 info: title: "" version: 0.0.1 paths: /v1/auth/email/login: post: tags: - AuthService operationId: AuthService_EmailLogin requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.EmailLoginRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.LoginReply' /v1/auth/email/login/code: post: tags: - AuthService operationId: AuthService_SendEmailLoginCode requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.SendEmailLoginCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.SendEmailLoginCodeReply' /v1/auth/oauth2/login: post: tags: - AuthService operationId: AuthService_OAuth2Login requestBody: content: application/json: schema: $ref: '#/components/schemas/magicbox.oauth.OAuth2LoginRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.LoginReply' /v1/captcha: get: tags: - Captcha operationId: Captcha_GetCaptcha responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.GetCaptchaReply' /v1/member/invite: post: tags: - Member operationId: Member_InviteMember requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.InviteMemberRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.InviteMemberReply' /v1/member/{uid}: get: tags: - Member operationId: Member_GetMember parameters: - name: uid in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.MemberItem' delete: tags: - Member operationId: Member_DismissMember parameters: - name: uid in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.DismissMemberReply' /v1/member/{uid}/status: put: tags: - Member operationId: Member_UpdateMemberStatus parameters: - name: uid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateMemberStatusRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateMemberStatusReply' /v1/members: get: tags: - Member operationId: Member_ListMember parameters: - name: page in: query schema: type: integer format: int32 - name: pageSize in: query schema: type: integer format: int32 - name: keyword in: query schema: type: string - name: status in: query schema: type: integer format: enum - name: userUID in: query schema: type: string - name: email in: query schema: type: string - name: phone in: query schema: type: string - name: uids in: query schema: type: array items: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ListMemberReply' /v1/members/select: get: tags: - Member operationId: Member_SelectMember parameters: - name: keyword in: query schema: type: string - name: limit in: query schema: type: integer format: int32 - name: lastUID in: query schema: type: string - name: status in: query schema: type: integer format: enum - name: uids in: query schema: type: array items: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.SelectMemberReply' /v1/members/user/{userUID}: get: tags: - Member operationId: Member_GetMemberByUserUID parameters: - name: userUID in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.MemberItem' /v1/namespace: post: tags: - Namespace operationId: Namespace_CreateNamespace requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.CreateNamespaceRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.CreateNamespaceReply' /v1/namespace/{uid}: get: tags: - Namespace operationId: Namespace_GetNamespace parameters: - name: uid in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.NamespaceItem' put: tags: - Namespace operationId: Namespace_UpdateNamespace parameters: - name: uid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateNamespaceRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateNamespaceReply' delete: tags: - Namespace operationId: Namespace_DeleteNamespace parameters: - name: uid in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.DeleteNamespaceReply' /v1/namespace/{uid}/status: put: tags: - Namespace operationId: Namespace_UpdateNamespaceStatus parameters: - name: uid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateNamespaceStatusRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UpdateNamespaceStatusReply' /v1/namespaces: get: tags: - Namespace operationId: Namespace_ListNamespace parameters: - name: page in: query schema: type: integer format: int32 - name: pageSize in: query schema: type: integer format: int32 - name: keyword in: query schema: type: string - name: status in: query schema: type: integer format: enum responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ListNamespaceReply' /v1/namespaces/select: get: tags: - Namespace operationId: Namespace_SelectNamespace parameters: - name: keyword in: query schema: type: string - name: limit in: query schema: type: integer format: int32 - name: lastUID in: query schema: type: string - name: status in: query schema: type: integer format: enum responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.SelectNamespaceReply' /v1/namespaces/simple: get: tags: - Namespace description: GetNamespaceSimple returns namespace detail by uid and secret, no auth required. operationId: Namespace_GetNamespaceSimple parameters: - name: uid in: query schema: type: string - name: secret in: query schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.NamespaceItem' /v1/self/change-avatar: put: tags: - Self operationId: Self_ChangeAvatar requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeAvatarRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeReply' /v1/self/change-email: put: tags: - Self operationId: Self_ChangeEmail requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeEmailRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeReply' /v1/self/change-remark: put: tags: - Self operationId: Self_ChangeRemark requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeRemarkRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ChangeReply' /v1/self/info: get: tags: - Self operationId: Self_Info responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UserItem' /v1/self/namespaces: get: tags: - Self operationId: Self_Namespaces responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.NamespacesReply' /v1/self/refresh-token: get: tags: - Self operationId: Self_RefreshToken responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.RefreshTokenReply' /v1/user/ban/{uid}: put: tags: - User operationId: User_BanUser parameters: - name: uid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.BanUserRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.BanUserReply' /v1/user/permit/{uid}: put: tags: - User operationId: User_PermitUser parameters: - name: uid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.PermitUserRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.PermitUserReply' /v1/user/{uid}: get: tags: - User operationId: User_GetUser parameters: - name: uid in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.UserItem' /v1/users: get: tags: - User operationId: User_ListUser parameters: - name: page in: query schema: type: integer format: int32 - name: pageSize in: query schema: type: integer format: int32 - name: email in: query schema: type: string - name: keyword in: query schema: type: string - name: status in: query schema: type: integer format: enum responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.ListUserReply' /v1/users/select: get: tags: - User operationId: User_SelectUser parameters: - name: keyword in: query schema: type: string - name: limit in: query schema: type: integer format: int32 - name: lastUID in: query schema: type: string - name: status in: query schema: type: integer format: enum responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/goddess.api.v1.SelectUserReply' components: schemas: goddess.api.v1.BanUserReply: type: object properties: message: type: string goddess.api.v1.BanUserRequest: type: object properties: uid: type: string reason: type: string goddess.api.v1.ChangeAvatarRequest: type: object properties: avatar: type: string goddess.api.v1.ChangeEmailRequest: type: object properties: email: type: string goddess.api.v1.ChangeRemarkRequest: type: object properties: remark: type: string goddess.api.v1.ChangeReply: type: object properties: message: type: string goddess.api.v1.CreateNamespaceReply: type: object properties: uid: type: string goddess.api.v1.CreateNamespaceRequest: type: object properties: name: type: string metadata: type: object additionalProperties: type: string remark: type: string logo: type: string banners: type: array items: type: string goddess.api.v1.DeleteNamespaceReply: type: object properties: {} goddess.api.v1.DismissMemberReply: type: object properties: message: type: string goddess.api.v1.EmailLoginRequest: type: object properties: email: type: string code: type: string goddess.api.v1.GetCaptchaReply: type: object properties: captchaId: type: string captchaB64s: type: string goddess.api.v1.InviteMemberReply: type: object properties: message: type: string goddess.api.v1.InviteMemberRequest: type: object properties: email: type: string role: type: integer format: enum goddess.api.v1.ListMemberReply: type: object properties: items: type: array items: $ref: '#/components/schemas/goddess.api.v1.MemberItem' total: type: string page: type: integer format: int32 pageSize: type: integer format: int32 goddess.api.v1.ListNamespaceReply: type: object properties: total: type: string page: type: integer format: int32 pageSize: type: integer format: int32 items: type: array items: $ref: '#/components/schemas/goddess.api.v1.NamespaceItem' goddess.api.v1.ListUserReply: type: object properties: items: type: array items: $ref: '#/components/schemas/goddess.api.v1.UserItem' total: type: string page: type: integer format: int32 pageSize: type: integer format: int32 goddess.api.v1.LoginReply: type: object properties: token: type: string goddess.api.v1.MemberItem: type: object properties: uid: type: string email: type: string phone: type: string status: type: integer format: enum createdAt: type: string updatedAt: type: string userUID: type: string name: type: string nickname: type: string avatar: type: string remark: type: string role: type: integer format: enum goddess.api.v1.NamespaceItem: type: object properties: uid: type: string name: type: string metadata: type: object additionalProperties: type: string remark: type: string createdAt: type: string updatedAt: type: string status: type: integer format: enum logo: type: string secret: type: string banners: type: array items: type: string leader: type: string goddess.api.v1.NamespaceItemSelect: type: object properties: value: type: string label: type: string disabled: type: boolean tooltip: type: string goddess.api.v1.NamespacesReply: type: object properties: namespaces: type: array items: $ref: '#/components/schemas/goddess.api.v1.NamespaceItem' goddess.api.v1.PermitUserReply: type: object properties: message: type: string goddess.api.v1.PermitUserRequest: type: object properties: uid: type: string reason: type: string goddess.api.v1.RefreshTokenReply: type: object properties: token: type: string goddess.api.v1.SelectMemberItem: type: object properties: value: type: string label: type: string disabled: type: boolean tooltip: type: string goddess.api.v1.SelectMemberReply: type: object properties: items: type: array items: $ref: '#/components/schemas/goddess.api.v1.SelectMemberItem' total: type: string lastUID: type: string hasMore: type: boolean goddess.api.v1.SelectNamespaceReply: type: object properties: items: type: array items: $ref: '#/components/schemas/goddess.api.v1.NamespaceItemSelect' total: type: string lastUID: type: string hasMore: type: boolean goddess.api.v1.SelectUserItem: type: object properties: value: type: string label: type: string disabled: type: boolean tooltip: type: string goddess.api.v1.SelectUserReply: type: object properties: items: type: array items: $ref: '#/components/schemas/goddess.api.v1.SelectUserItem' total: type: string lastUID: type: string hasMore: type: boolean goddess.api.v1.SendEmailLoginCodeReply: type: object properties: message: type: string goddess.api.v1.SendEmailLoginCodeRequest: type: object properties: email: type: string captchaId: type: string captchaAnswer: type: string goddess.api.v1.UpdateMemberStatusReply: type: object properties: message: type: string goddess.api.v1.UpdateMemberStatusRequest: type: object properties: uid: type: string status: type: integer format: enum goddess.api.v1.UpdateNamespaceReply: type: object properties: {} goddess.api.v1.UpdateNamespaceRequest: type: object properties: uid: type: string name: type: string metadata: type: object additionalProperties: type: string remark: type: string logo: type: string banners: type: array items: type: string goddess.api.v1.UpdateNamespaceStatusReply: type: object properties: {} goddess.api.v1.UpdateNamespaceStatusRequest: type: object properties: uid: type: string status: type: integer format: enum goddess.api.v1.UserItem: type: object properties: uid: type: string email: type: string phone: type: string status: type: integer format: enum createdAt: type: string updatedAt: type: string name: type: string nickname: type: string avatar: type: string remark: type: string magicbox.config.OAuth2_Config: type: object properties: app: type: integer format: enum clientId: type: string clientSecret: type: string callbackUri: type: string authUrl: type: string tokenUrl: type: string scopes: type: array items: type: string loginUrl: type: string magicbox.oauth.OAuth2LoginRequest: type: object properties: app: type: integer format: enum config: $ref: '#/components/schemas/magicbox.config.OAuth2_Config' user: $ref: '#/components/schemas/magicbox.oauth.OAuth2User' portal: type: string magicbox.oauth.OAuth2User: type: object properties: openID: type: string name: type: string nickname: type: string email: type: string avatar: type: string app: type: integer format: enum remark: type: string raw: type: string format: bytes tags: - name: AuthService - name: Captcha - name: Member - name: Namespace - name: Self - name: User