openapi: 3.0.3 info: version: 3.1.0 title: Digicore tags: - name: auth description: Authentication system - name: user description: User system - name: event description: Event system - name: tool description: Tool system - name: storage description: Storage system - name: work description: Work system - name: group description: Group system - name: budget description: Budget system - name: payment description: Payment system (need 'account' permission) - name: status description: Status system - name: mattermost description: Mattermost system - name: mail description: Mail system - name: admin description: Admin system - name: activity description: Activity system - name: public description: Public system - name: grade-update description: Grade update request system - name: reentry description: Reentry request system paths: /status: get: tags: - status description: Server status check responses: '200': description: All Systems Operational content: application/json: schema: $ref: '#/components/schemas/ResGetStatus' '500': $ref: '#/components/responses/InternalServer' /status/club_room: get: tags: - status description: Get club room status responses: '200': description: Success get club room status page content: application/json: schema: $ref: '#/components/schemas/ResGetStatusClubRoom' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - status description: Update club room status requestBody: description: club room status required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutStatusClubRoom' responses: '200': description: OK '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /signup: get: tags: - auth description: Get signup URL responses: '200': description: Signup URL content: application/json: schema: $ref: '#/components/schemas/ResGetSignup' /signup/callback: post: tags: - auth description: Verify auth requestBody: description: Auth information required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostSignupCallback' responses: '200': description: Success signup content: application/json: schema: $ref: '#/components/schemas/ResPostSignupCallback' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/Conflict' '500': $ref: '#/components/responses/InternalServer' /login: get: tags: - auth description: Get login URL responses: '200': description: Login URL content: application/json: schema: $ref: '#/components/schemas/ResGetLogin' /login/callback: post: tags: - auth description: Verify auth requestBody: description: Auth information required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostLoginCallback' responses: '200': description: Success signup content: application/json: schema: $ref: '#/components/schemas/ResPostLoginCallback' '500': $ref: '#/components/responses/InternalServer' /user: get: tags: - user description: Get user list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer - name: seed in: query schema: type: integer responses: '200': description: Success get user list content: application/json: schema: $ref: '#/components/schemas/ResGetUser' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /user/search: get: tags: - user description: Search users by username security: - BearerAuth: [] parameters: - name: query in: query required: true schema: type: string minLength: 1 maxLength: 10 responses: '200': description: Success search users content: application/json: schema: $ref: '#/components/schemas/ResGetUser' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/user/{userId}': get: tags: - user description: Get user id's profile security: - BearerAuth: [] parameters: - name: userId in: path required: true schema: type: string responses: '200': description: Success get user id's profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserUserId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/user/{userId}/introduction': get: tags: - user description: Get my introduction security: - BearerAuth: [] parameters: - name: userId in: path required: true schema: type: string responses: '200': description: Success get my introduction content: application/json: schema: $ref: '#/components/schemas/ResGetUserUserIdIntroduction' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/user/{userId}/group': get: tags: - user description: Get groups which the specified user joined security: - BearerAuth: [] parameters: - name: userId in: path required: true schema: type: string responses: '200': description: Success get groups which the specified user joined content: application/json: schema: $ref: '#/components/schemas/ResGetGroup' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/user/{userId}/work': get: tags: - user description: Get works which the specified user is included as author security: - BearerAuth: [] parameters: - name: userId in: path required: true schema: type: string responses: '200': description: Success get works which the specified user is included as author content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWork' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /user/me: get: tags: - user description: Get my profile security: - BearerAuth: [] responses: '200': description: Success get my profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMe' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - user description: Update my profile security: - BearerAuth: [] requestBody: description: My profile required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMe' responses: '200': description: Success update my profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMe' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/renewal: put: tags: - user description: Renewal active limit security: - BearerAuth: [] responses: '200': description: Success update my private profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMe' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/graduated: put: tags: - user description: Set my graduated status security: - BearerAuth: [] responses: '200': description: Success update my profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMe' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/discord: get: tags: - user description: Get discord login URL security: - BearerAuth: [] responses: '200': description: Discord login URL content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeDiscord' /user/me/discord/callback: put: tags: - user description: Verify discord auth security: - BearerAuth: [] requestBody: description: Auth information required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMeDiscordCallback' responses: '200': description: Success signup content: application/json: schema: $ref: '#/components/schemas/ResGetUserMe' '500': $ref: '#/components/responses/InternalServer' /user/me/introduction: get: tags: - user description: Get my introduction security: - BearerAuth: [] responses: '200': description: Success get my introduction content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeIntroduction' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - user description: Update my introduction security: - BearerAuth: [] requestBody: description: My introduction required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMeIntroduction' responses: '200': description: Success update my introduction content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeIntroduction' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/private: get: tags: - user description: Get my private profile security: - BearerAuth: [] responses: '200': description: Success get my private profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMePrivate' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - user description: Update my profile security: - BearerAuth: [] requestBody: description: My profile required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMePrivate' responses: '200': description: Success update my private profile content: application/json: schema: $ref: '#/components/schemas/ResGetUserMePrivate' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/payment: get: tags: - user description: Get my payment security: - BearerAuth: [] responses: '200': description: Success get my payment content: application/json: schema: $ref: '#/components/schemas/ResGetUserMePayment' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - user description: Update my payment security: - BearerAuth: [] requestBody: description: My payment required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMePayment' responses: '200': description: Success update my payment content: application/json: schema: $ref: '#/components/schemas/ResGetUserMePayment' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/grants: get: tags: - user description: Get my available grants from claims with CLAIM_ prefix security: - BearerAuth: [] responses: '200': description: Success get my grants content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeGrants' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/me/reentry: put: tags: - reentry description: 再入部申請(振込報告と同時) security: - BearerAuth: [] requestBody: description: 再入部申請 required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutUserMeReentry' responses: '200': description: Success create reentry request content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeReentryObjectReentry' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /payment: get: tags: - payment description: Get payment list security: - BearerAuth: - account parameters: - name: year in: query schema: type: integer responses: '200': description: Success get payment list content: application/json: schema: $ref: '#/components/schemas/ResGetPayment' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/payment/{paymentId}': get: tags: - payment description: Get user payment security: - BearerAuth: - account parameters: - name: paymentId in: path required: true schema: type: string responses: '200': description: Success check user payment content: application/json: schema: $ref: '#/components/schemas/ResGetPaymentPaymentId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' put: tags: - payment description: Check user payment security: - BearerAuth: - account parameters: - name: paymentId in: path required: true schema: type: string requestBody: description: Check user payment required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutPaymentPaymentId' responses: '200': description: Success check user payment content: application/json: schema: $ref: '#/components/schemas/ResGetPaymentPaymentId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /user/profile/links: post: tags: - user_profile_links summary: 新しいリンクを登録する security: - BearerAuth: [] requestBody: required: true content: application/json: schema: required: - linkUrl properties: linkUrl: type: string x-oapi-codegen-extra-tags: validate: 'required,url,max=2048' ja: URL responses: '200': description: Success create user_profile_links '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServer' delete: tags: - user_profile_links summary: ユーザープロフィールリンクを削除する security: - BearerAuth: [] parameters: - name: id in: query required: true schema: type: string format: uuid responses: '200': description: Success delete user_profile_links '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /tool: get: tags: - tool description: Get tool URL security: - BearerAuth: [] responses: '200': description: Tool URL content: application/json: schema: $ref: '#/components/schemas/ResGetTool' /event: get: tags: - event description: Get event list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer responses: '200': description: Success get event list content: application/json: schema: $ref: '#/components/schemas/ResGetEvent' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - event description: Post event security: - BearerAuth: [] requestBody: description: Create event required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostEventEvent' responses: '200': description: Create event content: application/json: schema: $ref: '#/components/schemas/ResPostEventEvent' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/event/{eventId}': get: tags: - event description: Get event security: - BearerAuth: [] parameters: - name: eventId in: path required: true schema: type: string responses: '200': description: Success get event content: application/json: schema: $ref: '#/components/schemas/ResGetEventEventId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - event description: Update event security: - BearerAuth: [] parameters: - name: eventId in: path required: true schema: type: string requestBody: description: Update event required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostEventEvent' responses: '200': description: Success update event content: application/json: schema: $ref: '#/components/schemas/ResPostEventEvent' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/event/{eventId}/reservation': post: tags: - event description: Create event reservation security: - BearerAuth: - infra parameters: - name: eventId in: path required: true schema: type: string requestBody: description: Create event reservation required: true content: application/json: schema: type: object required: - name - description - startDate - finishDate - reservationStartDate - reservationFinishDate - capacity properties: name: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 枠名 description: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: 枠の説明 startDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 枠開始日時 finishDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 枠終了日時 reservationStartDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 予約開始日時 reservationFinishDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 予約終了日時 capacity: type: integer minimum: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: 定員 responses: '200': description: Success create event reservation content: application/json: schema: type: object required: - eventId - reservationId - name - description - startDate - finishDate - reservationStartDate - reservationFinishDate - capacity properties: eventId: type: string format: uuid x-oapi-codegen-extra-tags: ja: イベントID reservationId: type: string format: uuid x-oapi-codegen-extra-tags: ja: 枠ID name: type: string x-oapi-codegen-extra-tags: ja: 枠名 description: type: string x-oapi-codegen-extra-tags: ja: 枠の説明 startDate: type: string format: date-time x-oapi-codegen-extra-tags: ja: 枠開始日時 finishDate: type: string format: date-time x-oapi-codegen-extra-tags: ja: 枠終了日時 reservationStartDate: type: string format: date-time x-oapi-codegen-extra-tags: ja: 予約開始日時 reservationFinishDate: type: string format: date-time x-oapi-codegen-extra-tags: ja: 予約終了日時 capacity: type: integer x-oapi-codegen-extra-tags: ja: 定員 '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/event/{eventId}/{reservationId}': get: tags: - event description: Get event reservation security: - BearerAuth: [] parameters: - name: eventId in: path required: true schema: type: string - name: reservationId in: path required: true schema: type: string responses: '200': description: Success get event reservation content: application/json: schema: $ref: '#/components/schemas/ResGetEventEventIdReservationId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - event description: Update event reservation security: - BearerAuth: - infra parameters: - name: eventId in: path required: true schema: type: string - name: reservationId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object required: - name - description - startDate - finishDate - reservationStartDate - reservationFinishDate - capacity properties: name: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 枠名 description: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: 枠の説明 startDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 枠開始日時 finishDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 枠終了日時 reservationStartDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 予約開始日時 reservationFinishDate: type: string format: date-time x-oapi-codegen-extra-tags: validate: required ja: 予約終了日時 capacity: type: integer minimum: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: 定員 responses: '200': description: Success update event reservation content: application/json: schema: $ref: '#/components/schemas/ResGetEventEventIdReservationId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' delete: tags: - event description: Delete event reservation security: - BearerAuth: - infra parameters: - name: eventId in: path required: true schema: type: string - name: reservationId in: path required: true schema: type: string responses: '204': description: Success delete event reservation '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/event/{eventId}/{reservationId}/me': put: tags: - event description: Create my event reservation security: - BearerAuth: [] parameters: - name: eventId in: path required: true schema: type: string - name: reservationId in: path required: true schema: type: string requestBody: description: My event reservation required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutEventEventIdReservationIdMe' responses: '200': description: Success create my event reservation content: application/json: schema: $ref: '#/components/schemas/ResGetEventEventIdReservationId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' delete: tags: - event description: Delete my event reservation security: - BearerAuth: [] parameters: - name: eventId in: path required: true schema: type: string - name: reservationId in: path required: true schema: type: string responses: '200': description: Success delete my event reservation content: application/json: schema: $ref: '#/components/schemas/ResGetEventEventIdReservationId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /storage/myfile: get: tags: - storage description: Get file list security: - BearerAuth: [] responses: '200': description: file list content: application/json: schema: $ref: '#/components/schemas/ResGetStorageMyfile' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - storage description: Post file security: - BearerAuth: [] requestBody: description: Upload file required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostStorageMyfile' responses: '200': description: Create file content: application/json: schema: $ref: '#/components/schemas/ResGetStorageFileId' '500': $ref: '#/components/responses/InternalServer' '/storage/{fileId}': get: tags: - storage description: Get file security: - BearerAuth: [] parameters: - name: fileId in: path required: true schema: type: string responses: '200': description: Get file content: application/json: schema: $ref: '#/components/schemas/ResGetStorageFileId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /mattermost/create_user: post: tags: - mattermost description: Create mattermost account security: - BearerAuth: [] requestBody: description: Mattermost account required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostMattermostCreateuser' responses: '200': description: Success to create mattermost account content: application/json: schema: $ref: '#/components/schemas/ResPostMattermostCreateuser' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /work/work: get: tags: - work description: Get work list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer - name: authorId in: query required: false schema: type: string responses: '200': description: work list content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWork' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - work description: Post work security: - BearerAuth: [] requestBody: description: Create work required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostWorkWork' responses: '200': description: Create work content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWorkWorkId' '500': $ref: '#/components/responses/InternalServer' '/work/work/{workId}': get: tags: - work description: Get work security: - BearerAuth: [] parameters: - name: workId in: path required: true schema: type: string responses: '200': description: Get work content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWorkWorkId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - work description: Update work security: - BearerAuth: [] parameters: - name: workId in: path required: true schema: type: string requestBody: description: Update work required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutWorkWorkWorkId' responses: '200': description: Create work content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWorkWorkId' '500': $ref: '#/components/responses/InternalServer' delete: tags: - work description: Delete work security: - BearerAuth: [] parameters: - name: workId in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/BlankSuccess' '500': $ref: '#/components/responses/InternalServer' '/work/work/{workId}/public': get: tags: - work description: Get work(public) parameters: - name: workId in: path required: true schema: type: string responses: '200': description: Get work content: application/json: schema: $ref: '#/components/schemas/ResGetWorkWorkWorkIdPublic' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /work/tag: get: tags: - work description: Get tag list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer responses: '200': description: tag list content: application/json: schema: $ref: '#/components/schemas/ResGetWorkTag' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - work description: Post tag security: - BearerAuth: [] requestBody: description: Create tag required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostWorkTag' responses: '200': description: Create tag content: application/json: schema: $ref: '#/components/schemas/ResGetWorkTagTagId' '500': $ref: '#/components/responses/InternalServer' '/work/tag/{tagId}': get: tags: - work description: Get tag security: - BearerAuth: [] parameters: - name: tagId in: path required: true schema: type: string responses: '200': description: Get tag content: application/json: schema: $ref: '#/components/schemas/ResGetWorkTagTagId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - work description: Update tag security: - BearerAuth: [] parameters: - name: tagId in: path required: true schema: type: string requestBody: description: Update tag required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutWorkTagTagId' responses: '200': description: Update tag content: application/json: schema: $ref: '#/components/schemas/ResGetWorkTagTagId' '500': $ref: '#/components/responses/InternalServer' delete: tags: - work description: Delete tag security: - BearerAuth: [] parameters: - name: tagId in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/BlankSuccess' '500': $ref: '#/components/responses/InternalServer' /group: get: tags: - group description: Get group list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer - name: seed in: query schema: type: integer responses: '200': description: Success get group list content: application/json: schema: $ref: '#/components/schemas/ResGetGroup' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - group description: Create new group security: - BearerAuth: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostGroup' responses: '200': description: Success create group content: application/json: schema: $ref: '#/components/schemas/ResPostGroup' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /group/admin: post: tags: - group description: Create new group with any claim. infra権限を持つユーザーが任意のclaimのグループを作成可能 security: - BearerAuth: - infra requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostGroupAdmin' responses: '200': description: Success create admin group content: application/json: schema: $ref: '#/components/schemas/ResPostGroup' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/group/{groupId}': get: tags: - group description: Get group id's profile security: - BearerAuth: [] parameters: - name: groupId in: path required: true schema: type: string responses: '200': description: Success get group id's profile content: application/json: schema: $ref: '#/components/schemas/ResGetGroupGroupId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/group/{groupId}/user': post: tags: - group description: Add user to group security: - BearerAuth: [] parameters: - name: groupId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostGroupGroupIdUser' responses: '200': description: Success add user to group content: application/json: schema: $ref: '#/components/schemas/ResPostGroupGroupIdUser' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/group/{groupId}/join': post: tags: - group description: Join to group security: - BearerAuth: [] parameters: - name: groupId in: path required: true schema: type: string responses: '200': description: Success join to group content: application/json: schema: $ref: '#/components/schemas/ResPostGroupGroupIdJoin' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /budget: get: tags: - budget description: Get budget list security: - BearerAuth: [] parameters: - name: offset in: query schema: type: integer - name: proposerId in: query schema: type: string responses: '200': description: Success budget list content: application/json: schema: $ref: '#/components/schemas/ResGetBudget' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - budget description: Create budget security: - BearerAuth: [] requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostBudget' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}': get: tags: - budget description: Get budget security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string responses: '200': description: Success get budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}/status_pending': put: tags: - budget description: Update budget(status pending) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutBudgetBudgetIdStatusPending' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' delete: tags: - budget description: Delete budget(status pending) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/BlankSuccess' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}/status_approve': put: tags: - budget description: Update budget(status approve) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutBudgetBudgetIdStatusApprove' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' delete: tags: - budget description: Delete budget(status approve) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/BlankSuccess' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}/status_bought': put: tags: - budget description: Update budget(status bought) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutBudgetBudgetIdStatusBought' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}/status_paid': put: tags: - budget description: Update budget(status paid) security: - BearerAuth: [] parameters: - name: budgetId in: path required: true schema: type: string requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutBudgetBudgetIdStatusPaid' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/budget/{budgetId}/admin': put: tags: - budget description: Update budget by account role security: - BearerAuth: - account parameters: - name: budgetId in: path required: true schema: type: string requestBody: description: Budget required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutBudgetBudgetIdAdmin' responses: '200': description: Success update budget content: application/json: schema: $ref: '#/components/schemas/ResGetBudgetBudgetId' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /mail: post: tags: - mail description: Send bulk email security: - BearerAuth: - infra requestBody: description: Email request required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostMail' responses: '200': description: Success send email content: application/json: schema: $ref: '#/components/schemas/ResPostMail' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /admin/inactive: put: tags: - admin description: Set inactive members is_member=false in bulk security: - BearerAuth: - infra responses: '200': $ref: '#/components/responses/BlankSuccess' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /admin/change-student-number: put: tags: - admin description: ユーザーの学籍番号を更新する security: - BearerAuth: - infra requestBody: description: 更新対象ユーザーと更新後学籍番号 required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutAdminChangeStudentNumber' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /admin/school-grade: put: tags: - admin description: school_gradeを一括更新する security: - BearerAuth: - infra responses: '200': $ref: '#/components/responses/BlankSuccess' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /activity/checkin: post: tags: - activity description: Activity checkin security: - BearerAuth: [] requestBody: description: Activity checkin request required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostActivityCheckin' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /activity/checkout: post: tags: - activity description: Activity checkout security: - BearerAuth: [] requestBody: description: Activity checkout request required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostActivityCheckout' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/activity/checkout/{userId}': post: tags: - activity description: Admin force activity checkout security: - BearerAuth: - infra parameters: - name: userId in: path required: true schema: type: string requestBody: description: Activity checkout request required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostActivityCheckout' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' '/activity/record/{recordId}': put: tags: - activity description: Update activity record times security: - BearerAuth: [] parameters: - name: recordId in: path required: true schema: type: string requestBody: description: Activity record update request required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutActivityRecordRecordId' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' delete: tags: - activity description: Delete activity record security: - BearerAuth: [] parameters: - name: recordId in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/BlankSuccess' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /activity/records: get: tags: - activity description: Get activity records for admin security: - BearerAuth: - infra parameters: - name: offset in: query required: false schema: type: integer minimum: 0 default: 0 - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 100 default: 50 responses: '200': description: Success get activity records content: application/json: schema: $ref: '#/components/schemas/ResGetActivityRecords' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/activity/place/{place}/current': get: tags: - activity description: Get current users in place security: - BearerAuth: [] parameters: - name: place in: path required: true schema: type: string responses: '200': description: Success get current users content: application/json: schema: $ref: '#/components/schemas/ResGetActivityPlacePlaceCurrent' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/activity/place/{place}/history': get: tags: - activity description: Get place visit history. startAt から endAt までの訪問回数を返す。単日範囲では訪問レコード数、複数日範囲では同一ユーザーの同一日の複数回訪問を1回として数える。 security: - BearerAuth: [] parameters: - name: place in: path required: true schema: type: string - name: startAt in: query required: true schema: type: string format: date-time description: 集計開始日時。endAt 以下である必要がある。 - name: endAt in: query required: true schema: type: string format: date-time description: 集計終了日時。startAt 以上である必要がある。 responses: '200': description: Success get place history content: application/json: schema: $ref: '#/components/schemas/ResGetActivityPlacePlaceHistory' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/activity/user/{userId}/records': get: tags: - activity description: Get user activity records security: - BearerAuth: [] parameters: - name: userId in: path required: true schema: type: string - name: place in: query required: false schema: type: string - name: offset in: query required: false schema: type: integer minimum: 0 default: 0 - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 100 default: 50 responses: '200': description: Success get user records content: application/json: schema: $ref: '#/components/schemas/ResGetActivityUserUserIdRecords' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /public/member/count: get: tags: - public description: Get active member count responses: '200': description: Get member count content: application/json: schema: $ref: '#/components/schemas/ResGetPublicMemberCount' '500': $ref: '#/components/responses/InternalServer' /user/me/grade-update: post: tags: - grade-update description: 学年補正申請の作成 security: - BearerAuth: [] requestBody: description: 学年補正申請 required: true content: application/json: schema: $ref: '#/components/schemas/ReqPostUserMeGradeUpdate' responses: '200': description: Success create grade update request content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeGradeUpdateObjectGradeUpdate' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' get: tags: - grade-update description: 自分の学年補正申請一覧の取得 security: - BearerAuth: [] responses: '200': description: Success get my grade update requests content: application/json: schema: $ref: '#/components/schemas/ResGetUserMeGradeUpdate' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' /admin/grade-update: get: tags: - grade-update description: 承認待ち学年補正申請一覧の取得(管理者用) security: - BearerAuth: - infra responses: '200': description: Success get pending grade update requests content: application/json: schema: $ref: '#/components/schemas/ResGetAdminGradeUpdate' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/admin/grade-update/{gradeUpdateId}': put: tags: - grade-update description: 学年補正申請の承認/却下(管理者用) security: - BearerAuth: - infra parameters: - name: gradeUpdateId in: path required: true schema: type: string requestBody: description: 承認/却下リクエスト required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutAdminGradeUpdateGradeUpdateId' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /admin/reentry: get: tags: - reentry description: 承認待ち再入部申請一覧の取得(管理者用) security: - BearerAuth: - infra responses: '200': description: Success get pending reentry requests content: application/json: schema: $ref: '#/components/schemas/ResGetAdminReentry' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' '/admin/reentry/{reentryId}': put: tags: - reentry description: 再入部申請の承認/却下(管理者用) security: - BearerAuth: - infra parameters: - name: reentryId in: path required: true schema: type: string requestBody: description: 承認/却下リクエスト required: true content: application/json: schema: $ref: '#/components/schemas/ReqPutAdminReentryReentryId' responses: '200': $ref: '#/components/responses/BlankSuccess' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServer' components: schemas: ResGetStatus: required: - status properties: status: type: boolean ReqPutStatusClubRoom: required: - lock - token properties: lock: type: boolean x-oapi-codegen-extra-tags: ja: ロック状態 token: type: string x-oapi-codegen-extra-tags: validate: required ja: 認証トーク ResGetStatusClubRoom: required: - lock properties: lock: type: boolean ResGetSignup: required: - url properties: url: type: string ReqPostSignupCallback: required: - code properties: code: type: string x-oapi-codegen-extra-tags: validate: required ja: 認証コード ResPostSignupCallback: required: - jwt properties: jwt: type: string ResGetLogin: required: - url properties: url: type: string ReqPostLoginCallback: required: - code properties: code: type: string x-oapi-codegen-extra-tags: validate: required ja: 認証コード ResPostLoginCallback: required: - jwt properties: jwt: type: string ResGetTool: required: - discordUrl properties: discordUrl: type: string ResGetUser: required: - users properties: users: type: array items: $ref: '#/components/schemas/ResGetUserObjectUser' ResGetUserObjectUser: required: - userId - username - schoolGrade - iconUrl - isGraduated - isMember - shortIntroduction properties: userId: type: string username: type: string schoolGrade: type: integer iconUrl: type: string isGraduated: type: boolean isMember: type: boolean shortIntroduction: type: string ResGetUserUserId: required: - userId - username - studentNumber - iconUrl - schoolGrade - discordUserId - shortIntroduction - activeLimit - linkUrls - isGraduated - isMember properties: userId: type: string username: type: string studentNumber: type: string iconUrl: type: string schoolGrade: type: integer discordUserId: type: string shortIntroduction: type: string activeLimit: type: string linkUrls: type: array items: required: - id - linkUrl - createdAt - updatedAt properties: id: type: string linkUrl: type: string format: uri createdAt: type: string format: date-time updatedAt: type: string format: date-time isGraduated: type: boolean isMember: type: boolean ResGetUserUserIdIntroduction: required: - introduction properties: introduction: type: string ResGetUserMe: required: - userId - username - studentNumber - iconUrl - schoolGrade - discordUserId - shortIntroduction - activeLimit - isGraduated - isMember - claims properties: userId: type: string username: type: string studentNumber: type: string iconUrl: type: string schoolGrade: type: integer discordUserId: type: string shortIntroduction: type: string activeLimit: type: string isGraduated: type: boolean isMember: type: boolean claims: type: array items: type: string ReqPutUserMe: required: - username - iconUrl - schoolGrade - shortIntroduction properties: username: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: ユーザー名 iconUrl: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: アイコンURL schoolGrade: type: integer x-oapi-codegen-extra-tags: validate: 'required,min=1,max=9' ja: 学年 shortIntroduction: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 短い自己紹介 ResGetUserMeIntroduction: required: - introduction properties: introduction: type: string ReqPutUserMeIntroduction: required: - introduction properties: introduction: type: string x-oapi-codegen-extra-tags: validate: null ja: 自己紹介 ResGetUserMePrivate: required: - lastName - lastNameKana - firstName - firstNameKana - isMale - phoneNumber - address - parentLastName - parentFirstName - parentCellphoneNumber - parentHomephoneNumber - parentAddress properties: lastName: type: string lastNameKana: type: string firstName: type: string firstNameKana: type: string isMale: type: boolean phoneNumber: type: string address: type: string parentLastName: type: string parentFirstName: type: string parentCellphoneNumber: type: string parentHomephoneNumber: type: string parentAddress: type: string ReqPutUserMePrivate: required: - lastName - lastNameKana - firstName - firstNameKana - isMale - phoneNumber - address - parentCellphoneNumber - parentAddress properties: lastName: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 名字 lastNameKana: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 名字(カナ) firstName: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 名前 firstNameKana: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 名前(カナ) isMale: type: boolean x-oapi-codegen-extra-tags: validate: null ja: 性別 phoneNumber: type: string x-oapi-codegen-extra-tags: validate: 'required,phonenumber' ja: 電話番号 address: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 住所 parentLastName: type: string x-oapi-codegen-extra-tags: validate: 'omitempty,min=1,max=255' ja: 緊急連絡先の名字 parentFirstName: type: string x-oapi-codegen-extra-tags: validate: 'omitempty,min=1,max=255' ja: 緊急連絡先の名前 parentCellphoneNumber: type: string x-oapi-codegen-extra-tags: validate: 'required,phonenumber' ja: 緊急連絡先携帯電話番号 parentHomephoneNumber: type: string x-oapi-codegen-extra-tags: validate: 'omitempty,phonenumber' ja: 緊急連絡先固定電話番号 parentAddress: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 緊急連絡先住所 ResGetUserMePayment: required: - histories properties: histories: type: array items: $ref: '#/components/schemas/ResGetUserMePaymentObjectHistory' ResGetUserMePaymentObjectHistory: required: - year - transferName - checked - updatedAt properties: year: type: integer transferName: type: string checked: type: boolean updatedAt: type: string ResGetUserMeGrants: required: - grants properties: grants: type: array description: 'claim 一覧を CLAIM_ プレフィックス付きで返す。例: infra -> CLAIM_infra, account -> CLAIM_account' items: type: string ReqPutUserMePayment: required: - transferName properties: transferName: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 振込名義 ReqPutUserMeReentry: required: - transferName properties: transferName: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: 振込名義 ResGetUserMeReentryObjectReentry: required: - reentryId - status - createdAt - updatedAt properties: reentryId: type: string status: type: string createdAt: type: string updatedAt: type: string ResGetUserMeDiscord: required: - url properties: url: type: string ReqPutUserMeDiscordCallback: required: - code properties: code: type: string x-oapi-codegen-extra-tags: validate: required ja: 認証コード ResGetEvent: required: - events properties: events: type: array items: $ref: '#/components/schemas/ResGetEventObjectEvent' ResGetEventObjectEvent: required: - eventId - name - description - calendarView - reservable - reservated properties: eventId: type: string name: type: string description: type: string calendarView: type: boolean reservable: type: boolean reservated: type: boolean ResGetEventEventId: required: - eventId - name - description - calendarView - reservable - reservated - reservations properties: eventId: type: string name: type: string description: type: string calendarView: type: boolean reservable: type: boolean reservated: type: boolean reservations: type: array items: $ref: '#/components/schemas/ResGetEventEventIdObjectReservation' ResGetEventEventIdObjectReservation: required: - reservationId - name - description - startDate - finishDate - reservable - reservated - reservationFinishDate - reservationStartDate - capacity - freeCapacity properties: reservationId: type: string name: type: string description: type: string startDate: type: string finishDate: type: string reservable: type: boolean reservated: type: boolean reservationFinishDate: type: string reservationStartDate: type: string capacity: type: integer freeCapacity: type: integer ResGetEventEventIdReservationId: required: - eventId - reservationId - name - description - reservable - reservated - startDate - finishDate - reservationFinishDate - reservationStartDate - capacity - freeCapacity - users properties: eventId: type: string reservationId: type: string name: type: string description: type: string startDate: type: string finishDate: type: string reservable: type: boolean reservated: type: boolean reservationFinishDate: type: string reservationStartDate: type: string capacity: type: integer freeCapacity: type: integer users: type: array items: $ref: '#/components/schemas/ResGetEventEventIdReservationIdObjectUser' ResGetEventEventIdReservationIdObjectUser: required: - userId - userIcon - name - comment - url - createdAt properties: userId: type: string userIcon: type: string name: type: string comment: type: string url: type: string createdAt: type: string format: date-time description: ユーザーの登録日時 ReqPutEventEventIdReservationIdMe: properties: comment: type: string nullable: true minLength: 1 maxLength: 255 x-oapi-codegen-extra-tags: validate: 'omitempty,max=255' ja: コメント url: type: string nullable: true minLength: 1 maxLength: 255 x-oapi-codegen-extra-tags: validate: 'omitempty,max=255' ja: URL ReqPostEventEvent: required: - name - description - calendar_view properties: name: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: イベント名 description: type: string minLength: 1 x-oapi-codegen-extra-tags: validate: 'required,min=1' ja: 説明 calendar_view: type: boolean x-oapi-codegen-extra-tags: validate: required ja: カレンダー表示 ResPostEventEvent: type: object required: - event_id - name - description - calendar_view properties: event_id: type: string format: uuid x-oapi-codegen-extra-tags: ja: イベントID name: type: string x-oapi-codegen-extra-tags: ja: イベント名 description: type: string x-oapi-codegen-extra-tags: ja: 説明 calendar_view: type: boolean x-oapi-codegen-extra-tags: ja: カレンダー表示 ResGetStorageMyfile: required: - files properties: files: type: array items: $ref: '#/components/schemas/ResGetStorageMyfileObjectFile' ResGetStorageMyfileObjectFile: required: - fileId - userId - name - kSize - extension - isPublic - createdAt - updatedAt properties: fileId: type: string userId: type: string name: type: string kSize: type: string extension: type: string isPublic: type: boolean createdAt: type: string updatedAt: type: string ReqPostStorageMyfile: required: - name - file - isPublic properties: name: type: string x-oapi-codegen-extra-tags: validate: 'required,max=255' ja: ファイル名 file: type: string x-oapi-codegen-extra-tags: validate: 'required,max=104857600' ja: ファイル isPublic: type: boolean x-oapi-codegen-extra-tags: validate: null ja: 公開 ResGetStorageFileId: required: - fileId - userId - name - kSize - extension - isPublic - createdAt - updatedAt - url properties: fileId: type: string userId: type: string name: type: string kSize: type: string extension: type: string isPublic: type: boolean createdAt: type: string updatedAt: type: string url: type: string ReqPostMattermostCreateuser: required: - username - nickname - password properties: username: type: string x-oapi-codegen-extra-tags: validate: 'required,min=3,max=22' ja: ユーザー名 nickname: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=64' ja: ニックネーム password: type: string x-oapi-codegen-extra-tags: validate: 'required,min=8,max=64' ja: パスワード ResPostMattermostCreateuser: required: - username properties: username: type: string ResGetWorkWork: required: - works properties: works: type: array items: $ref: '#/components/schemas/ResGetWorkWorkObjectWork' ResGetWorkWorkObjectWork: required: - workId - name - description - firstFile - authors - tags properties: workId: type: string name: type: string description: type: string firstFile: type: object nullable: true required: - fileId - name properties: fileId: type: string name: type: string authors: type: array items: $ref: '#/components/schemas/ResGetWorkWorkObjectWorkObjectAuthor' tags: type: array items: $ref: '#/components/schemas/ResGetWorkWorkObjectWorkObjectTag' ResGetWorkWorkObjectWorkObjectAuthor: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ResGetWorkWorkObjectWorkObjectTag: required: - tagId - name properties: tagId: type: string name: type: string ReqPostWorkWork: required: - name - description - authors - files - tags properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: 作品名 description: type: string x-oapi-codegen-extra-tags: validate: required ja: 説明 authors: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: 作者 files: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: ファイル tags: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: タグ ResGetWorkWorkWorkIdPublic: required: - workId - name - description - authors - tags properties: workId: type: string name: type: string description: type: string authors: type: array items: $ref: '#/components/schemas/ResGetWorkWorkWorkIdObjectAuthor' fileUrl: type: string fileName: type: string tags: type: array items: $ref: '#/components/schemas/ResGetWorkWorkWorkIdObjectTag' ResGetWorkWorkWorkIdPublicObjectAuthor: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ResGetWorkWorkWorkIdPublicObjectTag: required: - tagId - name properties: tagId: type: string name: type: string ResGetWorkWorkWorkId: required: - workId - name - description - authors - files - tags properties: workId: type: string name: type: string description: type: string authors: type: array items: $ref: '#/components/schemas/ResGetWorkWorkWorkIdObjectAuthor' files: type: array items: $ref: '#/components/schemas/ResGetWorkWorkWorkIdObjectFile' tags: type: array items: $ref: '#/components/schemas/ResGetWorkWorkWorkIdObjectTag' ResGetWorkWorkWorkIdObjectAuthor: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ResGetWorkWorkWorkIdObjectTag: required: - tagId - name properties: tagId: type: string name: type: string ResGetWorkWorkWorkIdObjectFile: required: - fileId - name properties: fileId: type: string name: type: string ReqPutWorkWorkWorkId: required: - name - description - authors - files - tags properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: 作品名 description: type: string x-oapi-codegen-extra-tags: validate: required ja: 説明 authors: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: 作者 files: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: ファイル tags: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: タグ ResGetWorkTag: required: - tags properties: tags: type: array items: $ref: '#/components/schemas/ResGetWorkTagObjectTag' ResGetWorkTagObjectTag: required: - tagId - name properties: tagId: type: string name: type: string ReqPostWorkTag: required: - name - description properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: タグ名 description: type: string x-oapi-codegen-extra-tags: validate: required ja: 説明 ResGetWorkTagTagId: required: - tagId - name - description properties: tagId: type: string name: type: string description: type: string ReqPutWorkTagTagId: required: - name - description properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: タグ名 description: type: string x-oapi-codegen-extra-tags: validate: required ja: 説明 ResGetGroup: required: - groups properties: groups: type: array items: $ref: '#/components/schemas/ResGetGroupObjectGroup' ResGetGroupObjectGroup: required: - groupId - name - userCount - joinable - joined - isAdminGroup properties: groupId: type: string name: type: string userCount: type: integer joinable: type: boolean joined: type: boolean isAdminGroup: type: boolean ResGetGroupGroupId: required: - groupId - name - description - userCount - joinable - joined - isAdminGroup - users properties: groupId: type: string name: type: string description: type: string userCount: type: integer joinable: type: boolean joined: type: boolean isAdminGroup: type: boolean users: type: array items: $ref: '#/components/schemas/ResGetGroupGroupIdObjectUser' ResGetGroupGroupIdObjectUser: required: - userId - userIcon - name properties: userId: type: string userIcon: type: string name: type: string ReqPostGroup: required: - name - description - joinable properties: name: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: グループ名 description: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=1000' ja: グループの説明 joinable: type: boolean x-oapi-codegen-extra-tags: ja: 参加可能フラグ ReqPostGroupAdmin: required: - name - description - joinable - claim properties: name: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=255' ja: グループ名 description: type: string x-oapi-codegen-extra-tags: validate: 'required,min=1,max=1000' ja: グループの説明 joinable: type: boolean x-oapi-codegen-extra-tags: ja: 参加可能フラグ claim: type: string x-oapi-codegen-extra-tags: validate: 'required,max=255' ja: グループに付与するclaim名 ResPostGroup: required: - groupId - name - description - joinable - userCount properties: groupId: type: string name: type: string description: type: string joinable: type: boolean userCount: type: integer ReqPostGroupGroupIdUser: required: - userId properties: userId: type: string x-oapi-codegen-extra-tags: validate: 'required,uuid' ja: ユーザーID ResPostGroupGroupIdUser: required: - message properties: message: type: string ResPostGroupGroupIdJoin: required: - message properties: message: type: string ResGetBudget: required: - budgets properties: budgets: type: array items: $ref: '#/components/schemas/ResGetBudgetObjectBudget' ResGetBudgetObjectBudget: required: - budgetId - Proposer - name - class - status - settlement - budget - updatedAt properties: budgetId: type: string proposer: $ref: '#/components/schemas/ResGetBudgetObjectBudgetObjectproposer' name: type: string class: type: string status: type: string settlement: type: integer budget: type: integer updatedAt: type: string ResGetBudgetObjectBudgetObjectproposer: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ResGetBudgetBudgetId: required: - budgetId - name - class - status - proposer - budget - settlement - purpose - mattermostUrl - remark - approver - files - createdAt - approvedAt - updatedAt properties: budgetId: type: string name: type: string class: type: string status: type: string proposer: $ref: '#/components/schemas/ResGetBudgetBudgetIdObjectProposer' approver: $ref: '#/components/schemas/ResGetBudgetBudgetIdObjectApprover' budget: type: integer settlement: type: integer purpose: type: string mattermostUrl: type: string remark: type: string files: type: array items: $ref: '#/components/schemas/ResGetBudgetBudgetIdObjectFile' createdAt: type: string approvedAt: type: string updatedAt: type: string ResGetBudgetBudgetIdObjectFile: required: - fileId - name properties: fileId: type: string name: type: string ResGetBudgetBudgetIdObjectApprover: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ResGetBudgetBudgetIdObjectProposer: required: - userId - username - iconUrl properties: userId: type: string username: type: string iconUrl: type: string ReqPostBudget: required: - name - class properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: 名前 class: type: string x-oapi-codegen-extra-tags: validate: oneof=festival fixed project outside room ja: 分類 ReqPutBudgetBudgetIdStatusApprove: required: - settlement - remark - bought - files properties: settlement: type: integer x-oapi-codegen-extra-tags: ja: 決算 remark: type: string x-oapi-codegen-extra-tags: ja: 備考 bought: type: boolean x-oapi-codegen-extra-tags: ja: 購入済み files: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: ファイル ReqPutBudgetBudgetIdStatusBought: required: - settlement - remark - files properties: settlement: type: integer x-oapi-codegen-extra-tags: ja: 決算 remark: type: string x-oapi-codegen-extra-tags: ja: 備考 files: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: ファイル ReqPutBudgetBudgetIdStatusPaid: required: - remark properties: remark: type: string x-oapi-codegen-extra-tags: ja: 備考 ReqPutBudgetBudgetIdStatusPending: required: - name - budget - purpose - mattermostUrl - remark - files properties: name: type: string x-oapi-codegen-extra-tags: validate: required ja: 名前 budget: type: integer x-oapi-codegen-extra-tags: validate: required ja: 予算 purpose: type: string x-oapi-codegen-extra-tags: validate: required ja: 目的 mattermostUrl: type: string x-oapi-codegen-extra-tags: ja: Mattermost投稿URL remark: type: string x-oapi-codegen-extra-tags: ja: 備考 files: type: array items: type: string x-oapi-codegen-extra-tags: validate: 'dive,uuid' ja: ファイル ReqPutBudgetBudgetIdAdmin: required: - status properties: status: type: string x-oapi-codegen-extra-tags: validate: oneof=reject approve paid ja: ステータス ResGetPayment: required: - payments properties: payments: type: array items: $ref: '#/components/schemas/ResGetPaymentObjectPayment' ResGetPaymentObjectPayment: required: - paymentId - userId - studentNumber - transferName - note properties: paymentId: type: string userId: type: string studentNumber: type: string transferName: type: string checked: type: boolean note: type: string ResGetPaymentPaymentId: required: - paymentId - userId - studentNumber - transferName - checked - note properties: paymentId: type: string userId: type: string studentNumber: type: string transferName: type: string note: type: string ReqPutPaymentPaymentId: required: - checked - note properties: checked: type: boolean x-oapi-codegen-extra-tags: ja: チェック note: type: string x-oapi-codegen-extra-tags: ja: 備考 ReqPostMail: required: - subject - body properties: addresses: type: array items: type: string format: email x-oapi-codegen-extra-tags: validate: 'omitempty,dive,email' ja: 送信先アドレス userIds: type: array items: type: string format: uuid x-oapi-codegen-extra-tags: validate: 'omitempty,dive' ja: 送信先ユーザーID subject: type: string x-oapi-codegen-extra-tags: validate: required ja: タイトル body: type: string x-oapi-codegen-extra-tags: validate: required ja: 本文 sendToAdmin: type: boolean default: false x-oapi-codegen-extra-tags: ja: 管理者用アドレスにも送信 ResPostMail: required: - successCount - failures properties: successCount: type: integer failures: type: array items: required: - address - error properties: address: type: string error: type: string ReqPostActivityCheckin: required: - place properties: place: type: string minLength: 3 maxLength: 30 x-oapi-codegen-extra-tags: validate: 'required,min=3,max=30' ja: 場所名 ReqPostActivityCheckout: required: - place properties: place: type: string minLength: 3 maxLength: 30 x-oapi-codegen-extra-tags: validate: 'required,min=3,max=30' ja: 場所名 checkout_at: type: string format: date-time x-oapi-codegen-extra-tags: validate: omitempty ja: チェックアウト時刻 ReqPutActivityRecordRecordId: required: - activity_type - time properties: activity_type: type: string enum: - checkin - checkout x-oapi-codegen-extra-tags: ja: アクティビティタイプ time: type: string format: date-time x-oapi-codegen-extra-tags: ja: 更新時刻 ResGetActivityRecords: required: - records - total - offset - limit properties: records: type: array items: $ref: '#/components/schemas/ResGetActivityRecordsObjectRecord' total: type: integer offset: type: integer limit: type: integer ResGetActivityRecordsObjectRecord: required: - recordId - userId - username - place - checkedInAt - initialCheckedInAt properties: recordId: type: string userId: type: string username: type: string place: type: string checkedInAt: type: string format: date-time checkedOutAt: type: string format: date-time nullable: true initialCheckedInAt: type: string format: date-time initialCheckedOutAt: type: string format: date-time nullable: true ResGetActivityPlacePlaceCurrent: required: - users properties: users: type: array items: $ref: '#/components/schemas/ResGetActivityPlacePlaceCurrentObjectUser' ResGetActivityPlacePlaceCurrentObjectUser: required: - userId - username - shortIntroduction - iconUrl - checkedInAt properties: userId: type: string username: type: string shortIntroduction: type: string iconUrl: type: string checkedInAt: type: string format: date-time ResGetActivityPlacePlaceHistory: required: - users properties: users: type: array items: $ref: '#/components/schemas/ResGetActivityPlacePlaceHistoryObjectUser' ResGetActivityPlacePlaceHistoryObjectUser: required: - userId - username - shortIntroduction - iconUrl - checkInCount properties: userId: type: string username: type: string shortIntroduction: type: string iconUrl: type: string checkInCount: type: integer description: 指定期間内の訪問回数。単日範囲では訪問レコード数、複数日範囲では同一日の重複訪問を1回として数える。 ResGetActivityUserUserIdRecords: required: - records - total - offset - limit properties: records: type: array items: $ref: '#/components/schemas/ResGetActivityUserUserIdRecordsObjectRecord' total: type: integer offset: type: integer limit: type: integer ResGetActivityUserUserIdRecordsObjectRecord: required: - recordId - place - checkedInAt - initialCheckedInAt properties: recordId: type: string place: type: string checkedInAt: type: string format: date-time checkedOutAt: type: string format: date-time nullable: true initialCheckedInAt: type: string format: date-time initialCheckedOutAt: type: string format: date-time nullable: true ResGetPublicMemberCount: required: - count properties: count: type: integer ReqPostUserMeGradeUpdate: required: - reason properties: reason: type: string x-oapi-codegen-extra-tags: validate: required ja: 申請理由 ResGetUserMeGradeUpdate: required: - gradeUpdates properties: gradeUpdates: type: array items: $ref: '#/components/schemas/ResGetUserMeGradeUpdateObjectGradeUpdate' ResGetUserMeGradeUpdateObjectGradeUpdate: required: - gradeUpdateId - gradeDiff - reason - status - createdAt - updatedAt properties: gradeUpdateId: type: string gradeDiff: type: integer reason: type: string status: type: string createdAt: type: string updatedAt: type: string ReqPutAdminGradeUpdateGradeUpdateId: required: - status properties: status: type: string x-oapi-codegen-extra-tags: validate: 'required,oneof=approved rejected' ja: ステータス ReqPutAdminChangeStudentNumber: required: - userId - studentNumber properties: userId: type: string x-oapi-codegen-extra-tags: validate: 'required,uuid' ja: ユーザーID studentNumber: type: string minLength: 1 maxLength: 8 x-oapi-codegen-extra-tags: validate: 'required,max=8' ja: 学籍番号 ResGetAdminGradeUpdate: required: - gradeUpdates properties: gradeUpdates: type: array items: $ref: '#/components/schemas/ResGetAdminGradeUpdateObjectGradeUpdate' ResGetAdminGradeUpdateObjectGradeUpdate: required: - gradeUpdateId - userId - username - gradeDiff - reason - status - createdAt - updatedAt properties: gradeUpdateId: type: string userId: type: string username: type: string gradeDiff: type: integer reason: type: string status: type: string createdAt: type: string updatedAt: type: string ReqPutAdminReentryReentryId: required: - status properties: status: type: string x-oapi-codegen-extra-tags: validate: 'required,oneof=approved rejected' ja: ステータス note: type: string x-oapi-codegen-extra-tags: validate: max=255 ja: 備考 ResGetAdminReentry: required: - reentries properties: reentries: type: array items: $ref: '#/components/schemas/ResGetAdminReentryObjectReentry' ResGetAdminReentryObjectReentry: required: - reentryId - userId - username - studentNumber - status - paymentStatus - createdAt - updatedAt properties: reentryId: type: string userId: type: string username: type: string studentNumber: type: string status: type: string paymentStatus: type: string note: type: string createdAt: type: string updatedAt: type: string Error: required: - level - message properties: level: type: string message: type: string Success: required: - success properties: success: type: boolean responses: BadRequest: description: 'Validation error, etc.' content: application/json: schema: $ref: '#/components/schemas/Error' Conflict: description: Resource already exists content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: 'Authentication error, etc.' content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: 'Resource does not exist, etc.' content: application/json: schema: $ref: '#/components/schemas/Error' InternalServer: description: 'System error, etc.' content: application/json: schema: $ref: '#/components/schemas/Error' BlankSuccess: description: Success response content: application/json: schema: $ref: '#/components/schemas/Success' securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT