openapi: 3.0.0 info: title: traQ API version: 2.6.3 servers: - url: https://q.trap.jp/api/1.0 description: production environment - url: https://traq-dev.tokyotech.org/api/1.0 description: staging environment paths: /login: post: tags: - authentication operationId: login description: ログインを行います。リダイレクトパラメーターが存在する場合はログイン後にリダイレクトします parameters: - in: query name: redirect schema: type: string description: リダイレクト先 security: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UserLogin" responses: "204": description: 正常にログインできました。 "302": description: 正常にログインできました。リダイレクトします。 "400": description: ログインできませんでした。リクエスト内容が不正です "401": description: ログインできませんでした。認証情報が間違っています "403": description: ログインできませんでした。アカウントに問題があります /logout: post: tags: - authentication operationId: logout description: ログアウトを行います。リダイレクトパラメーターが存在する場合はログアウト後にリダイレクトします parameters: - in: query name: redirect schema: type: string description: リダイレクト先 security: [] responses: "204": description: 正常にログアウトできました。 "302": description: 正常にログアウトできました。リダイレクトします。 /public/icon/{username}: get: tags: - public operationId: getPublicUserIcon description: 指定したユーザーのアイコン画像を取得します。 parameters: - name: username description: 画像を取得するユーザーのユーザー名 in: path required: true schema: type: string security: [] responses: "200": description: 正常に取得できました。 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/gif: schema: type: string format: binary "404": description: 取得できませんでした。指定したユーザーは存在しません。 # /public/emoji.json # /public/emoji.css # /public/emoji/{stampID} /oauth2/authorize: get: tags: - authorization operationId: getOauth2Authorize description: OAuth2 認可エンドポイント parameters: - name: response_type in: query schema: $ref: "#/components/schemas/OAuth2ResponseType" - name: client_id in: query schema: type: string - name: redirect_uri in: query schema: type: string - name: scope in: query schema: type: string - name: state in: query schema: type: string - name: code_challenge in: query schema: type: string - name: code_challenge_method in: query schema: type: string - name: nonce in: query schema: type: string - name: prompt in: query schema: $ref: "#/components/schemas/OAuth2Prompt" security: [] responses: "302": description: 結果に応じてリダイレクトします。 "400": description: リクエストが不正です。 "403": description: リクエストが許可されていません。 post: tags: - authorization operationId: postOauth2Authorize description: OAuth2 認可エンドポイント security: [] requestBody: content: application/x-www-form-urlencoded: schema: $ref: "#/components/schemas/OAuth2Authorization" responses: "302": description: 結果に応じてリダイレクトします。 "400": description: リクエストが不正です。 "403": description: リクエストが許可されていません。 /oauth2/authorize/decide: post: tags: - authorization operationId: postOauth2AuthorizeDecide description: OAuth2 認可承諾 requestBody: content: application/x-www-form-urlencoded: schema: $ref: "#/components/schemas/OAuth2Decide" responses: "302": description: RedirectURIに結果をリダイレクトします。 "400": description: リクエストが不正です。 "403": description: リクエストが許可されていません。 /oauth2/token: post: tags: - authorization operationId: postOauth2Token description: OAuth2 トークンエンドポイント security: [] requestBody: content: application/x-www-form-urlencoded: schema: $ref: "#/components/schemas/PostOAuth2Token" responses: "200": description: トークンが正常に発行されました。 content: application/json: schema: $ref: "#/components/schemas/OAuth2Token" "400": description: トークン発行に失敗しました。 "403": description: トークン発行に失敗しました。 # /oauth2/revoke # /metrics /users: get: tags: - user operationId: getUsers description: 全ユーザーのリストを取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: |+ 正常に取得できました。 ユーザーリストを返します。 content: application/json: schema: $ref: "#/components/schemas/UserList" post: tags: - user operationId: registerUser description: ユーザー登録します requestBody: content: application/json: schema: $ref: "#/components/schemas/UserRegister" responses: "201": description: 正常に登録できました。 "400": description: 登録できませんでした。リクエスト内容が不正です。 "403": description: 登録できませんでした。権限がありません。 /users/me: get: tags: - user operationId: getMe description: 自分のユーザー情報を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Me" patch: tags: - user operationId: changeMe description: 自分のユーザー情報を変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/UserData" responses: "204": description: 正常に変更できました。 "400": description: 正常に変更できませんでした。リクエスト内容が不正です。 /users/me/password: put: tags: - user operationId: changePassword description: 自分のパスワードを変更します。 requestBody: content: application/json: schema: $ref: "#/components/schemas/ChangePassword" responses: "204": description: 正常に変更できました。 "400": description: 正常に変更できませんでした。リクエスト内容が不正です "401": description: 正常に変更できませんでした。現在のパスワードが違います。 /users/me/qr-code: get: tags: - user operationId: getQrCode description: 自分のQRコードを取得します。 responses: "200": description: 正常に取得できました。 content: image/png: schema: type: string format: binary /users/me/icon: get: tags: - user operationId: getMyIcon description: 自分のアイコン画像を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/gif: schema: type: string format: binary put: tags: - user operationId: changeMyIcon description: 自分のアイコンを更新します。 security: - traqOAuth2: - write requestBody: content: multipart/form-data: schema: properties: file: type: string format: binary description: 1MBまでのpng, jpeg, gif encoding: file: contentType: image/png, image/jpeg, image/gif responses: "200": description: 正常に更新できました。 "400": description: 正常に更新できませんでした。不正なファイルです。 /users/me/stamp-history: get: tags: - stamp operationId: getStampHistory description: 自分のスタンプ履歴を最大50件取得します。結果は降順で返されます。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/StampHistory" /users/me/groups: get: tags: - user group operationId: getMyGroups description: 所属するユーザーグループのIDを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: $ref: "#/components/schemas/UUIDs" /users/me/notification: get: tags: - notification operationId: getMySubscribeChannels description: 自分が通知を入れているチャンネルのリストを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。チャンネルIDの配列を返します。 content: application/json: schema: $ref: "#/components/schemas/UUIDs" /users/me/tokens: get: tags: - client operationId: getTokens description: 自分が許可しているクライアントの一覧とトークン情報を取得します。 responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/AllowedClientInfo" "403": description: 取得できませんでした。権限がありません。 /users/me/tokens/{oauth2TokenID}: parameters: - $ref: "#/components/parameters/oauth2TokenIdInPath" delete: tags: - client operationId: deleteToken description: 指定したトークンの認可を取り消します。 responses: "204": description: 正常に取り消すことができました。 "403": description: 失敗しました。権限がありません。 "404": description: 失敗しました。指定したトークンは存在しません。 /users/me/sessions: get: tags: - sessions operationId: getSessions description: 自分のログインセッションリストを取得します。 responses: "200": description: セッションリストを返します。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Session" "403": description: 権限がありません。 delete: tags: - sessions operationId: deleteSessions description: 自分のログインセッションを全てログアウトします。 responses: "204": description: 成功しました。 "403": description: 権限がありません。 /users/me/sessions/{referenceID}: parameters: - name: referenceID description: 操作の対象となるセッションの参照ID in: path required: true schema: type: string delete: tags: - sessions operationId: deleteSession description: 対象のセッションをログアウトします。 responses: "204": description: 成功しました。 "403": description: 権限がありません。 "404": description: 対象のセッションは存在しません。 /users/me/clips: get: tags: - clip operationId: getClips description: 全てのクリップを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Clip" post: tags: - clip operationId: clipMessage description: 新しくメッセージをクリップします。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SetClip" responses: "201": description: 正常にクリップできました。クリップIDを返します。 content: application/json: schema: $ref: "#/components/schemas/ClipIDObject" "400": description: 正常にクリップできませんでした。リクエスト内容が不正です。 /users/me/clips/{clipID}: parameters: - $ref: "#/components/parameters/clipIdInPath" get: tags: - clip operationId: getClip description: 指定したクリップのメッセージを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Message" "404": description: 正常に取得できませんでした。指定したクリップは存在しません。 delete: tags: - clip operationId: unclipMessage description: 指定したクリップを削除します。 security: - traqOAuth2: - write responses: "204": description: 正常に削除できました。 "404": description: 正常に削除できませんでした。指定したクリップは存在しません。 /users/me/clips/{clipID}/folder: parameters: - $ref: "#/components/parameters/clipIdInPath" get: tags: - clip operationId: getClipsFolder description: 指定したクリップのフォルダ情報を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/ClipsFolder" "404": description: 正常に取得できませんでした。指定したクリップは存在しません。 put: tags: - clip operationId: changeClipsFolder description: 指定したクリップのフォルダを変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/ClipsFolderIDObject" responses: "204": description: 正常に変更できました。 "400": description: 正常に変更できませんでした。指定したフォルダは存在しません。 "404": description: 正常に変更できませんでした。指定したクリップは存在しません。 /users/me/clips/folders: get: tags: - clip operationId: getClipFolders description: クリップフォルダ一覧を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/ClipsFolder" post: tags: - clip operationId: createClipFolder description: クリップフォルダを作成します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/ClipsFolderNameObject" responses: "201": description: 正常に作成できました。作成したフォルダ情報を返します。 content: application/json: schema: $ref: "#/components/schemas/ClipsFolder" "400": description: 作成できませんでした。リクエスト内容が不正です。 "409": description: 作成できませんでした。既に存在します。 /users/me/clips/folders/{folderID}: parameters: - name: folderID description: 操作の対象となるクリップフォルダのID in: path required: true schema: type: string format: uuid get: tags: - clip operationId: getClipFolder description: フォルダ内のクリップ一覧を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。クリップしたメッセージのリストを返します。 content: application/json: schema: type: array items: $ref: "#/components/schemas/ClipOfFolder" "404": description: 取得できませんでした。存在しないフォルダです。 patch: tags: - clip operationId: editClipFolder description: クリップフォルダ名を変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/ClipsFolderNameObject" responses: "204": description: 正常に変更できました。 "400": description: 正常に変更できませんでした。リクエスト内容が不正です。 "404": description: 正常に変更できませんでした。存在しないフォルダです。 "409": description: 正常に変更できませんでした。既に存在するフォルダです。 delete: tags: - clip operationId: deleteClipFolder description: クリップフォルダを削除します。フォルダ内のクリップは全て削除されます。 security: - traqOAuth2: - write responses: "204": description: 正常に削除できました。 "404": description: 正常に削除できませんでした。存在しないフォルダです。 /users/me/stars: get: tags: - star operationId: getStaredChannels description: お気に入りチャンネルリストを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。お気に入りチャンネルのIDの配列を返します。 content: application/json: schema: $ref: "#/components/schemas/UUIDs" /users/me/stars/{channelID}: parameters: - $ref: "#/components/parameters/channelIdInPath" put: tags: - star operationId: starChannel description: お気に入りチャンネルリストにチャンネルを追加します。 security: - traqOAuth2: - write responses: "204": description: 正常に追加できました。 "404": description: 正常に追加できませんでした。対象のチャンネルが存在しません。 delete: tags: - star operationId: unstarChannel description: +| お気に入りチャンネルリストから削除します。 既にお気に入りチャンネルリストに無いチャンネルを指定した場合は無視されます(204)。 security: - traqOAuth2: - write responses: "204": description: 正常に削除されました。 "404": description: 削除に失敗しました。指定されたチャンネルは存在しません。 /users/me/unread/channels: get: tags: - unread operationId: getUnreadChannels description: 未読チャンネル情報のリストを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/UnreadChannel" /users/me/unread/channels/{channelID}: parameters: - $ref: "#/components/parameters/channelIdInPath" delete: tags: - unread operationId: readMessages description: 指定されたチャンネルの未読メッセージを既読にします。存在しないチャンネルIDを指定した場合は、無視されます。 security: - traqOAuth2: - write responses: "204": description: 正常にメッセージを既読にできました。 /users/me/mute: get: tags: - mute operationId: getMutedChannels description: ミュートしているチャンネルのIDの配列を返します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/UUIDs" /users/me/mute/{channelID}: parameters: - $ref: "#/components/parameters/channelIdInPath" post: tags: - mute operationId: muteChannel description: 指定したチャンネルをミュートします。ただし、強制通知チャンネルはミュートできません。既にミュートしていた場合は204を返します。 security: - traqOAuth2: - write responses: "204": description: 正常にミュートできました。 "403": description: ミュートできませんでした。許可されていません。 "404": description: ミュートできませんでした。指定したチャンネルは存在しません。 delete: tags: - mute operationId: unmuteChannel description: 指定したチャンネルのミュートを解除します。既に解除されていた場合は204を返します。 security: - traqOAuth2: - write responses: "204": description: 正常にミュートを解除できました。 "404": description: ミュートを解除できませんでした。指定したチャンネルは存在しません。 # /users/me/favorite-stamps # /users/me/favorite-stamps/{stampID} /users/{userID}: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - user operationId: getUser description: ユーザーの詳細を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: |+ 正常に取得できました。 ユーザー情報を返します。 content: application/json: schema: $ref: "#/components/schemas/UserDetail" "404": description: +| 正常に取得できませんでした。 指定したユーザーは存在しません。 # PATCH /users/{userID} # /users/{userID}/status # /users/{userID}/password /users/{userID}/messages: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - message operationId: getDirectMessages description: DMチャンネルに存在するメッセージを取得します。 security: - traqOAuth2: - read parameters: - $ref: "#/components/parameters/limitInQuery" - $ref: "#/components/parameters/offsetInQuery" - $ref: "#/components/parameters/sinceInQuery" - $ref: "#/components/parameters/untilInQuery" - $ref: "#/components/parameters/inclusiveInQuery" - $ref: "#/components/parameters/orderInQuery" responses: "200": description: |+ 正常に取得ができました。 メッセージの配列を返します。 headers: X-TRAQ-MORE: $ref: "#/components/headers/X-TRAQ-MORE" content: application/json: schema: $ref: "#/components/schemas/MessageList" "400": description: |+ 変更に失敗しました 不正なリクエストです "404": description: |+ 取得に失敗しました。 指定したユーザーは存在しません。 post: tags: - message operationId: postDirectMessage description: DMチャンネルにメッセージを投稿します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SendMessage" responses: "201": description: |+ 投稿に成功しました。 投稿されたメッセージが返されます。 content: application/json: schema: $ref: "#/components/schemas/Message" "404": description: +| 投稿に失敗しました。 指定したユーザーは存在しません。 /users/{userID}/icon: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - user operationId: getUserIcon description: ユーザーのアイコン画像を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/gif: schema: type: string format: binary "404": description: 正常に取得できませんでした。指定したユーザーは存在しません。 # PUT /users/{userID}/icon /users/{userID}/notification: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - notification operationId: getUserSubscribeChannels description: ユーザーが通知を入れているチャンネルのリストを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。チャンネルIDの配列を返します。 content: application/json: schema: $ref: "#/components/schemas/UUIDs" "404": description: 取得に失敗しました。指定したユーザーは存在しません。 /users/{userID}/groups: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - user group operationId: getUserGroups description: 所属するユーザーグループのIDを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: $ref: "#/components/schemas/UUIDs" "404": description: 正常に取得できませんでした。指定したユーザーは存在しません。 /users/{userID}/tags: parameters: - $ref: "#/components/parameters/userIdInPath" get: tags: - userTag operationId: getUserTags description: ユーザーのタグのリストを取得します。 security: - traqOAuth2: - read responses: "200": description: |+ 正常に取得できました。 タグのリストを返します。 content: application/json: schema: $ref: "#/components/schemas/TagList" "404": description: |+ 正常に取得できませんでした。 指定したユーザーは存在しません。 post: tags: - userTag operationId: addUserTag description: ユーザーにタグを追加します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SetTag" responses: "201": description: |+ 正常に追加できました。 "400": description: |+ 正常に追加できませんでした。 パラメータの形式が不正です。 "403": description: |+ 正常に追加できませんでした。 権限がありません。 "404": description: +| 正常に追加できませんでした。 指定したユーザーは存在しません。 /users/{userID}/tags/{tagID}: parameters: - $ref: "#/components/parameters/userIdInPath" - $ref: "#/components/parameters/tagIdInPath" patch: tags: - userTag operationId: changeLockUserTag description: タグのロック、アンロックを変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SetTagLock" responses: "204": description: |+ 正常に変更できました。 "400": description: |+ 正常に変更できませんでした。 パラメータの形式が不正です。 "403": description: |+ 正常に変更できませんでした。 権限がありません。 "404": description: |+ 正常に変更できませんでした。 指定したユーザー、もしくはタグは存在しません。 delete: tags: - userTag operationId: deleteUserTag description: ユーザーから指定したタグを削除します。既に存在しないタグを削除しようとした場合は無視されます(204)。 security: - traqOAuth2: - write responses: "204": description: |+ 正常に削除できました。 "403": description: |+ 正常に削除できませんでした。 権限がありません。 "404": description: +| 正常に削除できませんでした。 指定したユーザーは存在しません。 /heartbeat: get: tags: - heartbeat operationId: getHeartbeat description: チャンネルを現在見ている人・編集している人を取得します。 security: - traqOAuth2: - read parameters: - name: channelId in: query description: 現在いるチャンネルId required: true schema: type: string format: uuid responses: "200": description: |+ 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/HeartbeatRes" post: tags: - heartbeat operationId: postHeartbeat description: どのチャンネルを見ているか・編集しているかを送信します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/Heartbeat" responses: "200": description: 正常に送信できました。 /channels: get: tags: - channel operationId: getChannels description: |+ (すべての)チャンネルのリストを取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: |+ 正常に取得できました。 チャンネルの配列を返します。 content: application/json: schema: $ref: "#/components/schemas/ChannelList" post: tags: - channel operationId: createChannel description: チャンネルを作成します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateChannel" responses: "201": description: |+ 正常にチャンネルが作成できました。 作成されたチャンネルを返します。 content: application/json: schema: $ref: "#/components/schemas/Channel" "400": description: +| 正常にチャンネルが作成できませんでした。 親チャンネルが存在しない又は指定されたタイプに対して適切なプロパティが存在しません。 /channels/{channelID}: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - channel operationId: getChannel description: チャンネルの情報を返します。 security: - traqOAuth2: - read responses: "200": description: |+ 正常に取得ができました。 チャンネルを返します。 content: application/json: schema: $ref: "#/components/schemas/Channel" "404": description: |+ 取得に失敗しました。 指定したチャンネルは存在しません。 patch: tags: - channel operationId: editChannel description: チャンネルの情報を変更します。 requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchChannel" responses: "204": description: 正常に変更ができました。 "400": description: 失敗しました。リクエスト内容が不正です。 "403": description: 失敗しました。権限がありません。 "404": description: |+ 変更に失敗しました。 指定したチャンネルは存在しません。 delete: tags: - channel operationId: deleteChannel description: チャンネルを削除します。 responses: "204": description: 削除に成功しました。 "404": description: +| 削除に失敗しました。 指定したチャンネルは既に存在しません。 /channels/{channelID}/parent: parameters: - $ref: "#/components/parameters/channelIdInPath" put: tags: - channel operationId: changeChannelParent description: チャンネルの親チャンネルを変更します。 requestBody: content: application/json: schema: $ref: "#/components/schemas/PutParentChannel" responses: "204": description: 変更に成功しました。 "400": description: 変更に失敗しました。リクエスト内容が不正です。 "403": description: 変更に失敗しました。権限がありません。 "404": description: 変更に失敗しました。指定されたチャンネルは存在しません。 "409": description: 変更に失敗しました。チャンネル名が競合しています。 /channels/{channelID}/children: parameters: - $ref: "#/components/parameters/channelIdInPath" post: tags: - channel operationId: createChannelChild description: 子チャンネルを作成します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateChannelChild" responses: "201": description: 正常にチャンネルが作成できました。作成されたチャンネルを返します。 content: application/json: schema: $ref: "#/components/schemas/Channel" "400": description: チャンネルが作成できませんでした。リクエスト内容が不正です。 "403": description: チャンネルが作成できませんでした。権限がありません。 "404": description: チャンネルが作成できませんでした。指定したチャンネルは存在しません。 "409": description: チャンネルが作成できませんでした。指定したチャンネル名のチャンネルは既に存在します。 /channels/{channelID}/pins: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - pin operationId: getPinnedMessages description: チャンネルのピン留め一覧を取得します。 security: - traqOAuth2: - read responses: "200": description: |+ 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/PinList" /channels/{channelID}/topic: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - channel operationId: getChannelTopic description: チャンネルの説明を取得します。 security: - traqOAuth2: - read responses: "200": description: +| 正常に取得ができました。 チャンネルトピックを返します。 content: application/json: schema: $ref: "#/components/schemas/ChannelTopic" "404": description: +| 取得に失敗しました。 指定したチャンネルは存在しません。 put: tags: - channel operationId: changeChannelTopic description: チャンネルの説明を変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SetChannelTopic" responses: "204": description: 正常に更新できました。 "404": description: +| 更新に失敗しました。 指定したチャンネルは存在しません。 /channels/{channelID}/messages: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - message operationId: getMessages description: チャンネルに存在するメッセージを取得します。 security: - traqOAuth2: - read parameters: - $ref: "#/components/parameters/limitInQuery" - $ref: "#/components/parameters/offsetInQuery" - $ref: "#/components/parameters/sinceInQuery" - $ref: "#/components/parameters/untilInQuery" - $ref: "#/components/parameters/inclusiveInQuery" - $ref: "#/components/parameters/orderInQuery" responses: "200": description: |+ 正常に取得ができました。 メッセージの配列を返します。 headers: X-TRAQ-MORE: $ref: "#/components/headers/X-TRAQ-MORE" content: application/json: schema: $ref: "#/components/schemas/MessageList" "400": description: |+ 変更に失敗しました 不正なリクエストです "404": description: |+ 取得に失敗しました。 指定したチャンネルは存在しません。 post: tags: - message operationId: postMessage description: チャンネルにメッセージを投稿します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SendMessage" responses: "201": description: |+ 投稿に成功しました。 投稿されたメッセージが返されます。 content: application/json: schema: $ref: "#/components/schemas/Message" "404": description: +| 投稿に失敗しました。 指定したチャンネルは存在しません。 /channels/{channelID}/events: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - channel operationId: getChannelEvents description: チャンネルイベントのリストを取得します。 security: - traqOAuth2: - read parameters: - $ref: "#/components/parameters/limitInQuery" - $ref: "#/components/parameters/offsetInQuery" - $ref: "#/components/parameters/sinceInQuery" - $ref: "#/components/parameters/untilInQuery" - $ref: "#/components/parameters/inclusiveInQuery" - $ref: "#/components/parameters/orderInQuery" responses: "200": description: 正常に取得ができました。イベントの配列を返します。 headers: X-TRAQ-MORE: $ref: "#/components/headers/X-TRAQ-MORE" content: application/json: schema: type: array items: $ref: "#/components/schemas/ChannelEvent" "400": description: |+ 変更に失敗しました 不正なリクエストです "404": description: +| 取得に失敗しました。 指定したチャンネルは存在しません。 /channels/{channelID}/notification: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - notification operationId: getSubscribers description: 通知を点けているユーザーのIDの配列を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: $ref: "#/components/schemas/UUIDs" "404": description: 取得に失敗しました。指定したチャンネルは存在しません。 put: tags: - notification operationId: changeSubscribers description: |+ チャンネルの通知状況を変更します。 リクエストに含めなかったユーザーIDのユーザーの通知状況は変更しません。 また、存在しないユーザーのIDを指定した場合は無視されます。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/NotificationUsers" responses: "204": description: 正常に更新できました。 "404": description: +| 変更に失敗しました。 指定したチャンネルは存在しません。 /channels/{channelID}/bots: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - bot operationId: getChannelBots description: チャンネルに参加しているBot一覧を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/ChannelBot" "404": description: 取得できませんでした。指定したチャンネルは存在しません。 post: tags: - bot operationId: addChannelBot description: チャンネルにBotを参加させます。 security: - traqOAuth2: - write - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PostBotChannel" responses: "200": description: 正常にBotが参加しました。 content: application/json: schema: $ref: "#/components/schemas/BotIdObject" "400": description: 参加させることができませんでした。リクエスト内容が不正です。 "404": description: 参加させることができませんでした。指定したチャンネルは存在しません。 /channels/{channelID}/bots/{botID}: parameters: - $ref: "#/components/parameters/channelIdInPath" - $ref: "#/components/parameters/botIdInPath" delete: tags: - bot operationId: removeChannelBot description: Botをチャンネルから退出させます。 security: - traqOAuth2: - write - manage_bot responses: "204": description: 正常に退出させることができました。 "404": description: 退出させることができませんでした。指定したチャンネル、またはBotは存在しません。 /channels/{channelID}/webrtc/state: parameters: - $ref: "#/components/parameters/channelIdInPath" get: tags: - webrtc operationId: getChannelWebRTCState description: チャンネルのWebRTC状態を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/WebRTCChannelState" "404": description: 取得できませんでした。指定したチャンネルは存在しません。 /notification: get: tags: - notification operationId: connectNotification description: 通知ストリーム(Server Sent Events)に接続します。 security: - traqOAuth2: - read responses: "200": description: 接続が完了しました。 /notification/device: post: tags: - notification operationId: registerNotificationDevice description: FCMデバイスを登録します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/FCMToken" responses: "201": description: 正常に登録できました。 /messages/reports: get: tags: - message operationId: getReports description: メッセージ通報を最大50件取得します。 parameters: - name: p in: query description: ページ番号(ゼロオリジン) schema: type: integer responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Report" "403": description: 取得できませんでした。権限がありません。 /messages/{messageID}: parameters: - $ref: "#/components/parameters/messageIdInPath" get: tags: - message operationId: getMessage description: 指定したメッセージを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Message" "404": description: 取得できませんでした。指定されたメッセージは存在しません。 put: tags: - message operationId: editMessage description: 指定したメッセージを編集します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/SendMessage" responses: "204": description: 正常に編集できました。 "403": description: 編集できませんでした。指定されたメッセージを編集する権限がありません。 "404": description: 編集できませんでした。指定されたメッセージは存在しません。 delete: tags: - message operationId: deleteMessage description: 指定したメッセージを削除します。 security: - traqOAuth2: - write responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。指定されたメッセージを削除する権限がありません。 "404": description: 削除できませんでした。指定されたメッセージは存在しません。 /messages/{messageID}/report: parameters: - $ref: "#/components/parameters/messageIdInPath" post: tags: - message operationId: reportMessage description: 指定したメッセージを通報します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/ReportMessage" responses: "204": description: 通報を受理しました。 "400": description: 通報を受理できませんでした。リクエスト内容が不正です。 "404": description: 通報を受理できませんでした。指定されたメッセージは存在しません。 /messages/{messageID}/stamps: parameters: - $ref: "#/components/parameters/messageIdInPath" get: tags: - stamp operationId: getMessageStamps description: 指定したメッセージに押されているスタンプを全て取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/MessageStamp" "404": description: 取得できませんでした。指定したメッセージは存在しません。 /messages/{messageID}/stamps/{stampID}: parameters: - $ref: "#/components/parameters/messageIdInPath" - $ref: "#/components/parameters/stampIdInPath" post: tags: - stamp operationId: stampMessage description: 指定したメッセージに指定したスタンプを押します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/MessageStampPost" responses: "204": description: 正常にスタンプを押すことができました。 "400": description: スタンプを押すことができませんでした。リクエスト内容が不正です。 "404": description: スタンプを押すことができませんでした。指定されたスタンプまたはメッセージは存在しません。 delete: tags: - stamp operationId: unstampMessage description: 指定したメッセージから指定したスタンプを外します。 security: - traqOAuth2: - write responses: "204": description: 正常にスタンプを外すことができました。 "404": description: スタンプを外すことができませんでした。指定されたスタンプまたはメッセージは存在しません。 /tags/{tagID}: parameters: - $ref: "#/components/parameters/tagIdInPath" get: tags: - userTag operationId: getTag description: 指定されたタグの情報を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/TagUsers" "404": description: 正常に取得できませんでした。指定されたタグIDは存在しません /files: post: tags: - file operationId: uploadFile description: ファイルをアップロードします security: - traqOAuth2: - write requestBody: content: multipart/form-data: schema: required: - file properties: file: type: string description: ファイル本体 format: binary acl_readable: type: string default: all description: ファイルにアクセスすることが可能なユーザーのUUIDの文字列表現をカンマ区切りで連結した文字列、または'all'(デフォルト) responses: "201": description: 正常にファイルがアップロードされました。 content: application/json: schema: $ref: "#/components/schemas/FileInfo" "403": description: ファイルがアップロード出来ませんでした。リクエスト内容が不正です。 "411": description: ファイルがアップロード出来ませんでした。Content-Lengthヘッダーを送信してください。 "413": description: ファイルがアップロード出来ませんでした。ファイルサイズが大きすぎます。 /files/{fileID}: parameters: - $ref: "#/components/parameters/fileIdInPath" get: tags: - file operationId: getFile description: 指定したファイルの中身を取得します。 security: - traqOAuth2: - read parameters: - name: dl description: ファイルをダウンロードする場合に1を指定する in: query required: false schema: type: integer responses: "200": description: |+ 正常に取得できました。 fileのbinaryを返します。 application/octet-streamで返すことになっていますが、ファイルの形式によっては変わります。 content: application/octet-stream: schema: type: string format: binary "403": description: 取得できませんでした。指定されたファイルにアクセスする権限がありません。 "404": description: 取得できませんでした。指定されたファイルは存在しません。 delete: tags: - file operationId: deleteFile description: 指定したファイルを削除します。 responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。指定されたファイルを削除する権限がありません。 "404": description: 削除できませんでした。指定されたファイルは存在しません。 /files/{fileID}/meta: parameters: - $ref: "#/components/parameters/fileIdInPath" get: tags: - file operationId: getFileMeta description: 指定したファイルのメタデータを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/FileInfo" "403": description: 取得できませんでした。指定されたファイルにアクセスする権限がありません。 "404": description: 取得できませんでした。指定されたファイルは存在しません。 /files/{fileID}/thumbnail: parameters: - $ref: "#/components/parameters/fileIdInPath" get: tags: - file operationId: getFileThumbnail description: 指定したファイルのサムネイルを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: image/png: schema: type: string format: binary "403": description: 取得できませんでした。指定されたファイルのサムネイルにアクセスする権限がありません。 "404": description: 取得できませんでした。指定されたファイルのサムネイルは存在しません。 /pins: post: tags: - pin operationId: pinMessage description: チャンネルにメッセージをピン留めします。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/MessageIDObject" responses: "201": description: 正常にピン留めできました。 content: application/json: schema: $ref: "#/components/schemas/PinIDObject" /pins/{pinID}: parameters: - $ref: "#/components/parameters/pinIdInPath" get: tags: - pin operationId: getPinnedMessage description: ピン留めを取得します。 security: - traqOAuth2: - read responses: "200": description: |+ 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Pin" delete: tags: - pin operationId: unpinMessage description: ピン留めを外します。 security: - traqOAuth2: - write responses: "204": description: |+ 正常に外せました。 "404": description: +| 指定したIDのピンは存在しません。 /stamps: get: tags: - stamp operationId: getStamps description: 全スタンプのリストを取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Stamp" post: tags: - stamp operationId: createStamp description: スタンプを新規作成します。 security: - traqOAuth2: - write requestBody: content: multipart/form-data: schema: required: - name - file properties: name: type: string description: スタンプ名(半角英数字と-+_のみを含む32文字以内の文字列) file: type: string format: binary description: 1MBまでのpng, jpeg, gif, svg encoding: file: contentType: image/png, image/jpeg, image/gif, image/svg+xml responses: "201": description: 正常にスタンプが作成されました。 content: application/json: schema: $ref: "#/components/schemas/Stamp" "400": description: 正常にスタンプが作成できませんでした。 /stamps/{stampID}: parameters: - $ref: "#/components/parameters/stampIdInPath" get: tags: - stamp operationId: getStamp description: スタンプの情報を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Stamp" "404": description: 取得できませんでした。指定されたスタンプは存在しません。 patch: tags: - stamp operationId: editStamp description: スタンプを修正します。 security: - traqOAuth2: - write requestBody: content: multipart/form-data: schema: properties: name: type: string description: スタンプ名(半角英数字と-+_のみを含む32文字以内の文字列) file: type: string format: binary description: 1MBまでのpng, jpeg, gif, svg encoding: file: contentType: image/png, image/jpeg, image/gif, image/svg+xml responses: "204": description: 正常に修正できました。 "403": description: 修正できませんでした。指定されたスタンプを修正する権限がありません。 "404": description: 修正できませんでした。指定されたスタンプは存在しません。 delete: tags: - stamp operationId: deleteStamp description: スタンプを削除します。 responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。指定されたスタンプを削除する権限がありません。 "404": description: 削除できませんでした。指定されたスタンプは存在しません。 /webhooks: get: tags: - webhook operationId: getWebhooks description: 自分が作成したwebhookの一覧を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Webhook" post: tags: - webhook operationId: createWebhooks description: webhookを作成します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PostWebhook" responses: "201": description: 正常に作成できました。 content: application/json: schema: $ref: "#/components/schemas/Webhook" "400": description: 作成できませんでした。リクエスト内容が不正です。 "403": description: 作成できませんでした。権限がありません。 /webhooks/{webhookID}: parameters: - $ref: "#/components/parameters/webhookIdInPath" get: tags: - webhook operationId: getWebhook description: webhookの詳細を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Webhook" "403": description: 取得できませんでした。権限がありません。 "404": description: 取得できませんでした。指定したwebhookは存在しません。 patch: tags: - webhook operationId: editWebhook description: webhookを修正します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchWebhook" responses: "204": description: 正常に修正できました。 "400": description: 修正できませんでした。リクエスト内容が不正です。 "403": description: 削除できませんでした。権限がありません。 "404": description: 修正できませんでした。指定したwebhookは存在しません。 delete: tags: - webhook operationId: deleteWebhook description: webhookを削除します。 security: - traqOAuth2: - manage_bot responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。権限がありません。 "404": description: 削除できませんでした。指定したwebhookは存在しません。 post: tags: - webhook operationId: postWebhook description: webhookを送信します。 parameters: - in: header name: X-TRAQ-Channel-Id schema: type: string format: uuid description: 投稿先のチャンネルID(変更する場合) - in: header name: X-TRAQ-Signature schema: type: string description: リクエストボディシグネチャ。Secretが設定されている場合は必須 security: [] requestBody: content: text/plain: schema: type: string description: メッセージ文字列 responses: "204": description: 正常に送信できました。 "400": description: 正常に送信できませんでした。リクエスト内容が不正です。 "404": description: 正常に送信できませんでした。指定されたwebhookは存在しません。 /webhooks/{webhookID}/icon: parameters: - $ref: "#/components/parameters/webhookIdInPath" get: tags: - webhook operationId: getWebhookIcon description: 指定したWebhookのアイコンを取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/gif: schema: type: string format: binary "404": description: 取得できませんでした。指定したWebhookは存在しません。 put: tags: - webhook operationId: changeWebhookIcon description: 指定したwebhookのアイコンを変更します。 security: - traqOAuth2: - manage_bot requestBody: content: multipart/form-data: schema: properties: file: type: string format: binary description: webhookユーザーのアイコン(1MBまでのpng, jpeg, gif) encoding: file: contentType: image/png, image/jpeg, image/gif responses: "204": description: 正常に変更できました。 "400": description: 変更できませんでした。リクエスト内容が不正です。 "403": description: 変更できませんでした。権限がありません。 "404": description: 修正できませんでした。指定したwebhookは存在しません。 # /webhooks/{webhookID}/messages /webhooks/{webhookID}/github: parameters: - $ref: "#/components/parameters/webhookIdInPath" post: tags: - webhook operationId: postGitHubWebhook description: Github-Compatibleなwebhookを送信します。 security: [] requestBody: content: application/json: schema: type: object responses: "204": description: 正常に送信できました。 "400": description: 正常に送信できませんでした。リクエスト内容が不正です。 "404": description: 正常に送信できませんでした。指定されたwebhookは存在しません。 /groups: get: tags: - user group operationId: getGroups description: 全てのユーザーグループを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: type: array items: $ref: "#/components/schemas/UserGroup" post: tags: - user group operationId: createGroup description: ユーザーグループを作成します security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/PostUserGroup" responses: "201": description: 正常に作成できました content: application/json: schema: $ref: "#/components/schemas/UserGroup" "400": description: 正常に作成できませんでした。リクエスト内容が不正です "409": description: 正常に作成できませんでした。既に存在するグループ名です /groups/{groupID}: parameters: - $ref: "#/components/parameters/groupIdInPath" get: tags: - user group operationId: getGroup description: ユーザーグループを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: $ref: "#/components/schemas/UserGroup" "404": description: 正常に取得できませんでした。指定したグループは存在しません。 patch: tags: - user group operationId: editGroup description: ユーザーグループの情報を変更します security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchUserGroup" responses: "204": description: 正常に変更できました "400": description: 正常に変更できませんでした。リクエスト内容が不正です "403": description: 正常に変更できませんでした。権限がありません。 "404": description: 正常に変更できませんでした。指定したグループは存在しません。 "409": description: 正常に変更できませんでした。既に存在するグループ名です delete: tags: - user group operationId: deleteGroup description: ユーザーグループを削除します security: - traqOAuth2: - write responses: "204": description: 正常に削除できました "403": description: 正常に削除できませんでした。権限がありません。 "404": description: 正常に削除できませんでした。指定したグループは存在しません。 /groups/{groupID}/members: parameters: - $ref: "#/components/parameters/groupIdInPath" get: tags: - user group operationId: getGroupMembers description: ユーザーグループのメンバーのIDを取得します security: - traqOAuth2: - read responses: "200": description: 正常に取得できました content: application/json: schema: $ref: "#/components/schemas/UUIDs" "404": description: 正常に取得できませんでした。指定したグループは存在しません。 post: tags: - user group operationId: addGroupMember description: ユーザーグループにメンバーを追加します security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/AddUserGroup" responses: "204": description: 正常に追加できました "400": description: 正常に追加できませんでした。リクエスト内容が不正です "403": description: 正常に追加できませんでした。権限がありません。 "404": description: 正常に追加できませんでした。指定したグループは存在しません。 /groups/{groupID}/members/{userID}: parameters: - $ref: "#/components/parameters/groupIdInPath" - $ref: "#/components/parameters/userIdInPath" delete: tags: - user group operationId: deleteGroupMember description: ユーザーグループからメンバーを削除します security: - traqOAuth2: - write responses: "204": description: 正常に削除できました "400": description: 正常に追加できませんでした。リクエスト内容が不正です "403": description: 正常に削除できませんでした。権限がありません。 "404": description: 正常に削除できませんでした。指定したグループは存在しません。 /clients: get: tags: - client operationId: getClients description: 自分が登録しているクライアントの一覧を取得します。 security: - traqOAuth2: - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/OwnedClientInfo" "403": description: 取得できませんでした。権限がありません。 post: tags: - client operationId: createClient description: クライアントを登録します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PostClient" responses: "200": description: 正常に登録できました。クライアント情報を返します。 content: application/json: schema: $ref: "#/components/schemas/OwnedClientInfo" "400": description: 登録できませんでした。リクエスト内容が不正です。 "403": description: 登録できませんでした。権限がありません。 /clients/{clientID}: parameters: - $ref: "#/components/parameters/clientIdInPath" get: tags: - client operationId: getClient description: 指定したクライアントIDのクライアントの情報を取得します。 security: - traqOAuth2: - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/ClientInfo" "404": description: 取得できませんでした。指定されたクライアントは存在しません。 patch: tags: - client operationId: patchClient description: 指定したクライアントIDのクライアントの情報を変更します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchClient" responses: "204": description: 正常に変更できました。 "403": description: 変更できませんでした。権限がありません。 "404": description: 変更できませんでした。指定されたクライアントは存在しません。 delete: tags: - client operationId: deleteClient description: |+ 指定したクライアントIDのクライアントを削除します。 正常に削除された場合、このクライアントを通じての認可は全て取り消されます。 security: - traqOAuth2: - manage_bot responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。権限がありません。 "404": description: 削除できませんでした。指定されたクライアントは存在しません。 /clients/{clientID}/detail: parameters: - $ref: "#/components/parameters/clientIdInPath" get: tags: - client operationId: getClientDetail description: クライアントの詳細を取得します。 security: - traqOAuth2: - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/OwnedClientInfo" "403": description: 取得できませんでした。権限がありません。 /bots: get: tags: - bot operationId: getBots description: 自分が作成したBotの一覧を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: type: array items: $ref: "#/components/schemas/Bot" post: tags: - bot operationId: createBots description: Botを作成します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PostBot" responses: "201": description: 正常に作成できました。 content: application/json: schema: $ref: "#/components/schemas/BotDetail" "400": description: 作成できませんでした。リクエスト内容が不正です。 "409": description: 作成できませんでした。既に名前が使われています。 "403": description: 作成できませんでした。権限がありません。 /bots/{botID}: parameters: - $ref: "#/components/parameters/botIdInPath" get: tags: - bot operationId: getBot description: Botを取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/Bot" "404": description: 取得できませんでした。指定したBotは存在しません。 patch: tags: - bot operationId: editBot description: Bot情報を変更します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PatchBot" responses: "204": description: 正常に変更できました。 "400": description: 変更できませんでした。リクエスト内容が不正です。 "403": description: 変更できませんでした。権限がありません。 "404": description: 削除できませんでした。指定したBotは存在しません。 delete: tags: - bot operationId: deleteBot description: Botを削除します。 security: - traqOAuth2: - manage_bot responses: "204": description: 正常に削除できました。 "403": description: 削除できませんでした。権限がありません。 "404": description: 削除できませんでした。指定したBotは存在しません。 /bots/{botID}/detail: parameters: - $ref: "#/components/parameters/botIdInPath" get: tags: - bot operationId: getBotDetail description: Botの詳細を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/BotDetail" "403": description: 取得できませんでした。権限がありません。 "404": description: 取得できませんでした。指定したBotは存在しません。 /bots/{botID}/events: parameters: - $ref: "#/components/parameters/botIdInPath" put: tags: - bot operationId: changeBotEvents description: Botの購読イベントを変更します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PutBotEvents" responses: "204": description: 変更できました。 "400": description: リクエスト内容が不正です。 "403": description: 権限がありません。 "404": description: 指定したBotは存在しません。 # /bots/{botID}/events/logs /bots/{botID}/icon: parameters: - $ref: "#/components/parameters/botIdInPath" get: tags: - bot operationId: getBotIcon description: 指定したBotのアイコンを取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary image/gif: schema: type: string format: binary "404": description: 取得できませんでした。指定したBotは存在しません。 put: tags: - bot operationId: changeBotIcon description: 指定したBotのアイコンを変更します。 security: - traqOAuth2: - manage_bot requestBody: content: multipart/form-data: schema: properties: file: type: string format: binary description: Botユーザーのアイコン(1MBまでのpng, jpeg, gif) encoding: file: contentType: image/png, image/jpeg, image/gif responses: "204": description: 正常に変更できました。 "400": description: 変更できませんでした。リクエスト内容が不正です。 "403": description: 変更できませんでした。権限がありません。 "404": description: 修正できませんでした。指定したBotは存在しません。 /bots/{botID}/state: parameters: - $ref: "#/components/parameters/botIdInPath" put: tags: - bot operationId: changeBotState description: Botの状態を変更します。 security: - traqOAuth2: - manage_bot requestBody: content: application/json: schema: $ref: "#/components/schemas/PutBotState" responses: "204": description: 変更できました。 "202": description: Botのアクティベーションを受理しました。PINGリクエストが通り次第有効になります。 "400": description: リクエスト内容が不正です。 "403": description: 権限がありません。 "404": description: 指定したBotは存在しません。 /bots/{botID}/reissue: parameters: - $ref: "#/components/parameters/botIdInPath" post: tags: - bot operationId: reissueBotTokens description: Botの各種トークンを再発行します。 security: - traqOAuth2: - manage_bot responses: "200": description: 再発行しました content: application/json: schema: $ref: "#/components/schemas/BotTokens" "403": description: 権限がありません。 "404": description: 指定したBotは存在しません。 /bots/{botID}/channels: parameters: - $ref: "#/components/parameters/botIdInPath" get: tags: - bot operationId: getBotChannels description: Botが参加しているチャンネルのUUIDの配列を取得します。 security: - traqOAuth2: - read - manage_bot responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/UUIDs" "403": description: 権限がありません。 "404": description: 指定したBotは存在しません。 /activity/latest-messages: get: tags: - activity operationId: getActivities description: 各チャンネルの最新のメッセージ1件をメッセージ作成日時の降順で取得します。 security: - traqOAuth2: - read parameters: - in: query name: limit schema: type: integer default: 50 description: 取得する件数 1-50 example: 50 - in: query name: subscribe schema: type: boolean default: true description: 購読チャンネルのみを取得する example: false responses: "200": description: 正常に取得ができました content: application/json: schema: $ref: "#/components/schemas/MessageList" "400": description: リクエスト内容が不正です # /skyway/authenticate /webrtc/state: get: tags: - webrtc operationId: getWebRTCState description: 自身のWebRTCの状態を取得します。 security: - traqOAuth2: - read responses: "200": description: 正常に取得できました。 content: application/json: schema: $ref: "#/components/schemas/WebRTCUserState" put: tags: - webrtc operationId: putWebRTCState description: 自身のWebRTCの状態を変更します。 security: - traqOAuth2: - write requestBody: content: application/json: schema: $ref: "#/components/schemas/PutWebRTCState" responses: "204": description: 正常に変更できました。 components: securitySchemes: cookieAuth: type: apiKey in: cookie name: r_session traqOAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: /api/1.0/oauth2/authorize tokenUrl: /api/1.0/oauth2/token scopes: read: 読み取りスコープ write: 書き込みスコープ manage_bot: bot関連読み書きスコープ parameters: channelIdInPath: name: channelID description: 操作の対象となるチャンネルのID in: path required: true schema: type: string format: uuid userIdInPath: name: userID description: 操作の対象となるユーザーID in: path required: true schema: type: string format: uuid groupIdInPath: name: groupID description: 操作の対象となるユーザーグループID in: path required: true schema: type: string format: uuid messageIdInPath: name: messageID in: path required: true description: 操作の対象となるメッセージID schema: type: string format: uuid stampIdInPath: name: stampID description: 操作の対象となるスタンプID in: path required: true schema: type: string format: uuid tagIdInPath: name: tagID description: 操作の対象となるタグID in: path required: true schema: type: string format: uuid fileIdInPath: name: fileID description: 操作の対象となるファイルID in: path required: true schema: type: string pinIdInPath: name: pinID description: 操作の対象となるピン留めID in: path required: true schema: type: string clipIdInPath: name: clipID description: 捜査の対象となるクリップのID in: path required: true schema: type: string webhookIdInPath: name: webhookID description: 操作の対象となるWebhookのID in: path required: true schema: type: string format: uuid botIdInPath: name: botID description: 操作の対象となるBotのID in: path required: true schema: type: string format: uuid clientIdInPath: name: clientID description: 操作の対象となるclientのID in: path required: true schema: type: string format: uuid oauth2TokenIdInPath: name: oauth2TokenID description: 操作の対象となるTokenのID in: path required: true schema: type: string format: uuid limitInQuery: in: query name: limit schema: type: integer default: 0 description: 取得する件数 1-200 example: 50 offsetInQuery: in: query name: offset schema: type: integer default: 0 description: 取得するオフセット example: 150 sinceInQuery: in: query name: since schema: type: string format: date-time default: "0000-01-01T00:00:00.000000Z" description: 取得する時間範囲の開始日時 example: "2016-10-12T11:00:00.000000Z" untilInQuery: in: query name: until schema: type: string format: date-time description: 取得する時間範囲の終了日時 example: "2016-10-12T11:00:00.0000000Z" inclusiveInQuery: in: query name: inclusive schema: type: boolean default: false description: 範囲の端を含めるかどうか orderInQuery: in: query name: order schema: type: string enum: - asc - desc default: desc description: 昇順か降順か headers: X-TRAQ-MORE: schema: type: boolean description: 指定した範囲に要素がさらに存在するかどうか schemas: UUIDs: type: array description: UUIDの配列 items: type: string format: uuid OAuth2ResponseType: type: string enum: - code - token - none OAuth2Prompt: type: string enum: - none OAuth2Authorization: type: object properties: response_type: $ref: "#/components/schemas/OAuth2ResponseType" client_id: type: string redirect_uri: type: string scope: type: string state: type: string code_challenge: type: string code_challenge_method: type: string nonce: type: string prompt: $ref: "#/components/schemas/OAuth2Prompt" OAuth2Token: type: object required: - access_token - token_type properties: access_token: type: string token_type: type: string expires_in: type: integer refresh_token: type: string scope: type: string id_token: type: string PostOAuth2Token: type: object required: - grant_type properties: grant_type: type: string code: type: string redirect_uri: type: string client_id: type: string code_verifier: type: string username: type: string password: type: string format: password scope: type: string refresh_token: type: string client_secret: type: string OAuth2Decide: type: object required: - submit properties: submit: type: string description: 承諾する場合は"approve" UserLogin: type: object required: - name - pass properties: name: type: string pass: type: string format: password UserRegister: type: object required: - name - password properties: name: type: string description: ユーザー名(半角英数字とアンダーバー(_)の1文字以上32文字以下) password: type: string format: password description: パスワード UserData: type: object properties: displayName: type: string description: 新しい表示名(0-32文字)。変更しない場合は"" twitterId: type: string description: TwitterID ChangePassword: type: object required: - password - newPassword properties: password: type: string format: password description: 現在のパスワード newPassword: type: string format: password description: 新しいパスワード(10文字以上32文字以下のアスキー文字) Session: type: object properties: id: type: string format: uuid lastIP: type: string lastUserAgent: type: string lastAccess: type: string format: date-time createdAt: type: string format: date-time Clip: type: object properties: folderId: type: string format: uuid description: フォルダID clipId: type: string format: uuid description: クリップID clippedAt: type: string format: date-time description: クリップ日時 message: $ref: "#/components/schemas/Message" SetClip: type: object required: - messageId properties: messageId: type: string format: uuid description: クリップするメッセージID folderId: type: string format: uuid description: クリップフォルダ名 ClipOfFolder: type: object properties: clipId: type: string format: uuid description: クリップID clippedAt: type: string format: date-time description: クリップ日時 message: $ref: "#/components/schemas/Message" ClipIDObject: type: object properties: id: type: string format: uuid description: クリップID ClipsFolderIDObject: type: object required: - folderId properties: folderId: type: string format: uuid description: フォルダID ClipsFolderNameObject: type: object required: - name properties: name: type: string description: フォルダ名(30文字以内) Channel: type: object properties: channelId: type: string format: uuid description: チャンネルUUID name: type: string description: チャンネル名 example: yamada member: $ref: "#/components/schemas/UUIDs" description: privateチャンネルの場合は参加しているメンバー、公開チャンネルの場合は空 parent: type: string format: uuid description: 親の階層のチャンネルUUID topic: type: string description: チャンネルトピック example: yamadaチャンネルです! children: $ref: "#/components/schemas/UUIDs" description: 子のチャンネルUUIDの配列 visibility: type: boolean description: チャンネルの可視状態 force: type: boolean description: 強制通知チャンネルか private: type: boolean description: プライベートチャンネルか dm: type: boolean description: ダイレクトメッセージチャンネルか ChannelList: type: array items: $ref: "#/components/schemas/Channel" UnreadChannel: type: object properties: channelId: type: string format: uuid description: チャンネルID count: type: integer description: そのチャンネルの未読メッセージ数 noticeable: type: boolean description: 自分にメンションされたメッセージを含んでいるかどうか since: type: string format: date-time description: そのチャンネルの最古の未読メッセージの日時 updatedAt: type: string format: date-time description: そのチャンネルの最新の未読メッセージの日時 CreateChannel: type: object required: - type properties: private: type: boolean description: プライベートチャンネルかどうか member: $ref: "#/components/schemas/UUIDs" description: チャンネルに参加させるuserのuserId name: type: string description: チャンネル名 example: random parent: type: string format: uuid description: 親のチャンネルID example: xxxxxxxx-xxxx-xxxx-Nxxx-xxxxxxxxxxxx CreateChannelChild: type: object required: - name properties: name: type: string description: チャンネル名 example: random PatchChannel: type: object properties: name: type: string description: チャンネル名 example: gps visibility: type: boolean description: 変更後のvisibility example: true force: type: boolean description: 強制通知かどうか PutParentChannel: type: object required: - parent properties: parent: type: string format: uuid description: 変更後の親チャンネルID ChannelTopic: type: object properties: text: type: string description: チャンネルトピック example: yamadaチャンネルです! SetChannelTopic: type: object required: - text properties: text: type: string description: チャンネルの説明 example: なんでも良いチャンネルです!! UserStatus: type: integer enum: - 0 - 1 - 2 description: アカウントの状態 (0:停止,1:有効,2:一時停止) User: type: object properties: userId: type: string format: uuid description: ユーザーUUID name: type: string description: traQ ID displayName: type: string description: 表示名 iconFileId: type: string format: uuid description: アイコンファイルUUID bot: type: boolean description: BOTかどうか twitterId: type: string description: ツイッターID lastOnline: type: string format: date-time description: 最終オンライン日時(オンラインに1度もなってない場合はnull) isOnline: type: boolean description: 現在オンラインかどうか suspended: type: boolean description: アカウントが停止中かどうか accountStatus: $ref: "#/components/schemas/UserStatus" Me: type: object properties: userId: type: string format: uuid description: ユーザーUUID name: type: string description: traQ ID displayName: type: string description: 表示名 iconFileId: type: string format: uuid description: アイコンファイルUUID bot: type: boolean description: BOTかどうか twitterId: type: string description: ツイッターID lastOnline: type: string format: date-time description: 最終オンライン日時(オンラインに1度もなってない場合はnull) isOnline: type: boolean description: 現在オンラインかどうか suspended: type: boolean description: アカウントが停止中かどうか accountStatus: $ref: "#/components/schemas/UserStatus" role: type: string description: ユーザーロール permissions: type: array items: type: string description: 所有している権限の配列 UserList: type: array items: $ref: "#/components/schemas/User" UserDetail: type: object properties: userId: type: string format: uuid description: ユーザーUUID name: type: string description: traQ ID displayName: type: string description: 表示名 iconFileId: type: string format: uuid description: アイコンファイルUUID bot: type: boolean description: BOTかどうか twitterId: type: string description: ツイッターID lastOnline: type: string format: date-time description: 最終オンライン日時(オンラインに1度もなってない場合はnull) isOnline: type: boolean description: 現在オンラインかどうか suspended: type: boolean description: アカウントが停止中かどうか accountStatus: $ref: "#/components/schemas/UserStatus" tagList: $ref: "#/components/schemas/TagList" UserGroup: type: object properties: groupId: type: string format: uuid description: グループUUID name: type: string description: グループ名 description: type: string description: グループ説明 type: type: string description: グループタイプ adminUserId: type: string format: uuid description: グループ管理者UUID members: $ref: "#/components/schemas/UUIDs" createdAt: type: string format: date-time description: グループ作成日時 updatedAt: type: string format: date-time description: グループ更新日時 PostUserGroup: type: object required: - name properties: name: type: string maxLength: 30 description: グループ名 description: type: string description: 説明 PatchUserGroup: type: object properties: name: type: string maxLength: 30 description: グループ名 description: type: string description: 説明 adminUserId: type: string format: uuid description: 管理ユーザー AddUserGroup: type: object required: - userId properties: userId: type: string format: uuid description: 追加するユーザーのID Tag: type: object properties: tagId: type: string format: uuid description: タグUUID tag: type: string description: タグ文字列 isLocked: type: boolean description: タグがロックされているかどうか createdAt: type: string format: date-time description: タグ付与日時 updatedAt: type: string format: date-time description: タグ更新日時 TagList: type: array items: $ref: "#/components/schemas/Tag" SetTag: type: object required: - tag properties: tag: type: string maxLength: 30 description: 追加するタグ example: 山田太郎 SetTagLock: type: object required: - isLocked properties: isLocked: type: boolean description: lockするときはtrue,解除するときはfalse example: true TagUsers: type: object properties: tagId: type: string format: uuid tag: type: string users: $ref: "#/components/schemas/UUIDs" Message: type: object properties: messageId: type: string format: uuid description: メッセージUUID userId: type: string format: uuid description: 投稿者UUID parentChannelId: type: string description: 投稿先チャンネルUUID content: type: string description: メッセージ本体 createdAt: type: string format: date-time description: メッセージ投稿日時 updatedAt: type: string format: date-time description: メッセージ更新日時 pin: type: boolean description: ピン留めされているかどうか reported: type: boolean description: 自分が通報しているかどうか stampList: type: array description: メッセージスタンプ配列 items: $ref: "#/components/schemas/MessageStamp" MessageList: type: array items: $ref: "#/components/schemas/Message" SendMessage: type: object required: - text properties: text: type: string description: Markdown形式のメッセージ本文 example: Raskって誰? MessageIDObject: type: object required: - messageId properties: messageId: type: string format: uuid description: ピン留めするメッセージID MessageStamp: type: object properties: userId: type: string format: uuid description: ユーザーUUID stampId: type: string format: uuid description: スタンプUUID count: type: integer description: 押された個数 createdAt: type: string format: date-time description: 最初に押した日時 updatedAt: type: string format: date-time description: 最後に押した日時 MessageStampPost: type: object properties: count: type: integer description: 押す個数(1-100)、100より大きい場合は100として受け取ります Pin: type: object properties: pinId: type: string format: uuid description: ピンUUID channelId: type: string format: uuid description: チャンネルUUID userId: type: string format: uuid description: ピン留めしたユーザーのUUID dateTime: type: string format: date-time description: ピン留めした日時 message: $ref: "#/components/schemas/Message" PinList: type: array items: $ref: "#/components/schemas/Pin" PinIDObject: type: object properties: id: type: string format: uuid description: ピンID NotificationUsers: type: object properties: on: $ref: "#/components/schemas/UUIDs" description: 通知をつける人のユーザーIDの配列 off: $ref: "#/components/schemas/UUIDs" description: 通知をつけない人のユーザーIDの配列 FCMToken: type: object required: - token properties: token: type: string description: FCMのデバイストークン example: bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1 Webhook: type: object properties: webhookId: type: string format: uuid description: Webhook UUID botUserId: type: string format: uuid description: WebhookユーザーのUUID displayName: type: string description: Webhookユーザー表示名 description: type: string description: Webhook説明 secure: type: boolean description: Secure Webhookかどうか channelId: type: string format: uuid description: デフォルト投稿先チャンネルUUID creatorId: type: string format: uuid description: Webhook作成者UUID createdAt: type: string format: date-time description: Webhook作成日時 updatedAt: type: string format: date-time description: Webhook更新日時 PostWebhook: type: object required: - name - description - channelId properties: name: type: string maxLength: 32 description: webhookユーザーの表示名 description: type: string description: webhookの説明 channelId: type: string format: uuid description: デフォルトの投稿先チャンネル(パブリックチャンネルのみ) secret: type: string description: webhookシークレット PatchWebhook: type: object properties: name: type: string maxLength: 32 description: webhookユーザーの表示名 description: type: string description: webhookの説明 channelId: type: string format: uuid description: デフォルトの投稿先チャンネル(パブリックチャンネルのみ) secret: type: string description: webhookシークレット creatorId: type: string format: uuid description: 移譲先のユーザーUUID Bot: type: object properties: botId: type: string format: uuid description: BOT UUID botUserId: type: string format: uuid description: BOTユーザーUUID description: type: string description: BOT説明 subscribeEvents: type: array items: type: string description: BOTが購読しているイベントの配列 state: type: integer description: BOT状態 creatorId: type: string format: uuid description: BOT作成者UUID createdAt: type: string format: date-time description: BOT作成日時 updatedAt: type: string format: date-time description: BOT更新日時 ChannelBot: type: object properties: botId: type: string format: uuid description: BotのID botUserId: type: string format: uuid description: BotのユーザーID PostBotChannel: type: object required: - code properties: code: type: string description: ボットコード BotIdObject: type: object properties: botId: type: string format: uuid description: 参加したBotのID PostBot: type: object required: - name - displayName - description - postUrl properties: name: type: string maxLength: 16 description: botユーザーID。自動的に先頭に"BOT_"が付与されます displayName: type: string maxLength: 32 description: botユーザーの表示名 description: type: string description: botの説明 postUrl: type: string format: url description: botのPOSTエンドポイント PatchBot: type: object properties: displayName: type: string description: Bot表示名 description: type: string description: Bot説明 privileged: type: boolean description: privileged属性 webhookUrl: type: string format: url description: BotのPOSTエンドポイント creatorId: type: string format: uuid description: 移譲先のユーザーUUID PutBotState: type: object required: - state properties: state: type: string description: activeまたはinactive BotTokens: type: object properties: verificationToken: type: string description: Verification Token accessToken: type: string description: BOTアクセストークン botCode: type: string description: BOTインストールコード BotDetail: type: object properties: botId: type: string format: uuid description: BOT UUID botUserId: type: string format: uuid description: BOTユーザーUUID description: type: string description: BOT説明 subscribeEvents: type: array items: type: string description: BOTが購読しているイベントの配列 state: type: integer description: BOT状態 creatorId: type: string format: uuid description: BOT作成者UUID createdAt: type: string format: date-time description: BOT作成日時 updatedAt: type: string format: date-time description: BOT更新日時 verificationCode: type: string example: NT672c7bgpfwdiMTyDXoeKiudlMazu description: BOT認証コード accessToken: type: string example: NT672c7bgpfwdiMTyDXoeKiudlMazu description: BOTアクセストークン postUrl: type: string format: uri description: BOTサーバーエンドポイント example: https://example.com/bot privileged: type: boolean description: 権限昇格されているかどうか botCode: type: string example: NT672c7bgpfwdiMTyDXoeKiudlMazu description: BOTインストールコード PutBotEvents: type: object required: - events properties: events: type: array description: 購読するイベントの配列 items: type: string StampHistory: type: object properties: stampId: type: string format: uuid description: スタンプID datetime: type: string format: date-time description: そのスタンプが最後に押された日時 Stamp: type: object properties: id: type: string format: uuid description: スタンプUUID name: type: string description: スタンプ名 creatorId: type: string format: uuid description: スタンプ作成者UUID fileId: type: string format: uuid description: スタンプファイルUUID createdAt: type: string format: date-time description: スタンプ作成日時 updatedAt: type: string format: date-time description: スタンプ更新日時 FileInfo: type: object properties: fileId: type: string format: uuid description: ファイルUUID name: type: string description: ファイル名 mime: type: string description: MIMEタイプ size: type: integer description: ファイルサイズ md5: type: string description: MD5ハッシュ hasThumb: type: boolean description: サムネイルがあるかどうか thumbWidth: type: integer description: サムネイル幅 thumbHeight: type: integer description: サムネイル高さ datetime: type: string format: date-time description: アップロード日時 HeartbeatStatus: type: string enum: - none - monitoring - editing description: editing,monitoring,noneのユーザーの状態 example: monitoring Heartbeat: type: object required: - status - channelId properties: status: $ref: "#/components/schemas/HeartbeatStatus" channelId: type: string format: uuid description: 現在いるチャンネルId example: xxxxxxxx-xxxx-xxxx-Nxxx-xxxxxxxxxxxx HeartbeatRes: type: object properties: userStatuses: type: array items: type: object properties: userId: type: string format: uuid description: ユーザーUUID status: $ref: "#/components/schemas/HeartbeatStatus" channelId: type: string format: uuid description: チャンネルUUID ClipsFolder: type: object properties: id: type: string format: uuid description: フォルダUUID name: type: string description: フォルダ名 createdAt: type: string format: date-time description: フォルダ作成日時 Report: type: object properties: id: type: string format: uuid description: 通報ID messageId: type: string format: uuid description: 通報対象のメッセージID reporter: type: string format: uuid description: 通報者ID reason: type: string description: 通報内容 createdAt: type: string format: date-time description: 通報日時 ReportMessage: type: object required: - reason properties: reason: type: string description: 通報理由(100文字以内) ClientScope: type: string enum: - read - write - manage_bot ClientInfo: type: object properties: clientId: type: string description: クライアントID name: type: string description: クライアント名 description: type: string description: クライアント説明 creatorId: type: string format: uuid description: クライアント作成者UUID OwnedClientInfo: type: object properties: clientId: type: string description: クライアントID name: type: string description: クライアント名 description: type: string description: クライアント説明 creatorId: type: string format: uuid description: クライアント作成者UUID scopes: type: array items: $ref: "#/components/schemas/ClientScope" description: 要求スコープの配列 redirectUri: type: string format: uri description: OAuth2リダイレクトURL secret: type: string description: クライアントSecret AllowedClientInfo: type: object properties: tokenId: type: string format: uuid description: OAuth2アクセストークンUUID clientId: type: string description: クライアントID name: type: string description: クライアント名 description: type: string description: クライアント説明 creatorId: type: string format: uuid description: クライアント作成者UUID scopes: type: array items: $ref: "#/components/schemas/ClientScope" description: 要求スコープの配列 approvedAt: type: string format: date-time description: 承認日時 PostClient: type: object required: - name - description - redirectUri - scopes properties: name: type: string minLength: 1 maxLength: 32 description: クライアント名 description: type: string description: クライアントの説明 redirectUri: type: string format: uri description: リダイレクト先のURI scopes: type: array description: 要求するスコープ(必ず1つ以上) items: $ref: "#/components/schemas/ClientScope" PatchClient: type: object properties: name: type: string minLength: 1 maxLength: 32 description: クライアント名 description: type: string description: 説明 redirectUri: type: string format: uri description: リダイレクト先のURI ChannelEvent: type: object properties: type: type: string description: イベントタイプ enum: - TopicChanged - SubscribersChanged - PinAdded - PinRemoved - NameChanged - ParentChanged - VisibilityChanged - ForcedNotificationChanged - ChildCreated detail: oneOf: - $ref: "#/components/schemas/TopicChangedEvent" - $ref: "#/components/schemas/SubscribersChangedEvent" - $ref: "#/components/schemas/PinAddedEvent" - $ref: "#/components/schemas/PinRemovedEvent" - $ref: "#/components/schemas/NameChangedEvent" - $ref: "#/components/schemas/ParentChangedEvent" - $ref: "#/components/schemas/VisibilityChangedEvent" - $ref: "#/components/schemas/ForcedNotificationChangedEvent" - $ref: "#/components/schemas/ChildCreatedEvent" description: イベント詳細 date_time: type: string format: date-time description: イベント発生日 TopicChangedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID before: type: string description: 変更前トピック after: type: string description: 変更後トピック description: TopicChanged SubscribersChangedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID on: $ref: "#/components/schemas/UUIDs" description: オンにしたユーザーのUUIDの配列 off: $ref: "#/components/schemas/UUIDs" description: オフにしたユーザーのUUIDの配列 description: SubscribersChanged PinAddedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID messageId: type: string format: uuid description: メッセージUUID description: PinAdded PinRemovedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID messageId: type: string format: uuid description: メッセージUUID description: PinRemoved NameChangedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID before: type: string description: 変更前名前 after: type: string description: 変更後名前 description: NameChanged ParentChangedEvent: type: object properties: userId: type: string format: uuid description: 変更者UUID before: type: string format: uuid description: 変更前親チャンネルUUID after: type: string format: uuid description: 変更後親チャンネルUUID description: ParentChanged VisibilityChangedEvent: type: object properties: userId: type: string format: uuid description: 作成者UUID visibility: type: boolean description: 可視状態 description: VisibilityChanged ForcedNotificationChangedEvent: type: object properties: userId: type: string format: uuid description: 作成者UUID force: type: boolean description: 強制状態 description: ForcedNotificationChanged ChildCreatedEvent: type: object properties: userId: type: string format: uuid description: 作成者UUID channelId: type: string format: uuid description: チャンネルUUID description: ChildCreated WebRTCUserState: type: object properties: userId: type: string format: uuid description: ユーザーUUID channelId: type: string format: uuid description: ユーザーの接続先チャンネルUUID(未接続の場合は00000000-0000-0000-0000-000000000000) state: type: array items: type: string description: ユーザーの状態の配列(未接続の場合は空配列) WebRTCChannelState: type: object properties: users: type: array items: $ref: "#/components/schemas/WebRTCUserState" description: 接続ユーザーの状態の配列 PutWebRTCState: type: object properties: channelId: type: string format: uuid description: ユーザーの接続先チャンネルUUID(切断はnullを指定) state: type: array items: type: string description: ユーザーの状態の配列(切断は空配列を指定) security: - cookieAuth: []