{ "openapi": "3.0.1", "info": { "title": "SPMS API - \uc804\uccb4", "description": "Stein Push Message Service API", "version": "v1" }, "paths": { "/v1/in/account/create": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uacc4\uc815 \uc0dd\uc131", "description": "Super Admin\uc774 \uc0c8\ub85c\uc6b4 \uc6b4\uc601\uc790(Manager/User) \uacc4\uc815\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAccountRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateAccountRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateAccountRequestDto" } } } }, "responses": { "200": { "description": "\uc0dd\uc131 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "409": { "description": "\uc774\uba54\uc77c \uc911\ubcf5" } } } }, "/v1/in/account/list": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \ubaa9\ub85d \uc870\ud68c", "description": "Super Admin\uc774 \uc6b4\uc601\uc790(Manager/User) \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. Super Admin\uc740 \ubaa9\ub85d\uc5d0 \ud3ec\ud568\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AccountListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AccountListRequestDto" } } } }, "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AccountListResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AccountListResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AccountListResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" } } } }, "/v1/in/account/{adminCode}": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uc0c1\uc138 \uc870\ud68c", "description": "Super Admin\uc774 \ud2b9\uc815 \uc6b4\uc601\uc790\uc758 \uc0c1\uc138 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "adminCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc6b4\uc601\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/account/{adminCode}/update": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uc815\ubcf4 \uc218\uc815", "description": "Super Admin\uc774 \uc6b4\uc601\uc790\uc758 \uc815\ubcf4(\uc774\ub984, \uc804\ud654\ubc88\ud638, \uad8c\ud55c)\ub97c \uc218\uc815\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "adminCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccountRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateAccountRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateAccountRequestDto" } } } }, "responses": { "200": { "description": "\uc218\uc815 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AccountResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc6b4\uc601\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/account/{adminCode}/delete": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uacc4\uc815 \uc0ad\uc81c", "description": "Super Admin\uc774 \uc6b4\uc601\uc790 \uacc4\uc815\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4. (Soft Delete)", "parameters": [ { "name": "adminCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc6b4\uc601\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/account/operator/create": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uacc4\uc815 \uc0dd\uc131 (\uc774\uba54\uc77c \ub9c1\ud06c)", "description": "Super Admin\uc774 \uc6b4\uc601\uc790 \uacc4\uc815\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \ube44\ubc00\ubc88\ud638 \uc124\uc815 \uc774\uba54\uc77c\uc774 \ubc1c\uc1a1\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/OperatorCreateRequestDto" } } } }, "responses": { "200": { "description": "\uc0dd\uc131 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "409": { "description": "\uc774\uba54\uc77c \uc911\ubcf5" } } } }, "/v1/in/account/operator/delete": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \uacc4\uc815 \uc0ad\uc81c", "description": "Super Admin\uc774 \uc6b4\uc601\uc790 \uacc4\uc815\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4. (Soft Delete) \uc790\uae30 \uc790\uc2e0\uc740 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorDeleteRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorDeleteRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/OperatorDeleteRequestDto" } } } }, "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c / \uc790\uae30 \uc790\uc2e0 \uc0ad\uc81c \ubd88\uac00" }, "404": { "description": "\uc6b4\uc601\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/account/operator/list": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \ubaa9\ub85d \uc870\ud68c", "description": "Super Admin\uc774 \uc6b4\uc601\uc790(Manager/User) \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. is_active \ud544\ud130\ub85c \ube44\ud65c\uc131 \uc6b4\uc601\uc790\ub3c4 \uc870\ud68c \uac00\ub2a5\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/OperatorListRequestDto" } } } }, "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/OperatorListResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/OperatorListResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorListResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" } } } }, "/v1/in/account/operator/password/reset": { "post": { "tags": [ "Account" ], "summary": "\uc6b4\uc601\uc790 \ube44\ubc00\ubc88\ud638 \ucd08\uae30\ud654", "description": "Super Admin\uc774 \uc6b4\uc601\uc790\uc758 \ube44\ubc00\ubc88\ud638\ub97c \ucd08\uae30\ud654\ud569\ub2c8\ub2e4. \ube44\ubc00\ubc88\ud638 \uc7ac\uc124\uc815 \uc774\uba54\uc77c\uc774 \ubc1c\uc1a1\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorPasswordResetRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorPasswordResetRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/OperatorPasswordResetRequestDto" } } } }, "responses": { "200": { "description": "\ucd08\uae30\ud654 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/OperatorCreateResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc6b4\uc601\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/public/config": { "post": { "tags": [ "AppConfig" ], "summary": "\uc571 \uae30\ubcf8 \uc124\uc815", "description": "\uc571 \uae30\ubcf8 \uc124\uc815 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/app/version": { "post": { "tags": [ "AppVersion" ], "summary": "\uc571 \ubc84\uc804 \uccb4\ud06c", "description": "\ud604\uc7ac \uc571 \ubc84\uc804 \uc815\ubcf4\ub97c \ud655\uc778\ud558\uace0 \uc5c5\ub370\uc774\ud2b8 \ud544\uc694 \uc5ec\ubd80\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppVersionRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AppVersionRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AppVersionRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/auth/signup": { "post": { "tags": [ "Auth" ], "summary": "\ud68c\uc6d0\uac00\uc785", "description": "\uc0c8\ub85c\uc6b4 \uad00\ub9ac\uc790 \uacc4\uc815\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc57d\uad00/\uac1c\uc778\uc815\ubcf4 \ub3d9\uc758(agreeTerms, agreePrivacy)\uac00 \ud544\uc218\uc774\uba70, \uc131\uacf5 \uc2dc \uc774\uba54\uc77c \uc778\uc99d \uc138\uc158(verifySessionId)\uacfc \uba54\uc77c \ubc1c\uc1a1 \uacb0\uacfc(emailSent)\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignupRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SignupRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/SignupRequestDto" } } } }, "responses": { "200": { "description": "\ud68c\uc6d0\uac00\uc785 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SignupResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SignupResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SignupResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad \ub610\ub294 \ub3d9\uc758 \ubbf8\uccb4\ud06c" }, "409": { "description": "\uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc778 \uc774\uba54\uc77c" } } } }, "/v1/in/auth/email/check": { "post": { "tags": [ "Auth" ], "summary": "\uc774\uba54\uc77c \uc911\ubcf5 \uccb4\ud06c", "description": "\ud68c\uc6d0\uac00\uc785 \uc804 \uc774\uba54\uc77c \uc0ac\uc6a9 \uac00\ub2a5 \uc5ec\ubd80\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailCheckRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailCheckRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/EmailCheckRequestDto" } } } }, "responses": { "200": { "description": "\uc774\uba54\uc77c \uc911\ubcf5 \uccb4\ud06c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/EmailCheckResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/EmailCheckResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailCheckResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" } } } }, "/v1/in/auth/login": { "post": { "tags": [ "Auth" ], "summary": "\uad00\ub9ac\uc790 \ub85c\uadf8\uc778", "description": "\uc774\uba54\uc77c\uacfc \ube44\ubc00\ubc88\ud638\ub85c \ub85c\uadf8\uc778\ud558\uc5ec JWT \ud1a0\ud070\uc744 \ubc1c\uae09\ubc1b\uc2b5\ub2c8\ub2e4. \uc751\ub2f5\uc758 nextAction\uc73c\ub85c \ud654\uba74 \ubd84\uae30: GO_DASHBOARD(\ub300\uc2dc\ubcf4\ub4dc), VERIFY_EMAIL(\uc774\uba54\uc77c \uc778\uc99d \ud544\uc694), CHANGE_PASSWORD(\ube44\ubc00\ubc88\ud638 \uac15\uc81c\ubcc0\uacbd). 5\ud68c \uc5f0\uc18d \uc2e4\ud328 \uc2dc 15\ubd84\uac04 \ub85c\uadf8\uc778\uc774 \ucc28\ub2e8\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LoginRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LoginRequestDto" } } } }, "responses": { "200": { "description": "\ub85c\uadf8\uc778 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LoginResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LoginResponseDtoApiResponse" } } } }, "401": { "description": "\ub85c\uadf8\uc778 \uc2e4\ud328" }, "429": { "description": "\ub85c\uadf8\uc778 \uc2dc\ub3c4 \ud69f\uc218 \ucd08\uacfc" } } } }, "/v1/in/auth/token/refresh": { "post": { "tags": [ "Auth" ], "summary": "\ud1a0\ud070 \uac31\uc2e0", "description": "Refresh Token\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0c8\ub85c\uc6b4 Access Token\uacfc Refresh Token\uc744 \ubc1c\uae09\ubc1b\uc2b5\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenRefreshRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TokenRefreshRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/TokenRefreshRequestDto" } } } }, "responses": { "200": { "description": "\ud1a0\ud070 \uac31\uc2e0 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TokenRefreshResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TokenRefreshResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TokenRefreshResponseDtoApiResponse" } } } }, "401": { "description": "\uc720\ud6a8\ud558\uc9c0 \uc54a\uac70\ub098 \ub9cc\ub8cc\ub41c Refresh Token" } } } }, "/v1/in/auth/logout": { "post": { "tags": [ "Auth" ], "summary": "\ub85c\uadf8\uc544\uc6c3", "description": "\ud604\uc7ac \ub85c\uadf8\uc778\ub41c \uad00\ub9ac\uc790\uc758 \ud1a0\ud070\uc744 \ubb34\ud6a8\ud654\ud569\ub2c8\ub2e4. Refresh Token\uc740 DB\uc5d0\uc11c \uc0ad\uc81c\ub418\uace0, Access Token\uc740 Redis \ube14\ub799\ub9ac\uc2a4\ud2b8\uc5d0 \ub4f1\ub85d\ub418\uc5b4 \uc989\uc2dc \uc0ac\uc6a9 \ubd88\uac00\ud569\ub2c8\ub2e4. \uc124\uc815/\ub9c8\uc774\ud398\uc774\uc9c0/\ud504\ub85c\ud544 \ub4f1 \ubaa8\ub4e0 \ud654\uba74\uc5d0\uc11c \uc774 \ub2e8\uc77c API\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc751\ub2f5\uc758 redirect_to\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "\ub85c\uadf8\uc544\uc6c3 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LogoutResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LogoutResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LogoutResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" } } } }, "/v1/in/auth/email/verify": { "post": { "tags": [ "Auth" ], "summary": "\uc774\uba54\uc77c \uc778\uc99d", "description": "\uc778\uc99d \ucf54\ub4dc\ub85c \uc774\uba54\uc77c\uc744 \uc778\uc99d\ud569\ub2c8\ub2e4. verify_session_id(\uad8c\uc7a5) \ub610\ub294 email\ub85c \ub300\uc0c1\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. 5\ud68c \uc2e4\ud328 \uc2dc 30\ubd84\uac04 \ucc28\ub2e8\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailVerifyRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailVerifyRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/EmailVerifyRequestDto" } } } }, "responses": { "200": { "description": "\uc774\uba54\uc77c \uc778\uc99d \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/EmailVerifyResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/EmailVerifyResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailVerifyResponseDtoApiResponse" } } } }, "400": { "description": "\uc778\uc99d \ucf54\ub4dc \ubd88\uc77c\uce58 \ub610\ub294 \ub9cc\ub8cc" }, "429": { "description": "\uc2dc\ub3c4 \ud69f\uc218 \ucd08\uacfc" } } } }, "/v1/in/auth/email/verify/resend": { "post": { "tags": [ "Auth" ], "summary": "\uc774\uba54\uc77c \uc778\uc99d\ucf54\ub4dc \uc7ac\uc804\uc1a1", "description": "\uc778\uc99d \uc138\uc158 ID\ub85c \uc778\uc99d\ucf54\ub4dc\ub97c \uc7ac\uc804\uc1a1\ud569\ub2c8\ub2e4. \uc7ac\uc804\uc1a1 \uac04 60\ucd08 \ucfe8\ub2e4\uc6b4\uc774 \uc801\uc6a9\ub418\uba70, \uc778\uc99d\ucf54\ub4dc \uc720\ud6a8\uc2dc\uac04\uc740 5\ubd84\uc785\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailResendRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailResendRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/EmailResendRequestDto" } } } }, "responses": { "200": { "description": "\uc7ac\uc804\uc1a1 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/EmailResendResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/EmailResendResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/EmailResendResponseDtoApiResponse" } } } }, "400": { "description": "\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc138\uc158" }, "429": { "description": "\uc7ac\uc804\uc1a1 \ucfe8\ub2e4\uc6b4 \uc911" } } } }, "/v1/in/auth/password/change": { "post": { "tags": [ "Auth" ], "summary": "\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd", "description": "\ud604\uc7ac \ub85c\uadf8\uc778\ub41c \uad00\ub9ac\uc790\uc758 \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ubcc0\uacbd \uc131\uacf5 \uc2dc \ubaa8\ub4e0 \uc138\uc158\uc774 \ubb34\ud6a8\ud654\ub418\uba70 \uc7ac\ub85c\uadf8\uc778\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \ube44\ubc00\ubc88\ud638 \uc815\ucc45: 8\uc790 \uc774\uc0c1, \uc601\ubb38 \ub300/\uc18c\ubb38\uc790\u00b7\uc22b\uc790\u00b7\ud2b9\uc218\ubb38\uc790 \uac01 1\uc790 \uc774\uc0c1, \ud604\uc7ac \ube44\ubc00\ubc88\ud638\uc640 \ub3d9\uc77c \ubd88\uac00.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangePasswordRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChangePasswordRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ChangePasswordRequestDto" } } } }, "responses": { "200": { "description": "\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChangePasswordResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChangePasswordResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChangePasswordResponseDtoApiResponse" } } } }, "400": { "description": "\ud604\uc7ac \ube44\ubc00\ubc88\ud638 \ubd88\uc77c\uce58 / \uc815\ucc45 \uc704\ubc18 / \ub3d9\uc77c \ube44\ubc00\ubc88\ud638 \uc7ac\uc0ac\uc6a9" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" } } } }, "/v1/in/public/banner/list": { "post": { "tags": [ "Banner" ], "summary": "\ubc30\ub108 \ubaa9\ub85d", "description": "\ud65c\uc131\ud654\ub41c \ubc30\ub108 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. position\uc73c\ub85c \ud544\ud130\ub9c1 \uac00\ub2a5.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BannerListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BannerListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/BannerListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/register": { "post": { "tags": [ "Device" ], "summary": "\ub514\ubc14\uc774\uc2a4 \ub4f1\ub85d", "description": "\uc571 \ucd5c\ucd08 \uc124\uce58 \uc2dc \ub514\ubc14\uc774\uc2a4\ub97c \ub4f1\ub85d\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceRegisterRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceRegisterRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceRegisterRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/info": { "post": { "tags": [ "Device" ], "summary": "\ub514\ubc14\uc774\uc2a4 \uc870\ud68c", "description": "\ub514\ubc14\uc774\uc2a4 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceInfoRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceInfoRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceInfoRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/update": { "post": { "tags": [ "Device" ], "summary": "\ub514\ubc14\uc774\uc2a4 \uc218\uc815", "description": "\uc571 \uc2e4\ud589 \uc2dc \ub514\ubc14\uc774\uc2a4 \uc815\ubcf4\ub97c \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceUpdateRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceUpdateRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceUpdateRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/delete": { "post": { "tags": [ "Device" ], "summary": "\ub514\ubc14\uc774\uc2a4 \uc0ad\uc81c", "description": "\uc571 \uc0ad\uc81c/\ub85c\uadf8\uc544\uc6c3 \uc2dc \ub514\ubc14\uc774\uc2a4\ub97c \ube44\ud65c\uc131\ud654\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/tags": { "post": { "tags": [ "Device" ], "summary": "\ud0dc\uadf8 \uc124\uc815", "description": "\ub514\ubc14\uc774\uc2a4 \ud0dc\uadf8\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. \ube48 \ubc30\uc5f4 \uc804\ub2ec \uc2dc \ubaa8\ub4e0 \ud0dc\uadf8 \ud574\uc81c.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceTagsRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceTagsRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceTagsRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/agree": { "post": { "tags": [ "Device" ], "summary": "\ub3d9\uc758 \uc124\uc815", "description": "\ud478\uc2dc/\ub9c8\ucf00\ud305 \uc218\uc2e0 \ub3d9\uc758\ub97c \uc124\uc815\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceAgreeRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceAgreeRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceAgreeRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/admin/delete": { "post": { "tags": [ "Device" ], "summary": "\uad00\ub9ac\uc790 \uae30\uae30 \uc0ad\uc81c", "description": "\uad00\ub9ac\uc790\uac00 \uae30\uae30\ub97c \uc0ad\uc81c(\ube44\ud65c\uc131\ud654)\ud569\ub2c8\ub2e4. \uc0ad\uc81c \uc989\uc2dc \ubc1c\uc1a1\uc774 \ucc28\ub2e8\ub429\ub2c8\ub2e4. JWT \uc778\uc99d \ud544\uc694.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceDeleteRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/list": { "post": { "tags": [ "Device" ], "summary": "\ub514\ubc14\uc774\uc2a4 \ubaa9\ub85d", "description": "\ub300\uc2dc\ubcf4\ub4dc\uc5d0\uc11c \ub514\ubc14\uc774\uc2a4 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. JWT \uc778\uc99d \ud544\uc694.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/device/export": { "post": { "tags": [ "Device" ], "summary": "\uae30\uae30 \uc5d1\uc140 \ub0b4\ubcf4\ub0b4\uae30", "description": "\ubaa9\ub85d \ud544\ud130\uc640 \ub3d9\uc77c \uc870\uac74\uc73c\ub85c \uae30\uae30 \ubaa9\ub85d\uc744 \uc5d1\uc140(.xlsx)\ub85c \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4. JWT \uc778\uc99d \ud544\uc694.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } }, { "name": "X-API-KEY", "in": "header", "description": "API \uc778\uc99d \ud0a4 (SDK/\ub514\ubc14\uc774\uc2a4\uc6a9)", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeviceExportRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeviceExportRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeviceExportRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/faq/list": { "post": { "tags": [ "Faq" ], "summary": "FAQ \ubaa9\ub85d", "description": "\ud65c\uc131\ud654\ub41c FAQ \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. category\ub85c \ud544\ud130\ub9c1 \uac00\ub2a5.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FaqListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FaqListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FaqListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/upload": { "post": { "tags": [ "File" ], "summary": "\ud30c\uc77c \uc5c5\ub85c\ub4dc", "description": "\uc774\ubbf8\uc9c0 \ub610\ub294 CSV \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" }, "file_type": { "type": "string" } } }, "encoding": { "file": { "style": "form" }, "file_type": { "style": "form" } } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/info": { "post": { "tags": [ "File" ], "summary": "\ud30c\uc77c \uc870\ud68c", "description": "\ud30c\uc77c \uba54\ud0c0\ub370\uc774\ud130\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileInfoRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FileInfoRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FileInfoRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/list": { "post": { "tags": [ "File" ], "summary": "\ud30c\uc77c \ubaa9\ub85d \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc758 \ud30c\uc77c \ubaa9\ub85d\uc744 \ud398\uc774\uc9d5 \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FileListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FileListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/delete": { "post": { "tags": [ "File" ], "summary": "\ud30c\uc77c \uc0ad\uc81c", "description": "\ud30c\uc77c\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4. (Soft Delete)", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDeleteRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FileDeleteRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FileDeleteRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/csv/validate": { "post": { "tags": [ "File" ], "summary": "CSV \uac80\uc99d", "description": "\ub300\uc6a9\ub7c9 \ubc1c\uc1a1\uc6a9 CSV \ud30c\uc77c\uc744 \uac80\uc99d\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" }, "message_code": { "type": "string" } } }, "encoding": { "file": { "style": "form" }, "message_code": { "style": "form" } } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/file/csv/template": { "post": { "tags": [ "File" ], "summary": "CSV \ud15c\ud50c\ub9bf \ub2e4\uc6b4\ub85c\ub4dc", "description": "\uba54\uc2dc\uc9c0\ubcc4 CSV \ud15c\ud50c\ub9bf\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CsvTemplateRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CsvTemplateRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CsvTemplateRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/maintenance": { "post": { "tags": [ "Maintenance" ], "summary": "\uc810\uac80 \uc548\ub0b4", "description": "\ud604\uc7ac \uc11c\ube44\uc2a4 \uc810\uac80 \uc0c1\ud0dc\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/save": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \uc800\uc7a5", "description": "\uba54\uc2dc\uc9c0 \ud15c\ud50c\ub9bf\uc744 \uc800\uc7a5\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0 \ucf54\ub4dc\uac00 \uc790\ub3d9 \uc0dd\uc131\ub429\ub2c8\ub2e4. \ud544\ub4dc\uba85\uc740 snake_case(title, body, image_url, link_url, link_type, data)\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc800\uc7a5 \uc804 validate API\ub85c \uc0ac\uc804 \uac80\uc99d\uc744 \uad8c\uc7a5\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageSaveRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageSaveRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageSaveRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/list": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \ubaa9\ub85d \uc870\ud68c", "description": "\uba54\uc2dc\uc9c0 \ubaa9\ub85d\uc744 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354\uac00 \uc788\uc73c\uba74 \ud574\ub2f9 \uc11c\ube44\uc2a4\ub9cc, \uc5c6\uc73c\uba74 \uc804\uccb4 \uc11c\ube44\uc2a4 \uba54\uc2dc\uc9c0\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. send_status \ud544\ud130(complete/pending/failed)\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \ubc1c\uc1a1 \uc0c1\ud0dc\ub294 \ud1b5\uc77c\ub41c SendStatus \uaddc\uce59(pending=\ubbf8\ubc1c\uc1a1, complete=1\uac74 \uc774\uc0c1 \uc131\uacf5, failed=\uc804\uac74 \uc2e4\ud328)\uc73c\ub85c \ud310\uc815\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/info": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \uc0c1\uc138 \uc870\ud68c", "description": "\uba54\uc2dc\uc9c0 \ucf54\ub4dc\ub85c \uc0c1\uc138 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4 \uc815\ubcf4(service_name, service_code), \uc791\uc131\uc790(created_by_name), \ubc1c\uc1a1 \uc0c1\ud0dc(latest_send_status), \ud15c\ud50c\ub9bf \ubcc0\uc218 \ubaa9\ub85d\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \ubc1c\uc1a1 \uc0c1\ud0dc\ub294 \ud1b5\uc77c\ub41c SendStatus \uaddc\uce59(pending=\ubbf8\ubc1c\uc1a1, complete=1\uac74 \uc774\uc0c1 \uc131\uacf5, failed=\uc804\uac74 \uc2e4\ud328)\uc73c\ub85c \ud310\uc815\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageInfoRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageInfoRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageInfoRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/delete": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \uc0ad\uc81c", "description": "\uba54\uc2dc\uc9c0\ub97c \uc18c\ud504\ud2b8 \uc0ad\uc81c\ud569\ub2c8\ub2e4. 30\uc77c \ud6c4 \uc2a4\ucf00\uc904\ub7ec\uc5d0 \uc758\ud574 \uc644\uc804 \uc0ad\uc81c\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageDeleteRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageDeleteRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageDeleteRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/validate": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \uc720\ud6a8\uc131 \uac80\uc0ac", "description": "\uba54\uc2dc\uc9c0 \ub0b4\uc6a9\uc758 \uc720\ud6a8\uc131\uc744 \uac80\uc0ac\ud569\ub2c8\ub2e4. save API\uc640 \ub3d9\uc77c\ud55c snake_case \ud544\ub4dc\uba85(title, body, image_url, link_url, link_type, data)\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac80\uc99d \uc2e4\ud328 \uc2dc data.errors[]\uc5d0 field + message \ub2e8\uc704\ub85c \uc624\ub958\uac00 \ubc18\ud658\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageValidateRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageValidateRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageValidateRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/message/preview": { "post": { "tags": [ "Message" ], "summary": "\uba54\uc2dc\uc9c0 \ubbf8\ub9ac\ubcf4\uae30", "description": "\uba54\uc2dc\uc9c0 \ud15c\ud50c\ub9bf\uc5d0 \ubcc0\uc218\ub97c \uce58\ud658\ud558\uc5ec \ubbf8\ub9ac\ubcf4\uae30\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc751\ub2f5\uc5d0 link_type\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessagePreviewRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessagePreviewRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessagePreviewRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/notice/list": { "post": { "tags": [ "Notice" ], "summary": "\uacf5\uc9c0\uc0ac\ud56d \ubaa9\ub85d", "description": "\ud65c\uc131\ud654\ub41c \uacf5\uc9c0\uc0ac\ud56d \ubaa9\ub85d\uc744 \ud398\uc774\uc9d5\uc73c\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4. \uc0c1\ub2e8 \uace0\uc815 \uc6b0\uc120 \uc815\ub82c.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoticeListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NoticeListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NoticeListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/notice/info": { "post": { "tags": [ "Notice" ], "summary": "\uacf5\uc9c0\uc0ac\ud56d \uc0c1\uc138", "description": "\uacf5\uc9c0\uc0ac\ud56d ID\ub85c \uc0c1\uc138 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoticeInfoRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NoticeInfoRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NoticeInfoRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/notification/summary": { "post": { "tags": [ "Notification" ], "summary": "\uc54c\ub9bc \uc694\uc57d \uc870\ud68c", "description": "\ucd5c\uadfc N\uac74\uc758 \uc54c\ub9bc\uacfc \ubbf8\uc77d \uac74\uc218\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. \ud5e4\ub354 \ubc43\uc9c0\uc6a9.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSummaryRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationSummaryRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NotificationSummaryRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/notification/list": { "post": { "tags": [ "Notification" ], "summary": "\uc54c\ub9bc \ubaa9\ub85d \uc870\ud68c", "description": "\uc54c\ub9bc \ubaa9\ub85d\uc744 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4. \uce74\ud14c\uace0\ub9ac/\uae30\uac04/\uc77d\uc74c \ud544\ud130\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NotificationListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/notification/read": { "post": { "tags": [ "Notification" ], "summary": "\uc54c\ub9bc \uc77d\uc74c \ucc98\ub9ac", "description": "\ub2e8\uac74 \uc54c\ub9bc\uc744 \uc77d\uc74c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \uc774\ubbf8 \uc77d\uc740 \uc54c\ub9bc\uc740 \ubb34\uc2dc(\uba71\ub4f1).", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationReadRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationReadRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NotificationReadRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/notification/read-all": { "post": { "tags": [ "Notification" ], "summary": "\uc54c\ub9bc \uc804\uccb4 \uc77d\uc74c", "description": "\ud574\ub2f9 \uad00\ub9ac\uc790\uc758 \ubaa8\ub4e0 \ubbf8\uc77d \uc54c\ub9bc\uc744 \uc77c\uad04 \uc77d\uc74c \ucc98\ub9ac\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } }, "/v1/in/account/password/forgot": { "post": { "tags": [ "Password" ], "summary": "\ube44\ubc00\ubc88\ud638 \ucc3e\uae30", "description": "\ub4f1\ub85d\ub41c \uc774\uba54\uc77c\ub85c \ube44\ubc00\ubc88\ud638 \uc7ac\uc124\uc815 \ud1a0\ud070\uc744 \ubc1c\uc1a1\ud569\ub2c8\ub2e4. \ubcf4\uc548\uc744 \uc704\ud574 \uc774\uba54\uc77c \uc874\uc7ac \uc5ec\ubd80\uc640 \uad00\uacc4\uc5c6\uc774 \ub3d9\uc77c\ud55c \uc751\ub2f5\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordForgotRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PasswordForgotRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PasswordForgotRequestDto" } } } }, "responses": { "200": { "description": "\uc7ac\uc124\uc815 \uba54\uc77c \ubc1c\uc1a1 \uc644\ub8cc" }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" } } } }, "/v1/in/account/password/reset": { "post": { "tags": [ "Password" ], "summary": "\ube44\ubc00\ubc88\ud638 \uc7ac\uc124\uc815", "description": "\uc774\uba54\uc77c\ub85c \ubc1b\uc740 \uc7ac\uc124\uc815 \ud1a0\ud070\uacfc \uc0c8 \ube44\ubc00\ubc88\ud638\ub85c \ube44\ubc00\ubc88\ud638\ub97c \uc7ac\uc124\uc815\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordResetRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PasswordResetRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PasswordResetRequestDto" } } } }, "responses": { "200": { "description": "\ube44\ubc00\ubc88\ud638 \uc7ac\uc124\uc815 \uc131\uacf5" }, "400": { "description": "\ud1a0\ud070 \ubd88\uc77c\uce58 \ub610\ub294 \ub9cc\ub8cc" } } } }, "/v1/in/account/password/temp": { "post": { "tags": [ "Password" ], "summary": "\uc784\uc2dc \ube44\ubc00\ubc88\ud638 \ubc1c\uae09", "description": "\ub4f1\ub85d\ub41c \uc774\uba54\uc77c\ub85c \uc784\uc2dc \ube44\ubc00\ubc88\ud638\ub97c \ubc1c\uc1a1\ud569\ub2c8\ub2e4. \ubcf4\uc548\uc744 \uc704\ud574 \uc774\uba54\uc77c \uc874\uc7ac \uc5ec\ubd80\uc640 \uad00\uacc4\uc5c6\uc774 \ub3d9\uc77c\ud55c \uc751\ub2f5\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TempPasswordRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TempPasswordRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/TempPasswordRequestDto" } } } }, "responses": { "200": { "description": "\uc784\uc2dc \ube44\ubc00\ubc88\ud638 \ubc1c\uc1a1 \uc644\ub8cc" }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" } } } }, "/v1/in/account/profile/info": { "post": { "tags": [ "Profile" ], "summary": "\ub0b4 \uc815\ubcf4 \uc870\ud68c", "description": "\ud604\uc7ac \ub85c\uadf8\uc778\ub41c \uad00\ub9ac\uc790\uc758 \ud504\ub85c\ud544 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" } } } }, "/v1/in/account/profile/update": { "post": { "tags": [ "Profile" ], "summary": "\ub0b4 \uc815\ubcf4 \uc218\uc815", "description": "\ud604\uc7ac \ub85c\uadf8\uc778\ub41c \uad00\ub9ac\uc790\uc758 \ud504\ub85c\ud544 \uc815\ubcf4(\uc774\ub984, \uc804\ud654\ubc88\ud638)\ub97c \uc218\uc815\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateProfileRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateProfileRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateProfileRequestDto" } } } }, "responses": { "200": { "description": "\uc218\uc815 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProfileResponseDtoApiResponse" } } } }, "400": { "description": "\ubcc0\uacbd\ub41c \ub0b4\uc6a9 \uc5c6\uc74c" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" } } } }, "/v1/in/account/profile/activity/list": { "post": { "tags": [ "Profile" ], "summary": "\ud65c\ub3d9 \ub0b4\uc5ed \uc870\ud68c", "description": "\ud604\uc7ac \ub85c\uadf8\uc778\ub41c \uad00\ub9ac\uc790\uc758 \ud65c\ub3d9 \ub0b4\uc5ed\uc744 \ud398\uc774\uc9d5 \uc870\ud68c\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivityListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ActivityListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ActivityListRequestDto" } } } }, "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ActivityListResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ActivityListResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ActivityListResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" } } } }, "/v1/out/health": { "post": { "tags": [ "Public" ], "summary": "\uc11c\ubc84 \uc0c1\ud0dc \ud655\uc778", "description": "MariaDB, Redis, RabbitMQ \uc5f0\uacb0 \uc0c1\ud0dc\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/send": { "post": { "tags": [ "Push" ], "summary": "\ub2e8\uac74 \ubc1c\uc1a1", "description": "\ud2b9\uc815 \ub514\ubc14\uc774\uc2a4\uc5d0 \ud478\uc2dc \uba54\uc2dc\uc9c0\ub97c \uc989\uc2dc \ubc1c\uc1a1\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushSendRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushSendRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushSendRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/send/tag": { "post": { "tags": [ "Push" ], "summary": "\ud0dc\uadf8 \ubc1c\uc1a1", "description": "\ud0dc\uadf8 \uc870\uac74\uc5d0 \ud574\ub2f9\ud558\ub294 \ub514\ubc14\uc774\uc2a4\uc5d0 \ud478\uc2dc \uba54\uc2dc\uc9c0\ub97c \ubc1c\uc1a1\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushSendTagRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushSendTagRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushSendTagRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/schedule": { "post": { "tags": [ "Push" ], "summary": "\uc608\uc57d \ubc1c\uc1a1", "description": "\uc9c0\uc815 \uc2dc\uac04\uc5d0 \ud478\uc2dc \uba54\uc2dc\uc9c0 \ubc1c\uc1a1\uc744 \uc608\uc57d\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushScheduleRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushScheduleRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushScheduleRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/schedule/cancel": { "post": { "tags": [ "Push" ], "summary": "\uc608\uc57d \ucde8\uc18c", "description": "\uc608\uc57d\ub41c \ubc1c\uc1a1\uc744 \ucde8\uc18c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushScheduleCancelRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushScheduleCancelRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushScheduleCancelRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/log": { "post": { "tags": [ "Push" ], "summary": "\ubc1c\uc1a1 \ub85c\uadf8 \uc870\ud68c", "description": "\ud478\uc2dc \ubc1c\uc1a1 \uc774\ub825\uc744 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushLogRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushLogRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushLogRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/log/export": { "post": { "tags": [ "Push" ], "summary": "\ubc1c\uc1a1 \ub85c\uadf8 \ub0b4\ubcf4\ub0b4\uae30", "description": "\ubc1c\uc1a1 \ub85c\uadf8\ub97c CSV \ud30c\uc77c\ub85c \ub2e4\uc6b4\ub85c\ub4dc\ud569\ub2c8\ub2e4. \ucd5c\ub300 30\uc77c, 100,000\uac74.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushLogExportRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PushLogExportRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/PushLogExportRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/send/bulk": { "post": { "tags": [ "Push" ], "summary": "\ub300\uc6a9\ub7c9 \ubc1c\uc1a1", "description": "CSV \ud30c\uc77c\ub85c \ub300\ub7c9 \ud478\uc2dc \ubc1c\uc1a1\uc744 \uc694\uccad\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" }, "message_code": { "type": "string" } } }, "encoding": { "file": { "style": "form" }, "message_code": { "style": "form" } } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/job/status": { "post": { "tags": [ "Push" ], "summary": "\ubc1c\uc1a1 \uc0c1\ud0dc \uc870\ud68c", "description": "\ub300\uc6a9\ub7c9/\ud0dc\uadf8 \ubc1c\uc1a1 \uc791\uc5c5\uc758 \uc0c1\ud0dc\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/JobStatusRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/JobStatusRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/push/job/cancel": { "post": { "tags": [ "Push" ], "summary": "\ubc1c\uc1a1 \ucde8\uc18c", "description": "\ub300\uae30 \uc911\uc774\uac70\ub098 \ucc98\ub9ac \uc911\uc778 \uc791\uc5c5\uc744 \ucde8\uc18c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobCancelRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/JobCancelRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/JobCancelRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/service/name/check": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4\uba85 \uc911\ubcf5 \uccb4\ud06c", "description": "\uc11c\ube44\uc2a4 \ub4f1\ub85d \uc804 \uc11c\ube44\uc2a4\uba85 \uc0ac\uc6a9 \uac00\ub2a5 \uc5ec\ubd80\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckRequestDto" } } } }, "responses": { "200": { "description": "\uc911\ubcf5 \uccb4\ud06c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceNameCheckResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" } } } }, "/v1/in/service/register": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \ud1b5\ud569 \ub4f1\ub85d", "description": "\uc11c\ube44\uc2a4 \uc0dd\uc131\uacfc \ud50c\ub7ab\ud3fc \uc790\uaca9\uc99d\uba85 \ub4f1\ub85d\uc744 \ub2e8\uc77c \ud638\ucd9c\ub85c \uc644\ub8cc\ud569\ub2c8\ub2e4. FCM/APNs \uc790\uaca9\uc99d\uba85\uc740 \uc120\ud0dd\uc0ac\ud56d\uc774\uba70, \uc81c\uacf5 \uc2dc \uac80\uc99d \uc2e4\ud328\ud558\uba74 \uc804\uccb4 \ub864\ubc31\ub429\ub2c8\ub2e4. APNs\ub294 AuthType(p8/p12)\uc5d0 \ub530\ub77c \ud544\uc218 \ud544\ub4dc\uac00 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterServiceRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RegisterServiceRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/RegisterServiceRequestDto" } } } }, "responses": { "200": { "description": "\ub4f1\ub85d \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/RegisterServiceResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/RegisterServiceResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RegisterServiceResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" }, "409": { "description": "\uc11c\ube44\uc2a4\uba85 \uc911\ubcf5" } } } }, "/v1/in/service/create": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \ub4f1\ub85d", "description": "\uc0c8\ub85c\uc6b4 \uc11c\ube44\uc2a4\ub97c \ub4f1\ub85d\ud569\ub2c8\ub2e4. ServiceCode\uc640 API Key\uac00 \uc790\ub3d9 \uc0dd\uc131\ub418\uba70, API Key\ub294 \uc751\ub2f5\uc5d0\uc11c 1\ud68c\ub9cc \ud45c\uc2dc\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateServiceRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateServiceRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateServiceRequestDto" } } } }, "responses": { "200": { "description": "\ub4f1\ub85d \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/CreateServiceResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateServiceResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateServiceResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "409": { "description": "\uc774\ubbf8 \uc874\uc7ac\ud558\ub294 \uc11c\ube44\uc2a4\uba85" } } } }, "/v1/in/service/update": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \uc218\uc815", "description": "\uae30\uc874 \uc11c\ube44\uc2a4\uc758 \uc815\ubcf4\ub97c \uc218\uc815\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4\uba85, \uc124\uba85, \uc6f9\ud6c5 URL, \ud0dc\uadf8, \uc0c1\ud0dc(Status)\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Status \ud544\ub4dc(0=Active, 1=Suspended)\ub97c \ud568\uaed8 \uc804\ub2ec\ud558\uba74 \uc0c1\ud0dc\ub3c4 \uc6d0\uc790\uc801\uc73c\ub85c \ubcc0\uacbd\ub429\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateServiceRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateServiceRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateServiceRequestDto" } } } }, "responses": { "200": { "description": "\uc218\uc815 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } } } }, "400": { "description": "\ubcc0\uacbd\ub41c \ub0b4\uc6a9 \uc5c6\uc74c" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" }, "409": { "description": "\uc774\ubbf8 \uc874\uc7ac\ud558\ub294 \uc11c\ube44\uc2a4\uba85" } } } }, "/v1/in/service/delete": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \uc0ad\uc81c", "description": "\uc11c\ube44\uc2a4\ub97c Soft Delete \ucc98\ub9ac\ud569\ub2c8\ub2e4. IsDeleted=true, \uc0c1\ud0dc\ub97c Suspended\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteServiceRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeleteServiceRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeleteServiceRequestDto" } } } }, "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" }, "409": { "description": "\uc774\ubbf8 \uc0ad\uc81c\ub41c \uc11c\ube44\uc2a4" } } } }, "/v1/in/service/list": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \ubaa9\ub85d \uc870\ud68c", "description": "\ub4f1\ub85d\ub41c \uc11c\ube44\uc2a4 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. \ud398\uc774\uc9d5, \uac80\uc0c9, \uc0c1\ud0dc \ud544\ud130\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uac01 \ud56d\ubaa9\uc5d0 platforms \ud544\ub4dc\ub85c Android/iOS \uc790\uaca9\uc99d\uba85 \uc0c1\ud0dc(credentialStatus: ok/warn/error)\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ServiceListRequestDto" } } } }, "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceListResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceListResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceListResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \uc0c1\uc138 \uc870\ud68c", "description": "\ud2b9\uc815 \uc11c\ube44\uc2a4\uc758 \uc0c1\uc138 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. API Key\ub294 \ub9c8\uc2a4\ud0b9(\uc55e 8\uc790+********)\ub418\uc5b4 \ubc18\ud658\ub418\uba70, \uc804\uccb4 \ud0a4 \uc870\ud68c\ub294 apikey/view \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. apnsAuthType(p8/p12)\uacfc platforms \ud544\ub4dc\ub85c \uac01 \ud50c\ub7ab\ud3fc\uc758 \uc790\uaca9\uc99d\uba85 \uc0c1\ud0dc(credentialStatus: ok/warn/error), \ub9cc\ub8cc\uc77c(expiresAt) \uc815\ubcf4\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/status": { "post": { "tags": [ "Service" ], "summary": "\uc11c\ube44\uc2a4 \uc0c1\ud0dc \ubcc0\uacbd", "description": "\uc11c\ube44\uc2a4\uc758 \uc0c1\ud0dc\ub97c \ubcc0\uacbd\ud569\ub2c8\ub2e4. (Active: 0, Suspended: 1)", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangeServiceStatusRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChangeServiceStatusRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ChangeServiceStatusRequestDto" } } } }, "responses": { "200": { "description": "\uc0c1\ud0dc \ubcc0\uacbd \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad \ub610\ub294 \uc774\ubbf8 \ud574\ub2f9 \uc0c1\ud0dc" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/apikey/view": { "post": { "tags": [ "Service" ], "summary": "API Key \uc804\uccb4 \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc758 API Key \uc804\uccb4 \uac12\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. \uc0c1\uc138 \uc870\ud68c \uc2dc \ub9c8\uc2a4\ud0b9\ub41c \ud0a4 \ub300\uc2e0 \uc804\uccb4 \ud0a4\ub97c \ud655\uc778\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud0a4 \ud68c\uc804(\uc7ac\ubc1c\uae09) \uc5c6\uc774 \ud604\uc7ac \ud0a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/apikey/refresh": { "post": { "tags": [ "Service" ], "summary": "API Key \uc7ac\ubc1c\uae09", "description": "\uc11c\ube44\uc2a4\uc758 API Key\ub97c \uc7ac\ubc1c\uae09\ud569\ub2c8\ub2e4. \uae30\uc874 \ud0a4\ub294 \uc989\uc2dc \ubb34\ud6a8\ud654\ub418\uba70, \uc0c8 \ud0a4\ub294 1\ud68c\ub9cc \ud45c\uc2dc\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc7ac\ubc1c\uae09 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/apns": { "post": { "tags": [ "Service" ], "summary": "APNs \ud0a4 \ub4f1\ub85d", "description": "APNs \ud478\uc2dc \ubc1c\uc1a1\uc744 \uc704\ud55c \uc778\uc99d \uc815\ubcf4\ub97c \ub4f1\ub85d\ud569\ub2c8\ub2e4. AuthType=p8: Key ID(10\uc790\ub9ac), Team ID(10\uc790\ub9ac), Private Key(.p8) \ud544\uc218. AuthType=p12: CertificateBase64(Base64 \uc778\ucf54\ub529\ub41c .p12), CertPassword \ud544\uc218. \ud0c0\uc785 \uc804\ud658 \uc2dc \uc774\uc804 \ud0c0\uc785 \ud544\ub4dc\ub294 \uc790\ub3d9 \ucd08\uae30\ud654\ub429\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApnsCredentialsRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApnsCredentialsRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ApnsCredentialsRequestDto" } } } }, "responses": { "200": { "description": "\ub4f1\ub85d \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad (\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \ud0a4/\uc778\uc99d\uc11c \ud615\uc2dd)" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/fcm": { "post": { "tags": [ "Service" ], "summary": "FCM \ud0a4 \ub4f1\ub85d", "description": "FCM \ud478\uc2dc \ubc1c\uc1a1\uc744 \uc704\ud55c Service Account JSON\uc744 \ub4f1\ub85d\ud569\ub2c8\ub2e4. Firebase Console\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud55c service-account.json \ub0b4\uc6a9\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FcmCredentialsRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FcmCredentialsRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FcmCredentialsRequestDto" } } } }, "responses": { "200": { "description": "\ub4f1\ub85d \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad (\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 JSON \ud615\uc2dd)" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/apns/delete": { "post": { "tags": [ "Service" ], "summary": "APNs \uc790\uaca9\uc99d\uba85 \uc0ad\uc81c", "description": "\uc11c\ube44\uc2a4\uc5d0 \ub4f1\ub85d\ub41c APNs \uc790\uaca9\uc99d\uba85(BundleId, KeyId, TeamId, PrivateKey, Certificate \ub4f1)\uc744 \ubaa8\ub450 \uc0ad\uc81c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4 \ub610\ub294 \uc790\uaca9\uc99d\uba85\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/fcm/delete": { "post": { "tags": [ "Service" ], "summary": "FCM \uc790\uaca9\uc99d\uba85 \uc0ad\uc81c", "description": "\uc11c\ube44\uc2a4\uc5d0 \ub4f1\ub85d\ub41c FCM Service Account JSON \uc790\uaca9\uc99d\uba85\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4 \ub610\ub294 \uc790\uaca9\uc99d\uba85\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/credentials": { "post": { "tags": [ "Service" ], "summary": "\ud478\uc2dc \ud0a4 \uc815\ubcf4 \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc5d0 \ub4f1\ub85d\ub41c APNs/FCM \ud0a4\uc758 \uba54\ud0c0 \uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. \ubbfc\uac10 \uc815\ubcf4(Private Key)\ub294 \ubc18\ud658\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac01 \ud50c\ub7ab\ud3fc\ubcc4 credentialStatus(ok/warn/error/none)\uc640 statusReason \ud544\ub4dc\ub85c \uc790\uaca9\uc99d\uba85 \uc0c1\ud0dc \uc9c4\ub2e8 \uacb0\uacfc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/CredentialsResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CredentialsResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CredentialsResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/tags/list": { "post": { "tags": [ "Service" ], "summary": "\ud0dc\uadf8 \ubaa9\ub85d \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc5d0 \ub4f1\ub85d\ub41c \ud0dc\uadf8 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ServiceTagsRequestDto" } } } }, "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/tags/update": { "post": { "tags": [ "Service" ], "summary": "\ud0dc\uadf8 \uc218\uc815", "description": "\uc11c\ube44\uc2a4\uc758 \ud0dc\uadf8 \ubaa9\ub85d\uc744 \uc218\uc815\ud569\ub2c8\ub2e4. \ucd5c\ub300 10\uac1c\uae4c\uc9c0 \ub4f1\ub85d \uac00\ub2a5\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateServiceTagsRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateServiceTagsRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateServiceTagsRequestDto" } } } }, "responses": { "200": { "description": "\uc218\uc815 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceTagsResponseDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad \ub610\ub294 \ubcc0\uacbd \uc5c6\uc74c" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/webhook/config": { "post": { "tags": [ "Service" ], "summary": "\uc6f9\ud6c5 \uc124\uc815", "description": "\uc11c\ube44\uc2a4\uc758 \uc6f9\ud6c5 URL\uacfc \uad6c\ub3c5 \uc774\ubca4\ud2b8 \ud0c0\uc785\uc744 \uc124\uc815\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookConfigRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WebhookConfigRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/WebhookConfigRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/service/webhook/info": { "post": { "tags": [ "Service" ], "summary": "\uc6f9\ud6c5 \uc124\uc815 \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc758 \ud604\uc7ac \uc6f9\ud6c5 \uc124\uc815\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookInfoRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WebhookInfoRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/WebhookInfoRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/service/{serviceCode}/ip/list": { "post": { "tags": [ "Service" ], "summary": "IP \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8 \uc870\ud68c", "description": "\uc11c\ube44\uc2a4\uc5d0 \ub4f1\ub85d\ub41c IP \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "\uc870\ud68c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/IpListResponseDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/IpListResponseDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/IpListResponseDtoApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/service/{serviceCode}/ip/add": { "post": { "tags": [ "Service" ], "summary": "IP \ucd94\uac00", "description": "\uc11c\ube44\uc2a4\uc758 IP \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8\uc5d0 \uc0c8 IP\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. IPv4 \ud615\uc2dd\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddIpRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddIpRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddIpRequestDto" } } } }, "responses": { "200": { "description": "\ucd94\uac00 \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ServiceIpDtoApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ServiceIpDtoApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ServiceIpDtoApiResponse" } } } }, "400": { "description": "\uc798\ubabb\ub41c \uc694\uccad (\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP \ud615\uc2dd)" }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" }, "409": { "description": "\uc774\ubbf8 \ub4f1\ub85d\ub41c IP" } } } }, "/v1/in/service/{serviceCode}/ip/delete": { "post": { "tags": [ "Service" ], "summary": "IP \uc0ad\uc81c", "description": "\uc11c\ube44\uc2a4\uc758 IP \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8\uc5d0\uc11c IP\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "serviceCode", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteIpRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeleteIpRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeleteIpRequestDto" } } } }, "responses": { "200": { "description": "\uc0ad\uc81c \uc131\uacf5", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "\uc778\uc99d\ub418\uc9c0 \uc54a\uc740 \uc694\uccad" }, "403": { "description": "\uad8c\ud55c \uc5c6\uc74c" }, "404": { "description": "\uc11c\ube44\uc2a4 \ub610\ub294 IP\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c" } } } }, "/v1/in/stats/daily": { "post": { "tags": [ "Stats" ], "summary": "\uc77c\ubcc4 \ud1b5\uacc4 \uc870\ud68c", "description": "\uae30\uac04\ubcc4 \uc77c\ubcc4 \ubc1c\uc1a1/\uc131\uacf5/\uc2e4\ud328/\uc5f4\ub78c \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DailyStatRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DailyStatRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DailyStatRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/summary": { "post": { "tags": [ "Stats" ], "summary": "\uc694\uc57d \ud1b5\uacc4 \uc870\ud68c", "description": "\ub300\uc2dc\ubcf4\ub4dc \uc694\uc57d \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/message": { "post": { "tags": [ "Stats" ], "summary": "\uba54\uc2dc\uc9c0\ubcc4 \ud1b5\uacc4 \uc870\ud68c", "description": "\ud2b9\uc815 \uba54\uc2dc\uc9c0\uc758 \ubc1c\uc1a1 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageStatRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageStatRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageStatRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/hourly": { "post": { "tags": [ "Stats" ], "summary": "\uc2dc\uac04\ub300\ubcc4 \ud1b5\uacc4 \uc870\ud68c", "description": "\uc2dc\uac04\ub300\ubcc4 \ubc1c\uc1a1 \ucd94\uc774\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HourlyStatRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HourlyStatRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/HourlyStatRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/device": { "post": { "tags": [ "Stats" ], "summary": "\ub514\ubc14\uc774\uc2a4 \ud1b5\uacc4 \uc870\ud68c", "description": "\ud50c\ub7ab\ud3fc/\ubaa8\ub378\ubcc4 \ub514\ubc14\uc774\uc2a4 \ubd84\ud3ec\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/export": { "post": { "tags": [ "Stats" ], "summary": "\ud1b5\uacc4 \ub9ac\ud3ec\ud2b8 \ub2e4\uc6b4\ub85c\ub4dc", "description": "\uc77c\ubcc4/\uc2dc\uac04\ub300\ubcc4/\ud50c\ub7ab\ud3fc\ubcc4 \ud1b5\uacc4\ub97c \uc5d1\uc140(.xlsx) \ud30c\uc77c\ub85c \ub2e4\uc6b4\ub85c\ub4dc\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatsExportRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/StatsExportRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/StatsExportRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/failure": { "post": { "tags": [ "Stats" ], "summary": "\uc2e4\ud328\uc6d0\uc778 \ud1b5\uacc4 \uc870\ud68c", "description": "\uc2e4\ud328 \uc6d0\uc778\ubcc4 \uc9d1\uacc4\ub97c \uc0c1\uc704 N\uac1c\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FailureStatRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FailureStatRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/FailureStatRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/dashboard": { "post": { "tags": [ "Stats" ], "summary": "\ub300\uc2dc\ubcf4\ub4dc \ud1b5\ud569 \uc870\ud68c", "description": "KPI, \uc77c\ubcc4 \ucd94\uc774, \uc2dc\uac04\ub300\ubcc4 \ubd84\ud3ec, \ud50c\ub7ab\ud3fc \ube44\uc728, \uc0c1\uc704 \uba54\uc2dc\uc9c0\ub97c \ud55c\ubc88\uc5d0 \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DashboardRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DashboardRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DashboardRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/history/list": { "post": { "tags": [ "Stats" ], "summary": "\uc774\ub825 \ubaa9\ub85d \uc870\ud68c", "description": "\uba54\uc2dc\uc9c0\ubcc4 \ubc1c\uc1a1 \uc774\ub825 \ubaa9\ub85d\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4. keyword/status/date \ud544\ud130\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc774\ub825\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HistoryListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HistoryListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/HistoryListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/history/detail": { "post": { "tags": [ "Stats" ], "summary": "\uc774\ub825 \uc0c1\uc138 \uc870\ud68c", "description": "\ud2b9\uc815 \uba54\uc2dc\uc9c0\uc758 \ubc1c\uc1a1 \uc774\ub825 \uc0c1\uc138(\uae30\ubcf8\uc815\ubcf4+\uc9d1\uacc4+\uc2e4\ud328\uc0ac\uc720+\ubcf8\ubb38)\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4\uc5d0\uc11c \uac80\uc0c9\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HistoryDetailRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HistoryDetailRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/HistoryDetailRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/history/export": { "post": { "tags": [ "Stats" ], "summary": "\uc774\ub825 \uc5d1\uc140 \ub0b4\ubcf4\ub0b4\uae30", "description": "\uc774\ub825 \ubaa9\ub85d\uacfc \ub3d9\uc77c\ud55c \ud544\ud130 \uae30\uc900\uc73c\ub85c \ubc1c\uc1a1 \uc774\ub825\uc744 \uc5d1\uc140(.xlsx)\ub85c \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc774\ub825\uc744 \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HistoryExportRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HistoryExportRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/HistoryExportRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/stats/send-log": { "post": { "tags": [ "Stats" ], "summary": "\ubc1c\uc1a1 \uc0c1\uc138 \ub85c\uadf8 \uc870\ud68c", "description": "\ud2b9\uc815 \uba54\uc2dc\uc9c0\uc758 \uac1c\ubcc4 \ub514\ubc14\uc774\uc2a4\ubcc4 \ubc1c\uc1a1 \uc0c1\uc138 \ub85c\uadf8\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4. X-Service-Code \ud5e4\ub354 \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \ud1b5\uacc4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.", "parameters": [ { "name": "X-Service-Code", "in": "header", "description": "\uc11c\ube44\uc2a4 \uc2dd\ubcc4 \ucf54\ub4dc (\uad00\ub9ac\uc790: \ubbf8\uc9c0\uc815 \uc2dc \uc804\uccb4 \uc11c\ube44\uc2a4 \uc870\ud68c)", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendLogDetailRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SendLogDetailRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/SendLogDetailRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/tag/list": { "post": { "tags": [ "Tag" ], "summary": "\ud0dc\uadf8 \ubaa9\ub85d \uc870\ud68c", "description": "\ud0dc\uadf8 \ubaa9\ub85d\uc744 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \uc870\ud68c\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4 \ud544\ud130, \ud0a4\uc6cc\ub4dc \uac80\uc0c9, deviceCount\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagListRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TagListRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/TagListRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/tag/create": { "post": { "tags": [ "Tag" ], "summary": "\ud0dc\uadf8 \uc0dd\uc131", "description": "\uc0c8 \ud0dc\uadf8\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4\ub2f9 \ucd5c\ub300 10\uac1c, \ub3d9\uc77c \uc11c\ube44\uc2a4 \ub0b4 \ud0dc\uadf8\uba85 \uc911\ubcf5 \ubd88\uac00.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTagRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateTagRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateTagRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/tag/update": { "post": { "tags": [ "Tag" ], "summary": "\ud0dc\uadf8 \uc218\uc815", "description": "\ud0dc\uadf8 \uc124\uba85\uc744 \uc218\uc815\ud569\ub2c8\ub2e4. \ud0dc\uadf8\uba85(Name)\uc740 \ubcc0\uacbd \ubd88\uac00.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTagRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateTagRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateTagRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/tag/delete": { "post": { "tags": [ "Tag" ], "summary": "\ud0dc\uadf8 \uc0ad\uc81c", "description": "\ud0dc\uadf8\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteTagRequestDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeleteTagRequestDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeleteTagRequestDto" } } } }, "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/terms": { "post": { "tags": [ "Terms" ], "summary": "\uc774\uc6a9\uc57d\uad00", "description": "\uc774\uc6a9\uc57d\uad00 URL\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } }, "/v1/in/public/privacy": { "post": { "tags": [ "Terms" ], "summary": "\uac1c\uc778\uc815\ubcf4\ucc98\ub9ac\ubc29\uce68", "description": "\uac1c\uc778\uc815\ubcf4\ucc98\ub9ac\ubc29\uce68 URL\uc744 \uc870\ud68c\ud569\ub2c8\ub2e4.", "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "AccountListRequestDto": { "type": "object", "properties": { "page": { "maximum": 2147483647, "minimum": 1, "type": "integer", "format": "int32" }, "pageSize": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32" }, "searchKeyword": { "type": "string", "nullable": true }, "role": { "type": "integer", "format": "int32", "nullable": true } }, "additionalProperties": false }, "AccountListResponseDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/AccountResponseDto" }, "nullable": true }, "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "AccountListResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/AccountListResponseDto" } }, "additionalProperties": false }, "AccountResponseDto": { "type": "object", "properties": { "adminCode": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "phone": { "type": "string", "nullable": true }, "role": { "type": "string", "nullable": true }, "emailVerified": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "lastLoginAt": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "AccountResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/AccountResponseDto" } }, "additionalProperties": false }, "ActivityItemDto": { "type": "object", "properties": { "activity_type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "ip_address": { "type": "string", "nullable": true }, "occurred_at": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "ActivityListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "from": { "type": "string", "format": "date-time", "nullable": true }, "to": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "ActivityListResponseDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ActivityItemDto" }, "nullable": true }, "pagination": { "$ref": "#/components/schemas/PaginationDto" } }, "additionalProperties": false }, "ActivityListResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ActivityListResponseDto" } }, "additionalProperties": false }, "AddIpRequestDto": { "required": [ "ipAddress" ], "type": "object", "properties": { "ipAddress": { "minLength": 1, "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", "type": "string" } }, "additionalProperties": false }, "AdminInfoDto": { "type": "object", "properties": { "admin_code": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "role": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ApiKeyRefreshResponseDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "apiKey": { "type": "string", "nullable": true }, "apiKeyCreatedAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "ApiKeyRefreshResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ApiKeyRefreshResponseDto" } }, "additionalProperties": false }, "ApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ApnsCredentialDto": { "required": [ "authType", "bundleId" ], "type": "object", "properties": { "bundleId": { "minLength": 1, "type": "string" }, "authType": { "minLength": 1, "pattern": "^(p8|p12)$", "type": "string" }, "keyId": { "maxLength": 10, "minLength": 10, "type": "string", "nullable": true }, "teamId": { "maxLength": 10, "minLength": 10, "type": "string", "nullable": true }, "privateKey": { "type": "string", "nullable": true }, "certificateBase64": { "type": "string", "nullable": true }, "certPassword": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ApnsCredentialsInfoDto": { "type": "object", "properties": { "bundleId": { "type": "string", "nullable": true }, "authType": { "type": "string", "nullable": true }, "keyId": { "type": "string", "nullable": true }, "teamId": { "type": "string", "nullable": true }, "hasPrivateKey": { "type": "boolean" }, "hasCertificate": { "type": "boolean" }, "certExpiresAt": { "type": "string", "format": "date-time", "nullable": true }, "credentialStatus": { "type": "string", "nullable": true }, "statusReason": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ApnsCredentialsRequestDto": { "required": [ "authType", "bundleId" ], "type": "object", "properties": { "bundleId": { "minLength": 1, "type": "string" }, "authType": { "minLength": 1, "pattern": "^(p8|p12)$", "type": "string" }, "keyId": { "maxLength": 10, "minLength": 10, "type": "string", "nullable": true }, "teamId": { "maxLength": 10, "minLength": 10, "type": "string", "nullable": true }, "privateKey": { "type": "string", "nullable": true }, "certificateBase64": { "type": "string", "nullable": true }, "certPassword": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AppVersionRequestDto": { "type": "object", "properties": { "platform": { "type": "string", "nullable": true }, "app_version": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BannerListRequestDto": { "type": "object", "properties": { "position": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ChangePasswordRequestDto": { "required": [ "currentPassword", "newPassword" ], "type": "object", "properties": { "currentPassword": { "minLength": 1, "type": "string" }, "newPassword": { "maxLength": 64, "minLength": 8, "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]).{8,}$", "type": "string" } }, "additionalProperties": false }, "ChangePasswordResponseDto": { "type": "object", "properties": { "re_login_required": { "type": "boolean" } }, "additionalProperties": false }, "ChangePasswordResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ChangePasswordResponseDto" } }, "additionalProperties": false }, "ChangeServiceStatusRequestDto": { "required": [ "status" ], "type": "object", "properties": { "status": { "maximum": 1, "minimum": 0, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "CreateAccountRequestDto": { "required": [ "email", "name", "password", "role" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" }, "password": { "minLength": 8, "type": "string" }, "name": { "minLength": 1, "type": "string" }, "phone": { "type": "string", "format": "tel", "nullable": true }, "role": { "maximum": 2, "minimum": 1, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "CreateServiceRequestDto": { "required": [ "serviceName" ], "type": "object", "properties": { "serviceName": { "maxLength": 100, "minLength": 2, "type": "string" }, "description": { "maxLength": 500, "minLength": 0, "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateServiceResponseDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "apiKey": { "type": "string", "nullable": true }, "apiKeyCreatedAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "CreateServiceResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/CreateServiceResponseDto" } }, "additionalProperties": false }, "CreateTagRequestDto": { "required": [ "service_id", "tag_name" ], "type": "object", "properties": { "service_id": { "type": "integer", "format": "int64" }, "tag_name": { "maxLength": 50, "minLength": 1, "type": "string" }, "description": { "maxLength": 200, "type": "string", "nullable": true } }, "additionalProperties": false }, "CredentialsResponseDto": { "type": "object", "properties": { "apns": { "$ref": "#/components/schemas/ApnsCredentialsInfoDto" }, "fcm": { "$ref": "#/components/schemas/FcmCredentialsInfoDto" } }, "additionalProperties": false }, "CredentialsResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/CredentialsResponseDto" } }, "additionalProperties": false }, "CsvTemplateRequestDto": { "required": [ "message_code" ], "type": "object", "properties": { "message_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "DailyStatRequestDto": { "type": "object", "properties": { "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DashboardRequestDto": { "type": "object", "properties": { "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DeleteIpRequestDto": { "required": [ "ipId" ], "type": "object", "properties": { "ipId": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "DeleteServiceRequestDto": { "required": [ "service_code" ], "type": "object", "properties": { "service_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "DeleteTagRequestDto": { "required": [ "tag_code" ], "type": "object", "properties": { "tag_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "DeviceAgreeRequestDto": { "required": [ "device_id", "marketing_agreed", "push_agreed" ], "type": "object", "properties": { "device_id": { "type": "integer", "format": "int64" }, "push_agreed": { "type": "boolean" }, "marketing_agreed": { "type": "boolean" } }, "additionalProperties": false }, "DeviceDeleteRequestDto": { "required": [ "device_id" ], "type": "object", "properties": { "device_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "DeviceExportRequestDto": { "type": "object", "properties": { "platform": { "type": "string", "nullable": true }, "push_agreed": { "type": "boolean", "nullable": true }, "tags": { "type": "array", "items": { "type": "string" }, "nullable": true }, "is_active": { "type": "boolean", "nullable": true }, "keyword": { "type": "string", "nullable": true }, "marketing_agreed": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "DeviceInfoRequestDto": { "required": [ "device_id" ], "type": "object", "properties": { "device_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "DeviceListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "platform": { "type": "string", "nullable": true }, "push_agreed": { "type": "boolean", "nullable": true }, "tags": { "type": "array", "items": { "type": "string" }, "nullable": true }, "is_active": { "type": "boolean", "nullable": true }, "keyword": { "type": "string", "nullable": true }, "marketing_agreed": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "DeviceRegisterRequestDto": { "required": [ "device_token", "platform" ], "type": "object", "properties": { "device_token": { "minLength": 1, "type": "string" }, "platform": { "minLength": 1, "type": "string" }, "os_version": { "type": "string", "nullable": true }, "app_version": { "type": "string", "nullable": true }, "model": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DeviceTagsRequestDto": { "required": [ "device_id", "tags" ], "type": "object", "properties": { "device_id": { "type": "integer", "format": "int64" }, "tags": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "DeviceUpdateRequestDto": { "required": [ "device_id" ], "type": "object", "properties": { "device_id": { "type": "integer", "format": "int64" }, "device_token": { "type": "string", "nullable": true }, "os_version": { "type": "string", "nullable": true }, "app_version": { "type": "string", "nullable": true } }, "additionalProperties": false }, "EmailCheckRequestDto": { "required": [ "email" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" } }, "additionalProperties": false }, "EmailCheckResponseDto": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "is_available": { "type": "boolean" } }, "additionalProperties": false }, "EmailCheckResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/EmailCheckResponseDto" } }, "additionalProperties": false }, "EmailResendRequestDto": { "required": [ "verify_session_id" ], "type": "object", "properties": { "verify_session_id": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "EmailResendResponseDto": { "type": "object", "properties": { "resent": { "type": "boolean" }, "cooldown_seconds": { "type": "integer", "format": "int32" }, "expires_in_seconds": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "EmailResendResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/EmailResendResponseDto" } }, "additionalProperties": false }, "EmailVerifyRequestDto": { "required": [ "code" ], "type": "object", "properties": { "verify_session_id": { "type": "string", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "EmailVerifyResponseDto": { "type": "object", "properties": { "verified": { "type": "boolean" }, "next_action": { "type": "string", "nullable": true } }, "additionalProperties": false }, "EmailVerifyResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/EmailVerifyResponseDto" } }, "additionalProperties": false }, "FailureStatRequestDto": { "required": [ "end_date", "start_date" ], "type": "object", "properties": { "start_date": { "minLength": 1, "type": "string" }, "end_date": { "minLength": 1, "type": "string" }, "limit": { "maximum": 20, "minimum": 1, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "FaqListRequestDto": { "type": "object", "properties": { "category": { "type": "string", "nullable": true } }, "additionalProperties": false }, "FcmCredentialDto": { "required": [ "serviceAccountJson" ], "type": "object", "properties": { "serviceAccountJson": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "FcmCredentialsInfoDto": { "type": "object", "properties": { "projectId": { "type": "string", "nullable": true }, "hasCredentials": { "type": "boolean" }, "credentialStatus": { "type": "string", "nullable": true }, "statusReason": { "type": "string", "nullable": true } }, "additionalProperties": false }, "FcmCredentialsRequestDto": { "required": [ "serviceAccountJson" ], "type": "object", "properties": { "serviceAccountJson": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "FileDeleteRequestDto": { "required": [ "file_id" ], "type": "object", "properties": { "file_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "FileInfoRequestDto": { "required": [ "file_id" ], "type": "object", "properties": { "file_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "FileListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "file_type": { "type": "string", "nullable": true } }, "additionalProperties": false }, "HistoryDetailRequestDto": { "required": [ "message_code" ], "type": "object", "properties": { "message_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "HistoryExportRequestDto": { "type": "object", "properties": { "keyword": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "HistoryListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "keyword": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "HourlyStatRequestDto": { "type": "object", "properties": { "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "IpListResponseDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceIpDto" }, "nullable": true }, "totalCount": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "IpListResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/IpListResponseDto" } }, "additionalProperties": false }, "JobCancelRequestDto": { "type": "object", "properties": { "job_id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "JobStatusRequestDto": { "type": "object", "properties": { "job_id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LoginRequestDto": { "required": [ "email", "password" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" }, "password": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "LoginResponseDto": { "type": "object", "properties": { "access_token": { "type": "string", "nullable": true }, "refresh_token": { "type": "string", "nullable": true }, "expires_in": { "type": "integer", "format": "int32" }, "next_action": { "type": "string", "nullable": true }, "email_verified": { "type": "boolean" }, "verify_session_id": { "type": "string", "nullable": true }, "email_sent": { "type": "boolean", "nullable": true }, "must_change_password": { "type": "boolean", "nullable": true }, "admin": { "$ref": "#/components/schemas/AdminInfoDto" } }, "additionalProperties": false }, "LoginResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/LoginResponseDto" } }, "additionalProperties": false }, "LogoutResponseDto": { "type": "object", "properties": { "logged_out": { "type": "boolean" }, "redirect_to": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LogoutResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/LogoutResponseDto" } }, "additionalProperties": false }, "MessageDeleteRequestDto": { "type": "object", "properties": { "message_code": { "type": "string", "nullable": true } }, "additionalProperties": false }, "MessageInfoRequestDto": { "type": "object", "properties": { "message_code": { "type": "string", "nullable": true } }, "additionalProperties": false }, "MessageListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "keyword": { "type": "string", "nullable": true }, "is_active": { "type": "boolean", "nullable": true }, "service_code": { "type": "string", "nullable": true }, "send_status": { "type": "string", "nullable": true } }, "additionalProperties": false }, "MessagePreviewRequestDto": { "type": "object", "properties": { "message_code": { "type": "string", "nullable": true }, "variables": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "MessageSaveRequestDto": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "body": { "type": "string", "nullable": true }, "image_url": { "type": "string", "nullable": true }, "link_url": { "type": "string", "nullable": true }, "link_type": { "type": "string", "nullable": true }, "data": { "nullable": true } }, "additionalProperties": false }, "MessageStatRequestDto": { "type": "object", "properties": { "message_code": { "type": "string", "nullable": true }, "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "MessageValidateRequestDto": { "required": [ "body", "title" ], "type": "object", "properties": { "title": { "minLength": 1, "type": "string" }, "body": { "minLength": 1, "type": "string" }, "image_url": { "type": "string", "nullable": true }, "link_url": { "type": "string", "nullable": true }, "link_type": { "type": "string", "nullable": true }, "data": { "nullable": true } }, "additionalProperties": false }, "NoticeInfoRequestDto": { "required": [ "notice_id" ], "type": "object", "properties": { "notice_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "NoticeListRequestDto": { "type": "object", "properties": { "page": { "maximum": 2147483647, "minimum": 1, "type": "integer", "format": "int32" }, "size": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "NotificationListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "category": { "type": "string", "nullable": true }, "from": { "type": "string", "format": "date-time", "nullable": true }, "to": { "type": "string", "format": "date-time", "nullable": true }, "is_read": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "NotificationReadRequestDto": { "required": [ "notification_id" ], "type": "object", "properties": { "notification_id": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "NotificationSummaryRequestDto": { "type": "object", "properties": { "limit": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "OperatorCreateRequestDto": { "required": [ "email", "name", "role" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" }, "name": { "minLength": 1, "type": "string" }, "phone": { "type": "string", "format": "tel", "nullable": true }, "role": { "maximum": 2, "minimum": 1, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "OperatorCreateResponseDto": { "type": "object", "properties": { "admin_code": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "role": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "OperatorCreateResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/OperatorCreateResponseDto" } }, "additionalProperties": false }, "OperatorDeleteRequestDto": { "required": [ "admin_code" ], "type": "object", "properties": { "admin_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "OperatorItemDto": { "type": "object", "properties": { "admin_code": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "role": { "type": "integer", "format": "int32" }, "is_active": { "type": "boolean" }, "last_login_at": { "type": "string", "format": "date-time", "nullable": true }, "created_at": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "OperatorListRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "role": { "type": "integer", "format": "int32", "nullable": true }, "is_active": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "OperatorListResponseDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/OperatorItemDto" }, "nullable": true }, "pagination": { "$ref": "#/components/schemas/PaginationDto" } }, "additionalProperties": false }, "OperatorListResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/OperatorListResponseDto" } }, "additionalProperties": false }, "OperatorPasswordResetRequestDto": { "required": [ "admin_code" ], "type": "object", "properties": { "admin_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "PaginationDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "total_count": { "type": "integer", "format": "int32" }, "total_pages": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "PasswordForgotRequestDto": { "required": [ "email" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" } }, "additionalProperties": false }, "PasswordResetRequestDto": { "required": [ "email", "new_password", "reset_token" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" }, "reset_token": { "minLength": 1, "type": "string" }, "new_password": { "minLength": 8, "type": "string" } }, "additionalProperties": false }, "PlatformCredentialSummaryDto": { "type": "object", "properties": { "registered": { "type": "boolean" }, "credentialStatus": { "type": "string", "nullable": true }, "statusReason": { "type": "string", "nullable": true }, "expiresAt": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "PlatformResultDto": { "type": "object", "properties": { "android": { "$ref": "#/components/schemas/PlatformStatusDto" }, "ios": { "$ref": "#/components/schemas/PlatformStatusDto" } }, "additionalProperties": false }, "PlatformStatusDto": { "type": "object", "properties": { "registered": { "type": "boolean" } }, "additionalProperties": false }, "PlatformSummaryDto": { "type": "object", "properties": { "android": { "$ref": "#/components/schemas/PlatformCredentialSummaryDto" }, "ios": { "$ref": "#/components/schemas/PlatformCredentialSummaryDto" } }, "additionalProperties": false }, "ProfileResponseDto": { "type": "object", "properties": { "admin_code": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "phone": { "type": "string", "nullable": true }, "role": { "type": "integer", "format": "int32" }, "created_at": { "type": "string", "format": "date-time" }, "last_login_at": { "type": "string", "format": "date-time", "nullable": true }, "organization": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ProfileResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ProfileResponseDto" } }, "additionalProperties": false }, "PushLogExportRequestDto": { "required": [ "end_date", "start_date" ], "type": "object", "properties": { "message_code": { "type": "string", "nullable": true }, "device_id": { "type": "integer", "format": "int64", "nullable": true }, "status": { "type": "string", "nullable": true }, "start_date": { "minLength": 1, "type": "string" }, "end_date": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "PushLogRequestDto": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "message_code": { "type": "string", "nullable": true }, "device_id": { "type": "integer", "format": "int64", "nullable": true }, "status": { "type": "string", "nullable": true }, "start_date": { "type": "string", "nullable": true }, "end_date": { "type": "string", "nullable": true } }, "additionalProperties": false }, "PushScheduleCancelRequestDto": { "required": [ "scheduleId" ], "type": "object", "properties": { "scheduleId": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "PushScheduleRequestDto": { "required": [ "messageCode", "scheduledAt", "sendType" ], "type": "object", "properties": { "messageCode": { "minLength": 1, "type": "string" }, "sendType": { "minLength": 1, "type": "string" }, "deviceId": { "type": "integer", "format": "int64", "nullable": true }, "tags": { "type": "array", "items": { "type": "string" }, "nullable": true }, "scheduledAt": { "minLength": 1, "type": "string" }, "variables": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "PushSendRequestDto": { "required": [ "deviceId", "messageCode" ], "type": "object", "properties": { "messageCode": { "minLength": 1, "type": "string" }, "deviceId": { "type": "integer", "format": "int64" }, "variables": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "PushSendTagRequestDto": { "required": [ "messageCode", "tags" ], "type": "object", "properties": { "messageCode": { "minLength": 1, "type": "string" }, "tags": { "minItems": 1, "type": "array", "items": { "type": "string" } }, "tagMatch": { "type": "string", "nullable": true } }, "additionalProperties": false }, "RegisterServiceRequestDto": { "required": [ "serviceName" ], "type": "object", "properties": { "serviceName": { "maxLength": 100, "minLength": 2, "type": "string" }, "description": { "maxLength": 500, "minLength": 0, "type": "string", "nullable": true }, "fcm": { "$ref": "#/components/schemas/FcmCredentialDto" }, "apns": { "$ref": "#/components/schemas/ApnsCredentialDto" } }, "additionalProperties": false }, "RegisterServiceResponseDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "serviceName": { "type": "string", "nullable": true }, "apiKey": { "type": "string", "nullable": true }, "apiKeyCreatedAt": { "type": "string", "format": "date-time" }, "status": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "platforms": { "$ref": "#/components/schemas/PlatformResultDto" } }, "additionalProperties": false }, "RegisterServiceResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/RegisterServiceResponseDto" } }, "additionalProperties": false }, "SendLogDetailRequestDto": { "required": [ "message_code" ], "type": "object", "properties": { "message_code": { "minLength": 1, "type": "string" }, "status": { "type": "string", "nullable": true }, "platform": { "type": "string", "nullable": true }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "ServiceIpDto": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "ipAddress": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ServiceIpDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ServiceIpDto" } }, "additionalProperties": false }, "ServiceListRequestDto": { "type": "object", "properties": { "page": { "maximum": 2147483647, "minimum": 1, "type": "integer", "format": "int32" }, "pageSize": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32" }, "searchKeyword": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true } }, "additionalProperties": false }, "ServiceListResponseDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceSummaryDto" }, "nullable": true }, "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "ServiceListResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ServiceListResponseDto" } }, "additionalProperties": false }, "ServiceNameCheckRequestDto": { "required": [ "serviceName" ], "type": "object", "properties": { "serviceName": { "maxLength": 100, "minLength": 1, "type": "string" } }, "additionalProperties": false }, "ServiceNameCheckResponseDto": { "type": "object", "properties": { "serviceName": { "type": "string", "nullable": true }, "isAvailable": { "type": "boolean" } }, "additionalProperties": false }, "ServiceNameCheckResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ServiceNameCheckResponseDto" } }, "additionalProperties": false }, "ServiceResponseDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "serviceName": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "apiKey": { "type": "string", "nullable": true }, "apiKeyCreatedAt": { "type": "string", "format": "date-time" }, "apnsBundleId": { "type": "string", "nullable": true }, "apnsKeyId": { "type": "string", "nullable": true }, "apnsTeamId": { "type": "string", "nullable": true }, "apnsAuthType": { "type": "string", "nullable": true }, "hasApnsKey": { "type": "boolean" }, "hasFcmCredentials": { "type": "boolean" }, "platforms": { "$ref": "#/components/schemas/PlatformSummaryDto" }, "webhookUrl": { "type": "string", "nullable": true }, "tags": { "type": "string", "nullable": true }, "subTier": { "type": "string", "nullable": true }, "subStartedAt": { "type": "string", "format": "date-time", "nullable": true }, "status": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "createdByName": { "type": "string", "nullable": true }, "updatedAt": { "type": "string", "format": "date-time", "nullable": true }, "deviceCount": { "type": "integer", "format": "int32" }, "allowedIps": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "ServiceResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ServiceResponseDto" } }, "additionalProperties": false }, "ServiceSummaryDto": { "type": "object", "properties": { "serviceCode": { "type": "string", "nullable": true }, "serviceName": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "subTier": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "deviceCount": { "type": "integer", "format": "int32" }, "platforms": { "$ref": "#/components/schemas/PlatformSummaryDto" } }, "additionalProperties": false }, "ServiceTagsRequestDto": { "required": [ "service_code" ], "type": "object", "properties": { "service_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "ServiceTagsResponseDto": { "type": "object", "properties": { "service_code": { "type": "string", "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/TagItemDto" }, "nullable": true }, "total_count": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "ServiceTagsResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/ServiceTagsResponseDto" } }, "additionalProperties": false }, "SignupRequestDto": { "required": [ "agreePrivacy", "agreeTerms", "email", "name", "password", "phone" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" }, "password": { "minLength": 8, "type": "string" }, "name": { "maxLength": 50, "minLength": 0, "type": "string" }, "phone": { "maxLength": 20, "minLength": 0, "type": "string" }, "agreeTerms": { "type": "boolean" }, "agreePrivacy": { "type": "boolean" } }, "additionalProperties": false }, "SignupResponseDto": { "type": "object", "properties": { "admin_code": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "verify_session_id": { "type": "string", "nullable": true }, "email_sent": { "type": "boolean" } }, "additionalProperties": false }, "SignupResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/SignupResponseDto" } }, "additionalProperties": false }, "StatsExportRequestDto": { "required": [ "end_date", "start_date" ], "type": "object", "properties": { "start_date": { "minLength": 1, "type": "string" }, "end_date": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "TagItemDto": { "type": "object", "properties": { "tag_index": { "type": "integer", "format": "int32" }, "tag_name": { "type": "string", "nullable": true } }, "additionalProperties": false }, "TagListRequestDto": { "type": "object", "properties": { "service_id": { "type": "integer", "format": "int64", "nullable": true }, "keyword": { "type": "string", "nullable": true }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "TempPasswordRequestDto": { "required": [ "email" ], "type": "object", "properties": { "email": { "minLength": 1, "type": "string", "format": "email" } }, "additionalProperties": false }, "TokenRefreshRequestDto": { "required": [ "refresh_token" ], "type": "object", "properties": { "refresh_token": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "TokenRefreshResponseDto": { "type": "object", "properties": { "access_token": { "type": "string", "nullable": true }, "refresh_token": { "type": "string", "nullable": true }, "expires_in": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "TokenRefreshResponseDtoApiResponse": { "type": "object", "properties": { "result": { "type": "boolean" }, "code": { "type": "string", "nullable": true }, "msg": { "type": "string", "nullable": true }, "data": { "$ref": "#/components/schemas/TokenRefreshResponseDto" } }, "additionalProperties": false }, "UpdateAccountRequestDto": { "required": [ "name", "role" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string" }, "phone": { "type": "string", "format": "tel", "nullable": true }, "role": { "maximum": 2, "minimum": 1, "type": "integer", "format": "int32" } }, "additionalProperties": false }, "UpdateProfileRequestDto": { "type": "object", "properties": { "name": { "maxLength": 50, "minLength": 0, "type": "string", "nullable": true }, "phone": { "maxLength": 20, "minLength": 0, "type": "string", "format": "tel", "nullable": true }, "organization": { "maxLength": 100, "minLength": 0, "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateServiceRequestDto": { "required": [ "serviceCode" ], "type": "object", "properties": { "serviceCode": { "minLength": 1, "type": "string" }, "serviceName": { "maxLength": 100, "minLength": 0, "type": "string", "nullable": true }, "description": { "maxLength": 500, "minLength": 0, "type": "string", "nullable": true }, "webhookUrl": { "maxLength": 500, "minLength": 0, "type": "string", "nullable": true }, "tags": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true } }, "additionalProperties": false }, "UpdateServiceTagsRequestDto": { "required": [ "service_code", "tags" ], "type": "object", "properties": { "service_code": { "minLength": 1, "type": "string" }, "tags": { "maxItems": 10, "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "UpdateTagRequestDto": { "required": [ "tag_code" ], "type": "object", "properties": { "tag_code": { "minLength": 1, "type": "string" }, "description": { "maxLength": 200, "type": "string", "nullable": true } }, "additionalProperties": false }, "WebhookConfigRequestDto": { "required": [ "service_code" ], "type": "object", "properties": { "service_code": { "minLength": 1, "type": "string" }, "webhook_url": { "type": "string", "format": "uri", "nullable": true }, "events": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "WebhookInfoRequestDto": { "required": [ "service_code" ], "type": "object", "properties": { "service_code": { "minLength": 1, "type": "string" } }, "additionalProperties": false } }, "securitySchemes": { "Bearer": { "type": "http", "description": "JWT Bearer Token\uc744 \uc785\ub825\ud558\uc138\uc694. \uc608: {token}", "scheme": "bearer", "bearerFormat": "JWT" } } }, "security": [ { "Bearer": [] } ] }