본문으로 건너뛰기

SMS Valet Backend (dev)

Download OpenAPI specification:Download

register

Create Registration

Request Body schema: application/json
required
site_id
required
string (Site Id)
car_number
required
string (Car Number)
phone_number
required
string (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "car_number": "string",
  • "phone_number": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string",
  • "data": { }
}

sites

Get Site Config

사이트 코드로 설정 조회 (프론트엔드용).

path Parameters
site_code
required
string (Site Code)

Responses

Response samples

Content type
application/json
null

List Sites

공개 사이트 목록.

domain 파라미터 (선택):

  • 미지정: 활성 사이트 전체
  • 지정: site.code == domain (1:1 매칭) 인 사이트만
query Parameters
Domain (string) or Domain (null) (Domain)

Responses

Response samples

Content type
application/json
null

Get Site

path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

Get Slot Availability

사이트별 시간대 가용성. 실제 예약 DB에서 슬롯별 입/출차 점유 수를 계산.

path Parameters
site_id
required
string (Site Id)
query Parameters
arrival_time
required
string (Arrival Time)
pickup_time
required
string (Pickup Time)

Responses

Response samples

Content type
application/json
null

vehicles

Get Vehicle Info

Request Body schema: application/json
required
vehicleNumber
required
string (Vehiclenumber) [ 7 .. 10 ] characters
ownerName
string (Ownername)
Default: ""

Responses

Request samples

Content type
application/json
{
  • "vehicleNumber": "strings",
  • "ownerName": ""
}

Response samples

Content type
application/json
null

Validate Vehicle

Request Body schema: application/json
required
vehicleNumber
required
string (Vehiclenumber) [ 7 .. 10 ] characters

Responses

Request samples

Content type
application/json
{
  • "vehicleNumber": "strings"
}

Response samples

Content type
application/json
null

List Vehicle Specs

차량 제원 목록 조회 (검색, 연식/차종 필터, 정렬, 페이지네이션).

Authorizations:
OAuth2PasswordBearer
query Parameters
Search (string) or Search (null) (Search)

제조사/모델명 검색

Year (integer) or Year (null) (Year)

연식 필터

Category (string) or Category (null) (Category)

차종 필터

Sort By (string) or Sort By (null) (Sort By)

정렬 컬럼 (model, year, vehicle_total_length, vehicle_width, vehicle_height, vehicle_weight)

Sort Order (string) or Sort Order (null) (Sort Order)

정렬 방향 (asc / desc)

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 0,
  • "size": 0
}

Create Vehicle Spec

차량 제원 등록. Master 전용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
manufacturer
required
string (Manufacturer) <= 100 characters

제조사

vehicle_model_name
required
string (Vehicle Model Name) <= 100 characters

모델명

Vehicle Model Year (string) or Vehicle Model Year (null) (Vehicle Model Year)

연식

Vehicle Total Length (number) or Vehicle Total Length (null) (Vehicle Total Length)

전장

Vehicle Width (number) or Vehicle Width (null) (Vehicle Width)

전폭

Vehicle Height (number) or Vehicle Height (null) (Vehicle Height)

전고

Vehicle Weight (number) or Vehicle Weight (null) (Vehicle Weight)

중량

Vehicle Wheel Base (number) or Vehicle Wheel Base (null) (Vehicle Wheel Base)

축거

Vehicle Overhang Front (number) or Vehicle Overhang Front (null) (Vehicle Overhang Front)

전오버행

Vehicle Overhang Rear (number) or Vehicle Overhang Rear (null) (Vehicle Overhang Rear)

후오버행

Vehicle Tread Front (number) or Vehicle Tread Front (null) (Vehicle Tread Front)

전윤거

Vehicle Tread Rear (number) or Vehicle Tread Rear (null) (Vehicle Tread Rear)

후윤거

Vehicle Tire Size Front (string) or Vehicle Tire Size Front (null) (Vehicle Tire Size Front)

전타이어

Vehicle Tire Size Rear (string) or Vehicle Tire Size Rear (null) (Vehicle Tire Size Rear)

후타이어

Category (string) or Category (null) (Category)

차종

Responses

Request samples

Content type
application/json
{
  • "manufacturer": "string",
  • "vehicle_model_name": "string",
  • "vehicle_model_year": "string",
  • "vehicle_total_length": 0,
  • "vehicle_width": 0,
  • "vehicle_height": 0,
  • "vehicle_weight": 0,
  • "vehicle_wheel_base": 0,
  • "vehicle_overhang_front": 0,
  • "vehicle_overhang_rear": 0,
  • "vehicle_tread_front": 0,
  • "vehicle_tread_rear": 0,
  • "vehicle_tire_size_front": "string",
  • "vehicle_tire_size_rear": "string",
  • "category": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "manufacturer": "string",
  • "vehicle_model_name": "string",
  • "vehicle_model_year": "string",
  • "vehicle_total_length": 0,
  • "vehicle_width": 0,
  • "vehicle_height": 0,
  • "vehicle_weight": 0,
  • "vehicle_wheel_base": 0,
  • "vehicle_overhang_front": 0,
  • "vehicle_overhang_rear": 0,
  • "vehicle_tread_front": 0,
  • "vehicle_tread_rear": 0,
  • "vehicle_tire_size_front": "string",
  • "vehicle_tire_size_rear": "string",
  • "category": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete All Vehicle Specs

차량 제원 전체 삭제. Master 전용.

Authorizations:
OAuth2PasswordBearer

Responses

Update Vehicle Spec

차량 제원 수정. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
spec_id
required
string (Spec Id)
Request Body schema: application/json
required
Manufacturer (string) or Manufacturer (null) (Manufacturer)
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)
Vehicle Model Year (string) or Vehicle Model Year (null) (Vehicle Model Year)
Vehicle Total Length (number) or Vehicle Total Length (null) (Vehicle Total Length)
Vehicle Width (number) or Vehicle Width (null) (Vehicle Width)
Vehicle Height (number) or Vehicle Height (null) (Vehicle Height)
Vehicle Weight (number) or Vehicle Weight (null) (Vehicle Weight)
Vehicle Wheel Base (number) or Vehicle Wheel Base (null) (Vehicle Wheel Base)
Vehicle Overhang Front (number) or Vehicle Overhang Front (null) (Vehicle Overhang Front)
Vehicle Overhang Rear (number) or Vehicle Overhang Rear (null) (Vehicle Overhang Rear)
Vehicle Tread Front (number) or Vehicle Tread Front (null) (Vehicle Tread Front)
Vehicle Tread Rear (number) or Vehicle Tread Rear (null) (Vehicle Tread Rear)
Vehicle Tire Size Front (string) or Vehicle Tire Size Front (null) (Vehicle Tire Size Front)
Vehicle Tire Size Rear (string) or Vehicle Tire Size Rear (null) (Vehicle Tire Size Rear)
Category (string) or Category (null) (Category)

Responses

Request samples

Content type
application/json
{
  • "manufacturer": "string",
  • "vehicle_model_name": "string",
  • "vehicle_model_year": "string",
  • "vehicle_total_length": 0,
  • "vehicle_width": 0,
  • "vehicle_height": 0,
  • "vehicle_weight": 0,
  • "vehicle_wheel_base": 0,
  • "vehicle_overhang_front": 0,
  • "vehicle_overhang_rear": 0,
  • "vehicle_tread_front": 0,
  • "vehicle_tread_rear": 0,
  • "vehicle_tire_size_front": "string",
  • "vehicle_tire_size_rear": "string",
  • "category": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "manufacturer": "string",
  • "vehicle_model_name": "string",
  • "vehicle_model_year": "string",
  • "vehicle_total_length": 0,
  • "vehicle_width": 0,
  • "vehicle_height": 0,
  • "vehicle_weight": 0,
  • "vehicle_wheel_base": 0,
  • "vehicle_overhang_front": 0,
  • "vehicle_overhang_rear": 0,
  • "vehicle_tread_front": 0,
  • "vehicle_tread_rear": 0,
  • "vehicle_tire_size_front": "string",
  • "vehicle_tire_size_rear": "string",
  • "category": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Vehicle Spec

차량 제원 삭제. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
spec_id
required
string (Spec Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Import Vehicle Specs

CSV/Excel 파일로 차량 제원 일괄 등록. Master 전용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

CSV 또는 Excel(.xlsx) 파일

Responses

Response samples

Content type
application/json
{
  • "total_rows": 0,
  • "imported": 0,
  • "updated": 0,
  • "skipped": 0,
  • "errors": [
    ]
}

admin

Get Version

백엔드 버전 정보 반환 (인증 불필요).

Responses

Response samples

Content type
application/json
null

Get Version

백엔드 버전 정보 반환 (인증 불필요).

Responses

Response samples

Content type
application/json
null

Admin Login

Request Body schema: application/json
required
username
string (Username)
Default: ""
Access Token (string) or Access Token (null) (Access Token)

Responses

Request samples

Content type
application/json
{
  • "username": "",
  • "access_token": "string"
}

Response samples

Content type
application/json
null

Admin Login

Request Body schema: application/json
required
username
string (Username)
Default: ""
Access Token (string) or Access Token (null) (Access Token)

Responses

Request samples

Content type
application/json
{
  • "username": "",
  • "access_token": "string"
}

Response samples

Content type
application/json
null

Get Profile

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Get Profile

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Update Profile Settings

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Notif Auto Dismiss Minutes (integer) or Notif Auto Dismiss Minutes (null) (Notif Auto Dismiss Minutes)
Any of
integer (Notif Auto Dismiss Minutes)

Responses

Request samples

Content type
application/json
{
  • "notif_auto_dismiss_minutes": 0
}

Response samples

Content type
application/json
null

Update Profile Settings

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Notif Auto Dismiss Minutes (integer) or Notif Auto Dismiss Minutes (null) (Notif Auto Dismiss Minutes)
Any of
integer (Notif Auto Dismiss Minutes)

Responses

Request samples

Content type
application/json
{
  • "notif_auto_dismiss_minutes": 0
}

Response samples

Content type
application/json
null

Change Password

Cognito를 통한 비밀번호 변경. 프론트에서 Cognito access token을 사용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
old_password
required
string (Old Password)
new_password
required
string (New Password)

Responses

Request samples

Content type
application/json
{
  • "old_password": "string",
  • "new_password": "string"
}

Response samples

Content type
application/json
null

Change Password

Cognito를 통한 비밀번호 변경. 프론트에서 Cognito access token을 사용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
old_password
required
string (Old Password)
new_password
required
string (New Password)

Responses

Request samples

Content type
application/json
{
  • "old_password": "string",
  • "new_password": "string"
}

Response samples

Content type
application/json
null

List Notifications

Authorizations:
OAuth2PasswordBearer
query Parameters
unread_only
boolean (Unread Only)
Default: false
Category (string) or Category (null) (Category)
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
null

List Notifications

Authorizations:
OAuth2PasswordBearer
query Parameters
unread_only
boolean (Unread Only)
Default: false
Category (string) or Category (null) (Category)
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
null

Mark Notification Read

Authorizations:
OAuth2PasswordBearer
path Parameters
notification_id
required
integer (Notification Id)

Responses

Response samples

Content type
application/json
null

Mark Notification Read

Authorizations:
OAuth2PasswordBearer
path Parameters
notification_id
required
integer (Notification Id)

Responses

Response samples

Content type
application/json
null

Mark All Notifications Read

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Mark All Notifications Read

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

List Action Logs

Authorizations:
OAuth2PasswordBearer
query Parameters
Target Type (string) or Target Type (null) (Target Type)
Target Id (string) or Target Id (null) (Target Id)
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
null

List Action Logs

Authorizations:
OAuth2PasswordBearer
query Parameters
Target Type (string) or Target Type (null) (Target Type)
Target Id (string) or Target Id (null) (Target Id)
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
null

Get Stats

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Get Stats

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Get Dashboard Overview

운영 대시보드 — 사이트별 로봇 현황 + 전체 로봇 상태 통계.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Get Dashboard Overview

운영 대시보드 — 사이트별 로봇 현황 + 전체 로봇 상태 통계.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Trigger No Show Processing

미이용 자동 처리: confirmed 상태인 예약 중 버퍼 시간이 지난 건을 no_show로 전환. NOTE: 스케줄러의 process_no_shows는 아직 동기이므로 별도 세션 사용.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Trigger No Show Processing

미이용 자동 처리: confirmed 상태인 예약 중 버퍼 시간이 지난 건을 no_show로 전환. NOTE: 스케줄러의 process_no_shows는 아직 동기이므로 별도 세션 사용.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Search Vehicle Owners

이미 등록된(VehicleOwner) 차량을 차량번호/전화번호로 부분 검색. 관리자 예약 생성 모달에서 차량 선택용으로 사용. role: master/operator만 허용.

Authorizations:
OAuth2PasswordBearer
query Parameters
q
required
string (Q) >= 2 characters

차량번호 일부 또는 휴대폰번호 일부

limit
integer (Limit) [ 1 .. 50 ]
Default: 20

Responses

Response samples

Content type
application/json
null

Search Vehicle Owners

이미 등록된(VehicleOwner) 차량을 차량번호/전화번호로 부분 검색. 관리자 예약 생성 모달에서 차량 선택용으로 사용. role: master/operator만 허용.

Authorizations:
OAuth2PasswordBearer
query Parameters
q
required
string (Q) >= 2 characters

차량번호 일부 또는 휴대폰번호 일부

limit
integer (Limit) [ 1 .. 50 ]
Default: 20

Responses

Response samples

Content type
application/json
null

Admin Create Reservation

관리자가 이미 등록된 차량(VehicleOwner)에 한해 예약을 대신 생성한다.

  • OTP/KCB 본인인증, 개인정보 동의 검증을 생략한다.
  • 차량 제원 제한(restriction_validator)은 적용하지 않는다(관리자 판단).
  • blackout, slot 충돌, 중복 예약 방지는 그대로 적용한다.
  • 초기 상태는 'confirmed'(관리자 보증). 알림톡은 VALET_RES_02 로 발송한다.
Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
entry_time
required
string (Entry Time)
exit_time
required
string (Exit Time)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
create_vehicle
boolean (Create Vehicle)
Default: false
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "entry_time": "string",
  • "exit_time": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "create_vehicle": false,
  • "vehicle_model_name": "string"
}

Response samples

Content type
application/json
null

Admin Create Reservation

관리자가 이미 등록된 차량(VehicleOwner)에 한해 예약을 대신 생성한다.

  • OTP/KCB 본인인증, 개인정보 동의 검증을 생략한다.
  • 차량 제원 제한(restriction_validator)은 적용하지 않는다(관리자 판단).
  • blackout, slot 충돌, 중복 예약 방지는 그대로 적용한다.
  • 초기 상태는 'confirmed'(관리자 보증). 알림톡은 VALET_RES_02 로 발송한다.
Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
entry_time
required
string (Entry Time)
exit_time
required
string (Exit Time)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
create_vehicle
boolean (Create Vehicle)
Default: false
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "entry_time": "string",
  • "exit_time": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "create_vehicle": false,
  • "vehicle_model_name": "string"
}

Response samples

Content type
application/json
null

List Reservations

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)
Status (string) or Status (null) (Status)
Date From (string) or Date From (null) (Date From)
Date To (string) or Date To (null) (Date To)
Search (string) or Search (null) (Search)
Vehicle Number (string) or Vehicle Number (null) (Vehicle Number)
Owner Name (string) or Owner Name (null) (Owner Name)
Is Reparked (boolean) or Is Reparked (null) (Is Reparked)
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
null

List Reservations

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)
Status (string) or Status (null) (Status)
Date From (string) or Date From (null) (Date From)
Date To (string) or Date To (null) (Date To)
Search (string) or Search (null) (Search)
Vehicle Number (string) or Vehicle Number (null) (Vehicle Number)
Owner Name (string) or Owner Name (null) (Owner Name)
Is Reparked (boolean) or Is Reparked (null) (Is Reparked)
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
null

Get Reservation Detail

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)

Responses

Response samples

Content type
application/json
null

Get Reservation Detail

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)

Responses

Response samples

Content type
application/json
null

Delete Reservation

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)

Responses

Response samples

Content type
application/json
null

Delete Reservation

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)

Responses

Response samples

Content type
application/json
null

Update Reservation

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)
Request Body schema: application/json
required
Status (string) or Status (null) (Status)
Entry Time (string) or Entry Time (null) (Entry Time)
Exit Time (string) or Exit Time (null) (Exit Time)

Responses

Request samples

Content type
application/json
{
  • "status": "string",
  • "entry_time": "string",
  • "exit_time": "string"
}

Response samples

Content type
application/json
null

Update Reservation

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)
Request Body schema: application/json
required
Status (string) or Status (null) (Status)
Entry Time (string) or Entry Time (null) (Entry Time)
Exit Time (string) or Exit Time (null) (Exit Time)

Responses

Request samples

Content type
application/json
{
  • "status": "string",
  • "entry_time": "string",
  • "exit_time": "string"
}

Response samples

Content type
application/json
null

Update Reservation Status

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)
Request Body schema: application/json
required
status
required
string (Status)

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
null

Update Reservation Status

Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)
Request Body schema: application/json
required
status
required
string (Status)

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
null

List Sites Admin

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

List Sites Admin

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Create Site Admin

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Code (string) or Code (null) (Code)
Name (string) or Name (null) (Name)
Address (string) or Address (null) (Address)
Total Capacity (integer) or Total Capacity (null) (Total Capacity)
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Is Active (boolean) or Is Active (null) (Is Active)
Requires Reservation (boolean) or Requires Reservation (null) (Requires Reservation)
Requires Admin Approval (boolean) or Requires Admin Approval (null) (Requires Admin Approval)
No Show Buffer Minutes (integer) or No Show Buffer Minutes (null) (No Show Buffer Minutes)
Cancel Deadline Minutes (integer) or Cancel Deadline Minutes (null) (Cancel Deadline Minutes)
Latitude (number) or Latitude (null) (Latitude)
Longitude (number) or Longitude (null) (Longitude)
Site Url (string) or Site Url (null) (Site Url)
Otp Expiry Minutes (integer) or Otp Expiry Minutes (null) (Otp Expiry Minutes)
Booking Window Days (integer) or Booking Window Days (null) (Booking Window Days)
Booking Min Lead Minutes (integer) or Booking Min Lead Minutes (null) (Booking Min Lead Minutes)
Hero Tagline (string) or Hero Tagline (null) (Hero Tagline)
Hero Subtitle (string) or Hero Subtitle (null) (Hero Subtitle)
Primary Card Title (string) or Primary Card Title (null) (Primary Card Title)
Primary Card Subtitle (string) or Primary Card Subtitle (null) (Primary Card Subtitle)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "address": "string",
  • "total_capacity": 0,
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "is_active": true,
  • "requires_reservation": true,
  • "requires_admin_approval": true,
  • "no_show_buffer_minutes": 0,
  • "cancel_deadline_minutes": 0,
  • "latitude": 0,
  • "longitude": 0,
  • "site_url": "string",
  • "otp_expiry_minutes": 0,
  • "booking_window_days": 0,
  • "booking_min_lead_minutes": 0,
  • "hero_tagline": "string",
  • "hero_subtitle": "string",
  • "primary_card_title": "string",
  • "primary_card_subtitle": "string"
}

Response samples

Content type
application/json
null

Create Site Admin

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Code (string) or Code (null) (Code)
Name (string) or Name (null) (Name)
Address (string) or Address (null) (Address)
Total Capacity (integer) or Total Capacity (null) (Total Capacity)
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Is Active (boolean) or Is Active (null) (Is Active)
Requires Reservation (boolean) or Requires Reservation (null) (Requires Reservation)
Requires Admin Approval (boolean) or Requires Admin Approval (null) (Requires Admin Approval)
No Show Buffer Minutes (integer) or No Show Buffer Minutes (null) (No Show Buffer Minutes)
Cancel Deadline Minutes (integer) or Cancel Deadline Minutes (null) (Cancel Deadline Minutes)
Latitude (number) or Latitude (null) (Latitude)
Longitude (number) or Longitude (null) (Longitude)
Site Url (string) or Site Url (null) (Site Url)
Otp Expiry Minutes (integer) or Otp Expiry Minutes (null) (Otp Expiry Minutes)
Booking Window Days (integer) or Booking Window Days (null) (Booking Window Days)
Booking Min Lead Minutes (integer) or Booking Min Lead Minutes (null) (Booking Min Lead Minutes)
Hero Tagline (string) or Hero Tagline (null) (Hero Tagline)
Hero Subtitle (string) or Hero Subtitle (null) (Hero Subtitle)
Primary Card Title (string) or Primary Card Title (null) (Primary Card Title)
Primary Card Subtitle (string) or Primary Card Subtitle (null) (Primary Card Subtitle)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "address": "string",
  • "total_capacity": 0,
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "is_active": true,
  • "requires_reservation": true,
  • "requires_admin_approval": true,
  • "no_show_buffer_minutes": 0,
  • "cancel_deadline_minutes": 0,
  • "latitude": 0,
  • "longitude": 0,
  • "site_url": "string",
  • "otp_expiry_minutes": 0,
  • "booking_window_days": 0,
  • "booking_min_lead_minutes": 0,
  • "hero_tagline": "string",
  • "hero_subtitle": "string",
  • "primary_card_title": "string",
  • "primary_card_subtitle": "string"
}

Response samples

Content type
application/json
null

Update Site Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
Code (string) or Code (null) (Code)
Name (string) or Name (null) (Name)
Address (string) or Address (null) (Address)
Total Capacity (integer) or Total Capacity (null) (Total Capacity)
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Is Active (boolean) or Is Active (null) (Is Active)
Requires Reservation (boolean) or Requires Reservation (null) (Requires Reservation)
Requires Admin Approval (boolean) or Requires Admin Approval (null) (Requires Admin Approval)
No Show Buffer Minutes (integer) or No Show Buffer Minutes (null) (No Show Buffer Minutes)
Cancel Deadline Minutes (integer) or Cancel Deadline Minutes (null) (Cancel Deadline Minutes)
Latitude (number) or Latitude (null) (Latitude)
Longitude (number) or Longitude (null) (Longitude)
Site Url (string) or Site Url (null) (Site Url)
Otp Expiry Minutes (integer) or Otp Expiry Minutes (null) (Otp Expiry Minutes)
Booking Window Days (integer) or Booking Window Days (null) (Booking Window Days)
Booking Min Lead Minutes (integer) or Booking Min Lead Minutes (null) (Booking Min Lead Minutes)
Hero Tagline (string) or Hero Tagline (null) (Hero Tagline)
Hero Subtitle (string) or Hero Subtitle (null) (Hero Subtitle)
Primary Card Title (string) or Primary Card Title (null) (Primary Card Title)
Primary Card Subtitle (string) or Primary Card Subtitle (null) (Primary Card Subtitle)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "address": "string",
  • "total_capacity": 0,
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "is_active": true,
  • "requires_reservation": true,
  • "requires_admin_approval": true,
  • "no_show_buffer_minutes": 0,
  • "cancel_deadline_minutes": 0,
  • "latitude": 0,
  • "longitude": 0,
  • "site_url": "string",
  • "otp_expiry_minutes": 0,
  • "booking_window_days": 0,
  • "booking_min_lead_minutes": 0,
  • "hero_tagline": "string",
  • "hero_subtitle": "string",
  • "primary_card_title": "string",
  • "primary_card_subtitle": "string"
}

Response samples

Content type
application/json
null

Update Site Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
Code (string) or Code (null) (Code)
Name (string) or Name (null) (Name)
Address (string) or Address (null) (Address)
Total Capacity (integer) or Total Capacity (null) (Total Capacity)
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Is Active (boolean) or Is Active (null) (Is Active)
Requires Reservation (boolean) or Requires Reservation (null) (Requires Reservation)
Requires Admin Approval (boolean) or Requires Admin Approval (null) (Requires Admin Approval)
No Show Buffer Minutes (integer) or No Show Buffer Minutes (null) (No Show Buffer Minutes)
Cancel Deadline Minutes (integer) or Cancel Deadline Minutes (null) (Cancel Deadline Minutes)
Latitude (number) or Latitude (null) (Latitude)
Longitude (number) or Longitude (null) (Longitude)
Site Url (string) or Site Url (null) (Site Url)
Otp Expiry Minutes (integer) or Otp Expiry Minutes (null) (Otp Expiry Minutes)
Booking Window Days (integer) or Booking Window Days (null) (Booking Window Days)
Booking Min Lead Minutes (integer) or Booking Min Lead Minutes (null) (Booking Min Lead Minutes)
Hero Tagline (string) or Hero Tagline (null) (Hero Tagline)
Hero Subtitle (string) or Hero Subtitle (null) (Hero Subtitle)
Primary Card Title (string) or Primary Card Title (null) (Primary Card Title)
Primary Card Subtitle (string) or Primary Card Subtitle (null) (Primary Card Subtitle)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "address": "string",
  • "total_capacity": 0,
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "is_active": true,
  • "requires_reservation": true,
  • "requires_admin_approval": true,
  • "no_show_buffer_minutes": 0,
  • "cancel_deadline_minutes": 0,
  • "latitude": 0,
  • "longitude": 0,
  • "site_url": "string",
  • "otp_expiry_minutes": 0,
  • "booking_window_days": 0,
  • "booking_min_lead_minutes": 0,
  • "hero_tagline": "string",
  • "hero_subtitle": "string",
  • "primary_card_title": "string",
  • "primary_card_subtitle": "string"
}

Response samples

Content type
application/json
null

Delete Site Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

Delete Site Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

주차장 홈 배경 이미지 업로드

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

주차장 홈 배경 이미지 업로드

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

주차장 홈 배경 이미지 삭제

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

주차장 홈 배경 이미지 삭제

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

Get Operation Policy

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

Get Operation Policy

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

Update Operation Policy

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Temporary Extension End (string) or Temporary Extension End (null) (Temporary Extension End)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Booking Cap Percent (integer) or Booking Cap Percent (null) (Booking Cap Percent)
Vehicle Height Check Enabled (boolean) or Vehicle Height Check Enabled (null) (Vehicle Height Check Enabled)
Deferred Gate Processing (boolean) or Deferred Gate Processing (null) (Deferred Gate Processing)
Allow Unregistered Vehicle (boolean) or Allow Unregistered Vehicle (null) (Allow Unregistered Vehicle)

Responses

Request samples

Content type
application/json
{
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "temporary_extension_end": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "booking_cap_percent": 0,
  • "vehicle_height_check_enabled": true,
  • "deferred_gate_processing": true,
  • "allow_unregistered_vehicle": true
}

Response samples

Content type
application/json
null

Update Operation Policy

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
Operating Start (string) or Operating Start (null) (Operating Start)
Operating End (string) or Operating End (null) (Operating End)
Operating Days (string) or Operating Days (null) (Operating Days)
Temporary Extension End (string) or Temporary Extension End (null) (Temporary Extension End)
Slot Duration Minutes (integer) or Slot Duration Minutes (null) (Slot Duration Minutes)
Max Entry Per Slot (integer) or Max Entry Per Slot (null) (Max Entry Per Slot)
Max Exit Per Slot (integer) or Max Exit Per Slot (null) (Max Exit Per Slot)
Booking Cap Percent (integer) or Booking Cap Percent (null) (Booking Cap Percent)
Vehicle Height Check Enabled (boolean) or Vehicle Height Check Enabled (null) (Vehicle Height Check Enabled)
Deferred Gate Processing (boolean) or Deferred Gate Processing (null) (Deferred Gate Processing)
Allow Unregistered Vehicle (boolean) or Allow Unregistered Vehicle (null) (Allow Unregistered Vehicle)

Responses

Request samples

Content type
application/json
{
  • "operating_start": "string",
  • "operating_end": "string",
  • "operating_days": "string",
  • "temporary_extension_end": "string",
  • "slot_duration_minutes": 0,
  • "max_entry_per_slot": 0,
  • "max_exit_per_slot": 0,
  • "booking_cap_percent": 0,
  • "vehicle_height_check_enabled": true,
  • "deferred_gate_processing": true,
  • "allow_unregistered_vehicle": true
}

Response samples

Content type
application/json
null

List Notification Templates

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

List Notification Templates

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

Update Notification Template

Authorizations:
OAuth2PasswordBearer
path Parameters
template_id
required
integer (Template Id)
Request Body schema: application/json
required
Template Code (string) or Template Code (null) (Template Code)
Template Body (string) or Template Body (null) (Template Body)
Is Active (boolean) or Is Active (null) (Is Active)

Responses

Request samples

Content type
application/json
{
  • "template_code": "string",
  • "template_body": "string",
  • "is_active": true
}

Response samples

Content type
application/json
null

Update Notification Template

Authorizations:
OAuth2PasswordBearer
path Parameters
template_id
required
integer (Template Id)
Request Body schema: application/json
required
Template Code (string) or Template Code (null) (Template Code)
Template Body (string) or Template Body (null) (Template Body)
Is Active (boolean) or Is Active (null) (Is Active)

Responses

Request samples

Content type
application/json
{
  • "template_code": "string",
  • "template_body": "string",
  • "is_active": true
}

Response samples

Content type
application/json
null

Manual Send

수동 발송 (실제 SMS 연동은 스텁).

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Recipient Phone (string) or Recipient Phone (null) (Recipient Phone)
message
required
string (Message)
broadcast
boolean (Broadcast)
Default: false

Responses

Request samples

Content type
application/json
{
  • "recipient_phone": "string",
  • "message": "string",
  • "broadcast": false
}

Response samples

Content type
application/json
null

Manual Send

수동 발송 (실제 SMS 연동은 스텁).

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
Recipient Phone (string) or Recipient Phone (null) (Recipient Phone)
message
required
string (Message)
broadcast
boolean (Broadcast)
Default: false

Responses

Request samples

Content type
application/json
{
  • "recipient_phone": "string",
  • "message": "string",
  • "broadcast": false
}

Response samples

Content type
application/json
null

Admin Lookup Vehicle Spec

관리자 등록/예약 생성 화면에서 차량 제원을 즉시 조회. CVMIS(365 API) 단독, DB 저장 없이 결과만 반환. master/operator만 허용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string"
}

Response samples

Content type
application/json
null

Admin Lookup Vehicle Spec

관리자 등록/예약 생성 화면에서 차량 제원을 즉시 조회. CVMIS(365 API) 단독, DB 저장 없이 결과만 반환. master/operator만 허용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string"
}

Response samples

Content type
application/json
null

Admin Create Registration

관리자가 직접 차량을 등록한다. CVMIS 제원 자동 조회, OTP/동의 생략.

  • 동일 사이트에 동일 차량번호의 active 등록이 있으면 409.
  • VehicleOwner upsert (CVMIS 제원 반영, 동의 시각은 NULL — 본인동의 없음).
  • Registration.status = 'active' 로 즉시 등록.
  • VALET_REG_02 알림톡 + sms-backend 차량/등록 동기화.
Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
skip_spec_lookup
boolean (Skip Spec Lookup)
Default: false
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "skip_spec_lookup": false,
  • "vehicle_model_name": "string"
}

Response samples

Content type
application/json
null

Admin Create Registration

관리자가 직접 차량을 등록한다. CVMIS 제원 자동 조회, OTP/동의 생략.

  • 동일 사이트에 동일 차량번호의 active 등록이 있으면 409.
  • VehicleOwner upsert (CVMIS 제원 반영, 동의 시각은 NULL — 본인동의 없음).
  • Registration.status = 'active' 로 즉시 등록.
  • VALET_REG_02 알림톡 + sms-backend 차량/등록 동기화.
Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
skip_spec_lookup
boolean (Skip Spec Lookup)
Default: false
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "skip_spec_lookup": false,
  • "vehicle_model_name": "string"
}

Response samples

Content type
application/json
null

List Registrations

Authorizations:
OAuth2PasswordBearer
query Parameters
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20
Status (string) or Status (null) (Status)
Search (string) or Search (null) (Search)

Responses

Response samples

Content type
application/json
null

List Registrations

Authorizations:
OAuth2PasswordBearer
query Parameters
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20
Status (string) or Status (null) (Status)
Search (string) or Search (null) (Search)

Responses

Response samples

Content type
application/json
null

등록 엑셀 내보내기

선택 또는 전체 등록 내역을 엑셀(.xlsx)로 내보낸다.

Authorizations:
OAuth2PasswordBearer
query Parameters
Ids (string) or Ids (null) (Ids)

내보낼 등록 ID (쉼표 구분). 미입력 시 전체

Status (string) or Status (null) (Status)
Search (string) or Search (null) (Search)
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

등록 엑셀 내보내기

선택 또는 전체 등록 내역을 엑셀(.xlsx)로 내보낸다.

Authorizations:
OAuth2PasswordBearer
query Parameters
Ids (string) or Ids (null) (Ids)

내보낼 등록 ID (쉼표 구분). 미입력 시 전체

Status (string) or Status (null) (Status)
Search (string) or Search (null) (Search)
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

Get Registration Detail

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)

Responses

Response samples

Content type
application/json
null

Get Registration Detail

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)

Responses

Response samples

Content type
application/json
null

Delete Registration

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)

Responses

Response samples

Content type
application/json
null

Delete Registration

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)

Responses

Response samples

Content type
application/json
null

Update Registration Status

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)
Request Body schema: application/json
required
status
required
string (Status)

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
null

Update Registration Status

Authorizations:
OAuth2PasswordBearer
path Parameters
registration_id
required
integer (Registration Id)
Request Body schema: application/json
required
status
required
string (Status)

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
null

등록 엑셀 템플릿 다운로드

등록 일괄 업로드용 엑셀 템플릿(.xlsx) 다운로드.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

등록 엑셀 템플릿 다운로드

등록 일괄 업로드용 엑셀 템플릿(.xlsx) 다운로드.

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

등록 엑셀 일괄 업로드

엑셀로 차량 등록 일괄 처리. Registration + VehicleOwner 동시 upsert. 컬럼: 차량번호(필수), 전화번호(필수), 이름, 차종, 연식

Authorizations:
OAuth2PasswordBearer
query Parameters
site_id
required
string (Site Id)

등록할 사이트 ID

skip_duplicates
boolean (Skip Duplicates)
Default: true

True: 이미 등록된 차량번호 건너뜀, False: 에러

Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

등록 엑셀 일괄 업로드

엑셀로 차량 등록 일괄 처리. Registration + VehicleOwner 동시 upsert. 컬럼: 차량번호(필수), 전화번호(필수), 이름, 차종, 연식

Authorizations:
OAuth2PasswordBearer
query Parameters
site_id
required
string (Site Id)

등록할 사이트 ID

skip_duplicates
boolean (Skip Duplicates)
Default: true

True: 이미 등록된 차량번호 건너뜀, False: 에러

Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

List Robots Admin

Authorizations:
OAuth2PasswordBearer
query Parameters
Search (string) or Search (null) (Search)
Status (string) or Status (null) (Status)
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
null

List Robots Admin

Authorizations:
OAuth2PasswordBearer
query Parameters
Search (string) or Search (null) (Search)
Status (string) or Status (null) (Status)
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
null

Create Robot Admin

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
name
required
string (Name)
Mac Address (string) or Mac Address (null) (Mac Address)
Model Id (string) or Model Id (null) (Model Id)
Mvp Version (integer) or Mvp Version (null) (Mvp Version)
Sw Version (string) or Sw Version (null) (Sw Version)
Hw Release Id (string) or Hw Release Id (null) (Hw Release Id)
Initial Site Id (string) or Initial Site Id (null) (Initial Site Id)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "mac_address": "string",
  • "model_id": "string",
  • "mvp_version": 0,
  • "sw_version": "string",
  • "hw_release_id": "string",
  • "initial_site_id": "string"
}

Response samples

Content type
application/json
null

Create Robot Admin

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
name
required
string (Name)
Mac Address (string) or Mac Address (null) (Mac Address)
Model Id (string) or Model Id (null) (Model Id)
Mvp Version (integer) or Mvp Version (null) (Mvp Version)
Sw Version (string) or Sw Version (null) (Sw Version)
Hw Release Id (string) or Hw Release Id (null) (Hw Release Id)
Initial Site Id (string) or Initial Site Id (null) (Initial Site Id)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "mac_address": "string",
  • "model_id": "string",
  • "mvp_version": 0,
  • "sw_version": "string",
  • "hw_release_id": "string",
  • "initial_site_id": "string"
}

Response samples

Content type
application/json
null

Suggest Robot Name

모델+MVP 기반 로봇 이름 자동 제안 (예: PARKIE-A001).

Authorizations:
OAuth2PasswordBearer
query Parameters
model_id
required
string (Model Id)
mvp_version
integer (Mvp Version)
Default: 1

Responses

Response samples

Content type
application/json
null

Suggest Robot Name

모델+MVP 기반 로봇 이름 자동 제안 (예: PARKIE-A001).

Authorizations:
OAuth2PasswordBearer
query Parameters
model_id
required
string (Model Id)
mvp_version
integer (Mvp Version)
Default: 1

Responses

Response samples

Content type
application/json
null

Validate Robot Name

로봇 이름 중복 확인.

Authorizations:
OAuth2PasswordBearer
query Parameters
name
required
string (Name)

Responses

Response samples

Content type
application/json
null

Validate Robot Name

로봇 이름 중복 확인.

Authorizations:
OAuth2PasswordBearer
query Parameters
name
required
string (Name)

Responses

Response samples

Content type
application/json
null

Get Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
null

Get Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
null

Update Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Part Number (string) or Part Number (null) (Part Number)
Wifi Mac (string) or Wifi Mac (null) (Wifi Mac)
Lte Mac (string) or Lte Mac (null) (Lte Mac)
Hw Version (string) or Hw Version (null) (Hw Version)
Sw Version (string) or Sw Version (null) (Sw Version)
Status (string) or Status (null) (Status)
Current Site Id (string) or Current Site Id (null) (Current Site Id)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "part_number": "string",
  • "wifi_mac": "string",
  • "lte_mac": "string",
  • "hw_version": "string",
  • "sw_version": "string",
  • "status": "string",
  • "current_site_id": "string"
}

Response samples

Content type
application/json
null

Update Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Part Number (string) or Part Number (null) (Part Number)
Wifi Mac (string) or Wifi Mac (null) (Wifi Mac)
Lte Mac (string) or Lte Mac (null) (Lte Mac)
Hw Version (string) or Hw Version (null) (Hw Version)
Sw Version (string) or Sw Version (null) (Sw Version)
Status (string) or Status (null) (Status)
Current Site Id (string) or Current Site Id (null) (Current Site Id)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "part_number": "string",
  • "wifi_mac": "string",
  • "lte_mac": "string",
  • "hw_version": "string",
  • "sw_version": "string",
  • "status": "string",
  • "current_site_id": "string"
}

Response samples

Content type
application/json
null

Delete Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
null

Delete Robot Admin

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
null

List Restriction Rules

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

List Restriction Rules

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

Create Restriction Rule

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
rule_type
required
string (Rule Type)
threshold_mm
required
integer (Threshold Mm)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "rule_type": "string",
  • "threshold_mm": 0
}

Response samples

Content type
application/json
null

Create Restriction Rule

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
rule_type
required
string (Rule Type)
threshold_mm
required
integer (Threshold Mm)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "rule_type": "string",
  • "threshold_mm": 0
}

Response samples

Content type
application/json
null

Delete Restriction Rule

Authorizations:
OAuth2PasswordBearer
path Parameters
rule_id
required
string (Rule Id)

Responses

Response samples

Content type
application/json
null

Delete Restriction Rule

Authorizations:
OAuth2PasswordBearer
path Parameters
rule_id
required
string (Rule Id)

Responses

Response samples

Content type
application/json
null

List Restriction Models

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

List Restriction Models

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

Create Restriction Model

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
model_name
required
string (Model Name)
Manufacturer (string) or Manufacturer (null) (Manufacturer)
Year From (integer) or Year From (null) (Year From)
Year To (integer) or Year To (null) (Year To)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "model_name": "string",
  • "manufacturer": "string",
  • "year_from": 0,
  • "year_to": 0
}

Response samples

Content type
application/json
null

Create Restriction Model

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
model_name
required
string (Model Name)
Manufacturer (string) or Manufacturer (null) (Manufacturer)
Year From (integer) or Year From (null) (Year From)
Year To (integer) or Year To (null) (Year To)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "model_name": "string",
  • "manufacturer": "string",
  • "year_from": 0,
  • "year_to": 0
}

Response samples

Content type
application/json
null

Delete Restriction Model

Authorizations:
OAuth2PasswordBearer
path Parameters
model_id
required
string (Model Id)

Responses

Response samples

Content type
application/json
null

Delete Restriction Model

Authorizations:
OAuth2PasswordBearer
path Parameters
model_id
required
string (Model Id)

Responses

Response samples

Content type
application/json
null

Search Spec Models

VehicleSpec 테이블에서 모델명 검색 (중복 제거).

Authorizations:
OAuth2PasswordBearer
query Parameters
q
string (Q) >= 0 characters
Default: ""

Responses

Response samples

Content type
application/json
null

Search Spec Models

VehicleSpec 테이블에서 모델명 검색 (중복 제거).

Authorizations:
OAuth2PasswordBearer
query Parameters
q
string (Q) >= 0 characters
Default: ""

Responses

Response samples

Content type
application/json
null

Restriction Preview

현재 규칙+직접 지정에 매칭되는 차량 제원 미리보기.

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

Restriction Preview

현재 규칙+직접 지정에 매칭되는 차량 제원 미리보기.

Authorizations:
OAuth2PasswordBearer
query Parameters
Site Id (string) or Site Id (null) (Site Id)

Responses

Response samples

Content type
application/json
null

identity

Identity Check

차량번호 + 휴대폰번호 조합이 DB에 있는지 확인.

Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Site Id (string) or Site Id (null) (Site Id)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "site_id": "string"
}

Response samples

Content type
application/json
null

Otp Send

카카오톡 알림톡 OTP 발송.

Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Site Id (string) or Site Id (null) (Site Id)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "site_id": "string"
}

Response samples

Content type
application/json
null

Otp Verify

OTP 검증.

Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
otp_code
required
string (Otp Code)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "otp_code": "string"
}

Response samples

Content type
application/json
null

Otp Send Lookup

마이페이지 전용 OTP 발송.

Request Body schema: application/json
required
phone_number
required
string (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string"
}

Response samples

Content type
application/json
null

Otp Verify Lookup

마이페이지 전용 OTP 검증.

Request Body schema: application/json
required
phone_number
required
string (Phone Number)
otp_code
required
string (Otp Code)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string",
  • "otp_code": "string"
}

Response samples

Content type
application/json
null

Otp Send Proxy

신규 사용자용 phone-only OTP 발송. VehicleOwner 사전 존재 불필요.

Request Body schema: application/json
required
phone_number
required
string (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string"
}

Response samples

Content type
application/json
null

Otp Verify Proxy

phone-only OTP 검증 + 선택적으로 site_id 가 주어지면 해당 사이트의 내 차량 목록(Registration / 활성 Reservation)을 함께 반환.

Request Body schema: application/json
required
phone_number
required
string (Phone Number)
otp_code
required
string (Otp Code)
Site Id (string) or Site Id (null) (Site Id)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string",
  • "otp_code": "string",
  • "site_id": "string"
}

Response samples

Content type
application/json
null

Kcb Request

KCB 제3자 정보제공동의 요청.

Request Body schema: application/json
required
Car Owner (string) or Car Owner (null) (Car Owner)
Car Reg No (string) or Car Reg No (null) (Car Reg No)
Phone Number (string) or Phone Number (null) (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "car_owner": "string",
  • "car_reg_no": "string",
  • "phone_number": "string"
}

Response samples

Content type
application/json
null

Kcb Callback

KOTSA 동의 완료 후 콜백.

query Parameters
token
required
string (Token)

Responses

Response samples

Content type
application/json
null

Cvmis Test

CVMIS 직접 연동 테스트 (KCB 동의 없이 차량번호로 원문 조회).

개발/스테이지 전용 — 암복호화·전자서명·서버 연결 동시 검증. 예: GET /api/v1/identity/cvmis/test?vhcl_no=15부9134

query Parameters
vhcl_no
required
string (Vhcl No)

Responses

Response samples

Content type
application/json
null

Kcb Status

KCB 동의 상태 확인.

path Parameters
token
required
string (Token)

Responses

Response samples

Content type
application/json
null

Save Vehicle Owner

차량 소유자 정보를 DB에 저장/업데이트.

Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Owner Name (string) or Owner Name (null) (Owner Name)
Personal Info Consent (boolean) or Personal Info Consent (null) (Personal Info Consent)
Third Party Consent (boolean) or Third Party Consent (null) (Third Party Consent)
Vehicle Owner Type (string) or Vehicle Owner Type (null) (Vehicle Owner Type)
Specs Source (string) or Specs Source (null) (Specs Source)
Non Self Acknowledged (boolean) or Non Self Acknowledged (null) (Non Self Acknowledged)
Vehicle Model Name (string) or Vehicle Model Name (null) (Vehicle Model Name)
Vehicle Model Year (string) or Vehicle Model Year (null) (Vehicle Model Year)
Vehicle Weight (number) or Vehicle Weight (null) (Vehicle Weight)
Vehicle Total Length (number) or Vehicle Total Length (null) (Vehicle Total Length)
Vehicle Width (number) or Vehicle Width (null) (Vehicle Width)
Vehicle Height (number) or Vehicle Height (null) (Vehicle Height)
Vehicle Wheel Base (number) or Vehicle Wheel Base (null) (Vehicle Wheel Base)
Vehicle Tread Front (number) or Vehicle Tread Front (null) (Vehicle Tread Front)
Vehicle Tread Rear (number) or Vehicle Tread Rear (null) (Vehicle Tread Rear)
Vehicle Tire Size Front (string) or Vehicle Tire Size Front (null) (Vehicle Tire Size Front)
Vehicle Tire Size Rear (string) or Vehicle Tire Size Rear (null) (Vehicle Tire Size Rear)
Vehicle Overhang Front (number) or Vehicle Overhang Front (null) (Vehicle Overhang Front)
Vehicle Overhang Rear (number) or Vehicle Overhang Rear (null) (Vehicle Overhang Rear)
Vehicle Ground Clearance Front (number) or Vehicle Ground Clearance Front (null) (Vehicle Ground Clearance Front)
Vehicle Ground Clearance Rear (number) or Vehicle Ground Clearance Rear (null) (Vehicle Ground Clearance Rear)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "owner_name": "string",
  • "personal_info_consent": true,
  • "third_party_consent": true,
  • "vehicle_owner_type": "string",
  • "specs_source": "string",
  • "non_self_acknowledged": true,
  • "vehicle_model_name": "string",
  • "vehicle_model_year": "string",
  • "vehicle_weight": 0,
  • "vehicle_total_length": 0,
  • "vehicle_width": 0,
  • "vehicle_height": 0,
  • "vehicle_wheel_base": 0,
  • "vehicle_tread_front": 0,
  • "vehicle_tread_rear": 0,
  • "vehicle_tire_size_front": "string",
  • "vehicle_tire_size_rear": "string",
  • "vehicle_overhang_front": 0,
  • "vehicle_overhang_rear": 0,
  • "vehicle_ground_clearance_front": 0,
  • "vehicle_ground_clearance_rear": 0
}

Response samples

Content type
application/json
null

Delete Vehicle Owner

마이페이지 '내 차량' 삭제 — 조회 세션(token)으로 본인 차량 프로필 삭제.

query Parameters
phone_number
required
string (Phone Number)
token
required
string (Token)
vehicle_number
required
string (Vehicle Number)

Responses

Response samples

Content type
application/json
null

List Vehicle Owners

마이페이지 '내 차량' — 조회 세션(token)으로 본인 휴대폰의 저장 차량 목록 반환.

query Parameters
phone_number
required
string (Phone Number)
token
required
string (Token)

Responses

Response samples

Content type
application/json
null

reservations

Create Reservation

header Parameters
Idempotency-Key (string) or Idempotency-Key (null) (Idempotency-Key)
Request Body schema: application/json
required
site_id
required
string (Site Id)
entry_time
required
string (Entry Time)
exit_time
required
string (Exit Time)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
Verification Token (string) or Verification Token (null) (Verification Token)
personal_info_consent
boolean (Personal Info Consent)
Default: false
third_party_consent
boolean (Third Party Consent)
Default: false

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "entry_time": "string",
  • "exit_time": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "verification_token": "string",
  • "personal_info_consent": false,
  • "third_party_consent": false
}

Response samples

Content type
application/json
null

Lookup Reservations

query Parameters
phone_number
required
string (Phone Number)
token
required
string (Token)

Responses

Response samples

Content type
application/json
null

Cancel Reservation

path Parameters
reservation_id
required
integer (Reservation Id)
Request Body schema: application/json
required
phone_number
required
string (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string"
}

Response samples

Content type
application/json
null

registrations

Create Registration

Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
phone_number
required
string (Phone Number)
Owner Name (string) or Owner Name (null) (Owner Name)
is_disabled
boolean (Is Disabled)
Default: false
is_multi_child
boolean (Is Multi Child)
Default: false
Verification Token (string) or Verification Token (null) (Verification Token)
personal_info_consent
boolean (Personal Info Consent)
Default: false
third_party_consent
boolean (Third Party Consent)
Default: false

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "phone_number": "string",
  • "owner_name": "string",
  • "is_disabled": false,
  • "is_multi_child": false,
  • "verification_token": "string",
  • "personal_info_consent": false,
  • "third_party_consent": false
}

Response samples

Content type
application/json
null

Lookup Registrations

query Parameters
phone_number
required
string (Phone Number)
token
required
string (Token)

Responses

Response samples

Content type
application/json
null

Cancel Registration

path Parameters
registration_id
required
integer (Registration Id)
Request Body schema: application/json
required
phone_number
required
string (Phone Number)

Responses

Request samples

Content type
application/json
{
  • "phone_number": "string"
}

Response samples

Content type
application/json
null

auth

로그인 요청

API 통신 전용 토큰을 발급합니다.

Responses

Response samples

Content type
application/json
null

internal

Get Site Settings

사이트 코드로 SMS 연동 설정을 조회한다. (sms-backend → sms-valet)

대소문자 구분 없음. 예: /api/v1/internal/sites/gas/settings

Authorizations:
HTTPBearer
path Parameters
site_code
required
string (Site Code)

Responses

Response samples

Content type
application/json
null

Verify Vehicle

차량번호와 사이트ID(또는 사이트코드)로 예약/등록 여부를 검증한다. (sms-backend → sms-valet)

Authorizations:
HTTPBearer
query Parameters
vehicle_number
required
string (Vehicle Number)

차량번호

site_id
required
string (Site Id)

주차장 ID 또는 사이트 코드

auto_checkin
boolean (Auto Checkin)
Default: false

매칭 시 자동 checked_in 전환

Responses

Response samples

Content type
application/json
null

Carry Complete

sms-backend → valet-backend: 입차/출차 완료 콜백.

  • IN: 예약 상태를 checked_in으로 전환 + VALET_CHK_01 알림톡
  • OUT: 예약 상태를 completed로 전환 + VALET_OUT_01 알림톡
Authorizations:
HTTPBearer
Request Body schema: application/json
required
event_type
required
string (Event Type)
vehicle_number
required
string (Vehicle Number)
site_id
required
string (Site Id)
Parking Space (string) or Parking Space (null) (Parking Space)
Completed At (string) or Completed At (null) (Completed At)
Duration Minutes (integer) or Duration Minutes (null) (Duration Minutes)

Responses

Request samples

Content type
application/json
{
  • "event_type": "string",
  • "vehicle_number": "string",
  • "site_id": "string",
  • "parking_space": "string",
  • "completed_at": "string",
  • "duration_minutes": 0
}

Response samples

Content type
application/json
null

Reservation Self Exit

sms-backend → valet-backend: 자주식 출차 콜백.

운영시간 외 안쪽 LPR 인식 → sms-backend가 cancel-request 처리 후 이 API 호출. 예약 상태를 completed로 전환 + VALET_OUT_02 알림톡.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
site_id
required
string (Site Id)
Exit Time (string) or Exit Time (null) (Exit Time)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "site_id": "string",
  • "exit_time": "string"
}

Response samples

Content type
application/json
null

Reservation Repark Notice

sms-backend → valet-backend: 미픽업 차량 BUFFER 자동 재주차 통보.

sms-backend의 UnpickedReparkService가 예약 종료 + N분 경과 후 차량을 픽업존 → BUFFER 주차면으로 자동 이동시켰을 때 호출된다. valet은 사용자 알림톡(VALET_REPARK_01) 발송을 담당한다.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number)
site_id
required
string (Site Id)
buffer_space
required
string (Buffer Space)
Processed At (string) or Processed At (null) (Processed At)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "site_id": "string",
  • "buffer_space": "string",
  • "processed_at": "string"
}

Response samples

Content type
application/json
null

Pass Vehicle Entry

sms-backend → valet: PassVehicle LPR 매칭 시 capacity 검증 + 입차 로그 기록.

응답: 200: 입차 허용 (entry_log_id 반환) 403: PASS_VEHICLE_NOT_FOUND / NOT_YET_VALID / EXPIRED 422: FULL (만차 → 화이트리스트라도 거절)

PassVehicle 은 Reservation 을 생성하지 않는다. PassVehicleEntryLog 만 기록되며, 이후 carry-complete OUT 이벤트 도착 시 exit_time 이 채워진다.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
site_id
required
string (Site Id)
vehicle_number
required
string (Vehicle Number)
Entry Time (string) or Entry Time (null) (Entry Time)

Responses

Request samples

Content type
application/json
{
  • "site_id": "string",
  • "vehicle_number": "string",
  • "entry_time": "string"
}

Response samples

Content type
application/json
null

parking-spaces

층 목록 조회

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

층 추가

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
name
required
string (Name)
sort_order
integer (Sort Order)
Default: 0

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sort_order": 0
}

Response samples

Content type
application/json
null

층 수정

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
floor_id
required
string (Floor Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Sort Order (integer) or Sort Order (null) (Sort Order)
Blueprint Url (string) or Blueprint Url (null) (Blueprint Url)
Blueprint X (number) or Blueprint X (null) (Blueprint X)
Blueprint Y (number) or Blueprint Y (null) (Blueprint Y)
Blueprint Scale (number) or Blueprint Scale (null) (Blueprint Scale)
Blueprint Rotation (number) or Blueprint Rotation (null) (Blueprint Rotation)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sort_order": 0,
  • "blueprint_url": "string",
  • "blueprint_x": 0,
  • "blueprint_y": 0,
  • "blueprint_scale": 0,
  • "blueprint_rotation": 0
}

Response samples

Content type
application/json
null

층 삭제

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
floor_id
required
string (Floor Id)

Responses

Response samples

Content type
application/json
null

층 도면 업로드

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
floor_id
required
string (Floor Id)
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

층 도면 삭제

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
floor_id
required
string (Floor Id)

Responses

Response samples

Content type
application/json
null

주차면 목록 조회

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
query Parameters
Floor Id (string) or Floor Id (null) (Floor Id)

Responses

Response samples

Content type
application/json
null

주차면 추가

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
floor_id
required
string (Floor Id)
name
required
string (Name)
type
string (Type)
Default: "space"
priority
integer (Priority)
Default: 0
is_active
boolean (Is Active)
Default: true
width
number (Width)
Default: 2.5
length
number (Length)
Default: 5
align_type
string (Align Type)
Default: "edge_rear"
position_x
number (Position X)
Default: 0
position_y
number (Position Y)
Default: 0
rotation
number (Rotation)
Default: 0
Estimated Job Time (integer) or Estimated Job Time (null) (Estimated Job Time)
Parking Direction (string) or Parking Direction (null) (Parking Direction)

Responses

Request samples

Content type
application/json
{
  • "floor_id": "string",
  • "name": "string",
  • "type": "space",
  • "priority": 0,
  • "is_active": true,
  • "width": 2.5,
  • "length": 5,
  • "align_type": "edge_rear",
  • "position_x": 0,
  • "position_y": 0,
  • "rotation": 0,
  • "estimated_job_time": 0,
  • "parking_direction": "string"
}

Response samples

Content type
application/json
null

주차면 수정

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
space_id
required
string (Space Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Type (string) or Type (null) (Type)
Priority (integer) or Priority (null) (Priority)
Is Active (boolean) or Is Active (null) (Is Active)
Width (number) or Width (null) (Width)
Length (number) or Length (null) (Length)
Align Type (string) or Align Type (null) (Align Type)
Position X (number) or Position X (null) (Position X)
Position Y (number) or Position Y (null) (Position Y)
Rotation (number) or Rotation (null) (Rotation)
Estimated Job Time (integer) or Estimated Job Time (null) (Estimated Job Time)
Parking Direction (string) or Parking Direction (null) (Parking Direction)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "priority": 0,
  • "is_active": true,
  • "width": 0,
  • "length": 0,
  • "align_type": "string",
  • "position_x": 0,
  • "position_y": 0,
  • "rotation": 0,
  • "estimated_job_time": 0,
  • "parking_direction": "string"
}

Response samples

Content type
application/json
null

주차면 삭제

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
space_id
required
string (Space Id)

Responses

Response samples

Content type
application/json
null

주차면 위치 일괄 업데이트

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
required
Array of objects (Updates)
Array
id
required
string (Id)
position_x
required
number (Position X)
position_y
required
number (Position Y)
rotation
number (Rotation)
Default: 0

Responses

Request samples

Content type
application/json
{
  • "updates": [
    ]
}

Response samples

Content type
application/json
null

주차면 맵 내보내기 (JSON)

사이트의 층 + 주차면 설정을 JSON으로 내보냅니다. 스테이지 → 운영 맵 이전에 활용.

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)

Responses

Response samples

Content type
application/json
null

주차면 맵 가져오기 (JSON)

export로 내보낸 JSON을 가져와 층 + 주차면을 생성/업데이트합니다.

  • mode=upsert (기본): 이름 기준으로 없으면 생성, 있으면 업데이트
  • mode=replace: 기존 층/주차면 전체 삭제 후 재생성
Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
query Parameters
mode
string (Mode)
Default: "upsert"
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

system-settings

Get Public App Settings

SmartAppBanner에서 사용하는 공개 설정.

Responses

Response samples

Content type
application/json
{
  • "app_version": "string",
  • "app_download_url": "string",
  • "app_banner_dismiss_days": 0
}

Get Public App Settings

SmartAppBanner에서 사용하는 공개 설정.

Responses

Response samples

Content type
application/json
{
  • "app_version": "string",
  • "app_download_url": "string",
  • "app_banner_dismiss_days": 0
}

Get System Settings

전체 시스템 설정 조회 (마스터 전용).

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
{
  • "settings": [
    ]
}

Get System Settings

전체 시스템 설정 조회 (마스터 전용).

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
{
  • "settings": [
    ]
}

Update System Settings

시스템 설정 일괄 수정 (마스터 전용).

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
required
object (Settings)
property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "settings": [
    ]
}

Update System Settings

시스템 설정 일괄 수정 (마스터 전용).

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
required
object (Settings)
property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "settings": [
    ]
}

admin-blackout

List Blackouts

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
query Parameters
include_inactive
boolean (Include Inactive)
Default: false
include_past
boolean (Include Past)
Default: false

Responses

Response samples

Content type
application/json
null

Create Blackout

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
start_at
required
string <date-time> (Start At)
end_at
required
string <date-time> (End At)
Reason (string) or Reason (null) (Reason)
is_active
boolean (Is Active)
Default: true

Responses

Request samples

Content type
application/json
{
  • "start_at": "2019-08-24T14:15:22Z",
  • "end_at": "2019-08-24T14:15:22Z",
  • "reason": "string",
  • "is_active": true
}

Response samples

Content type
application/json
null

Update Blackout

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
blackout_id
required
integer (Blackout Id)
Request Body schema: application/json
required
Start At (string) or Start At (null) (Start At)
End At (string) or End At (null) (End At)
Reason (string) or Reason (null) (Reason)
Is Active (boolean) or Is Active (null) (Is Active)

Responses

Request samples

Content type
application/json
{
  • "start_at": "2019-08-24T14:15:22Z",
  • "end_at": "2019-08-24T14:15:22Z",
  • "reason": "string",
  • "is_active": true
}

Response samples

Content type
application/json
null

Delete Blackout

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
blackout_id
required
integer (Blackout Id)

Responses

Response samples

Content type
application/json
null

Affected Reservations

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
blackout_id
required
integer (Blackout Id)

Responses

Response samples

Content type
application/json
null

blackout

Public List Blackouts

사용자 프론트엔드 달력에서 비활성 처리할 차단 기간 조회.

from/to 미지정 시 "지금부터 90일" 범위를 기본값으로 사용. 인증 불필요 (사이트 운영 정보는 공개로 간주).

path Parameters
site_id
required
string (Site Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
null

admin-pass-vehicle

List Pass Vehicles

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
query Parameters
include_inactive
boolean (Include Inactive)
Default: true

비활성화 항목 포함 (기본 true — 운영자가 toggle 보고 싶음)

Responses

Response samples

Content type
application/json
null

Create Pass Vehicle

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
Request Body schema: application/json
required
vehicle_number
required
string (Vehicle Number) [ 1 .. 20 ] characters
Owner Name (string) or Owner Name (null) (Owner Name)
Phone Number (string) or Phone Number (null) (Phone Number)
Reason (string) or Reason (null) (Reason)
is_active
boolean (Is Active)
Default: true
Valid From (string) or Valid From (null) (Valid From)
Valid Until (string) or Valid Until (null) (Valid Until)

Responses

Request samples

Content type
application/json
{
  • "vehicle_number": "string",
  • "owner_name": "string",
  • "phone_number": "string",
  • "reason": "string",
  • "is_active": true,
  • "valid_from": "2019-08-24T14:15:22Z",
  • "valid_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
null

Update Pass Vehicle

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
pass_id
required
integer (Pass Id)
Request Body schema: application/json
required
Owner Name (string) or Owner Name (null) (Owner Name)
Phone Number (string) or Phone Number (null) (Phone Number)
Reason (string) or Reason (null) (Reason)
Is Active (boolean) or Is Active (null) (Is Active)
Valid From (string) or Valid From (null) (Valid From)
Valid Until (string) or Valid Until (null) (Valid Until)

Responses

Request samples

Content type
application/json
{
  • "owner_name": "string",
  • "phone_number": "string",
  • "reason": "string",
  • "is_active": true,
  • "valid_from": "2019-08-24T14:15:22Z",
  • "valid_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
null

Delete Pass Vehicle

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
pass_id
required
integer (Pass Id)

Responses

Response samples

Content type
application/json
null

List Entry Logs

Authorizations:
OAuth2PasswordBearer
path Parameters
site_id
required
string (Site Id)
pass_id
required
integer (Pass Id)
query Parameters
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
null

admin-approval

Approval Context

승인 UI가 1회 호출로 필요한 모든 데이터를 받을 수 있도록 집계.

이 스켈레톤은 다음을 제공한다:

  • 예약 기본 정보
  • 사이트 캐파 (활성 주차면 수)
  • 장기 점유(overstay) 차량 수
  • 타겟 시간대의 동시 활성 예약 수 + 승인 전/후 이용률
  • 사용자 과거 이력 (총 / 노쇼 / 취소 / 완료)
  • 정책 체크 (booking window, blackout)
  • 리스크 스코어 + 권장 액션

풀 구현(§12.3.1) 과의 차이 (TODO):

  • hourly_timeline (시간대별 점유 히트맵)
  • 로봇 가용성 — 별도 API 통합 필요
  • 중복 승인 softlock — Redis 도입 후 추가
Authorizations:
OAuth2PasswordBearer
path Parameters
reservation_id
required
integer (Reservation Id)

Responses

Response samples

Content type
application/json
null

robots

Get Robot

로봇 상세 정보 조회 (사이트명, 모델 정보 포함).

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
null

Create Robot

로봇 출하 등록. Master 전용. 시리얼 번호 자동 생성.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
model_id
required
string (Model Id)
hw_release_id
required
string (Hw Release Id)
wifi_mac
required
string (Wifi Mac)
Lte Mac (string) or Lte Mac (null) (Lte Mac)
Name (string) or Name (null) (Name)
initial_site_id
required
string (Initial Site Id)
Hw Version (string) or Hw Version (null) (Hw Version)
Sw Version (string) or Sw Version (null) (Sw Version)
Manufactured At (string) or Manufactured At (null) (Manufactured At)
generate_auth_token
boolean (Generate Auth Token)
Default: true

Responses

Request samples

Content type
application/json
{
  • "model_id": "string",
  • "hw_release_id": "string",
  • "wifi_mac": "string",
  • "lte_mac": "string",
  • "name": "string",
  • "initial_site_id": "string",
  • "hw_version": "string",
  • "sw_version": "string",
  • "manufactured_at": "2019-08-24",
  • "generate_auth_token": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "serial_number": "string",
  • "wifi_mac": "string",
  • "lte_mac": "string",
  • "part_number": "string",
  • "model_name": "string",
  • "status": "string",
  • "current_site_id": "string",
  • "home_site_id": "string",
  • "auth_token": "string",
  • "provisioning_data": { },
  • "created_at": "2019-08-24T14:15:22Z"
}

Move Robot

로봇 사이트 이동. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)
Request Body schema: application/json
required
movement_type
required
string (Movement Type)
Enum: "relocation" "repair_send" "repair_return" "decommission"
To Site Id (string) or To Site Id (null) (To Site Id)
reason
required
string (Reason)
Notes (string) or Notes (null) (Notes)

Responses

Request samples

Content type
application/json
{
  • "movement_type": "relocation",
  • "to_site_id": "string",
  • "reason": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "movement_id": "string",
  • "robot_id": "string",
  • "serial_number": "string",
  • "from_site_id": "string",
  • "from_site_name": "string",
  • "to_site_id": "string",
  • "to_site_name": "string",
  • "movement_type": "string",
  • "previous_status": "string",
  • "new_status": "string",
  • "moved_at": "2019-08-24T14:15:22Z"
}

List Movements

로봇 이동 이력 조회. 전 역할 접근 가능 (사이트 범위 자동 적용).

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)
query Parameters
Movement Type (string) or Movement Type (null) (Movement Type)
Date From (string) or Date From (null) (Date From)
Date To (string) or Date To (null) (Date To)
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 0,
  • "size": 0
}

Verify Token

SMS 인증 토큰 검증. 공개 엔드포인트 (API Key 인증은 별도 미들웨어).

Request Body schema: application/json
required
serial_number
required
string (Serial Number)
auth_token
required
string (Auth Token)
mac_address
required
string (Mac Address)

Responses

Request samples

Content type
application/json
{
  • "serial_number": "string",
  • "auth_token": "string",
  • "mac_address": "string"
}

Response samples

Content type
application/json
{
  • "valid": true,
  • "robot_id": "string",
  • "serial_number": "string",
  • "model_name": "string",
  • "site_id": "string",
  • "site_code": "string",
  • "mac_updated": false
}

Regenerate Token

인증 토큰 재발급. Master 전용. 평문 토큰 1회 반환.

Authorizations:
OAuth2PasswordBearer
path Parameters
robot_id
required
string (Robot Id)

Responses

Response samples

Content type
application/json
{
  • "robot_id": "string",
  • "serial_number": "string",
  • "auth_token": "string"
}

Import Robots

CSV 파일로 로봇 일괄 등록. Master 전용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

CSV 파일

Responses

Response samples

Content type
application/json
null

maintenance

Get Maintenance

정비 요청 상세 조회.

Authorizations:
OAuth2PasswordBearer
path Parameters
maintenance_id
required
string (Maintenance Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "robot_id": "string",
  • "robot_name": "string",
  • "robot_serial_number": "string",
  • "maintenance_type": "string",
  • "status": "string",
  • "priority": "string",
  • "description": "string",
  • "notes": "string",
  • "request_site": "string",
  • "requester_id": "string",
  • "requester_name": "string",
  • "assigned_technician_id": "string",
  • "assigned_technician_name": "string",
  • "repair_details": { },
  • "request_date": "2019-08-24T14:15:22Z",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Maintenance

정비 요청 수정 (상태, 메모, 배정 기술자 등).

Authorizations:
OAuth2PasswordBearer
path Parameters
maintenance_id
required
string (Maintenance Id)
Request Body schema: application/json
required
Status (string) or Status (null) (Status)
Priority (string) or Priority (null) (Priority)
Notes (string) or Notes (null) (Notes)
Assigned Technician Id (string) or Assigned Technician Id (null) (Assigned Technician Id)
Description (string) or Description (null) (Description)

Responses

Request samples

Content type
application/json
{
  • "status": "string",
  • "priority": "string",
  • "notes": "string",
  • "assigned_technician_id": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "string",
  • "priority": "string",
  • "notes": "string",
  • "assigned_technician_id": "string",
  • "description": "string",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Repair Log

수리 이력 기록. Master 또는 본인 배정 Technician.

Authorizations:
OAuth2PasswordBearer
path Parameters
maintenance_id
required
string (Maintenance Id)
Request Body schema: application/json
required
work_description
required
string (Work Description)
Array of Replaced Parts (objects) or Replaced Parts (null) (Replaced Parts)
Default: []
Duration Minutes (integer) or Duration Minutes (null) (Duration Minutes)
result
required
string (Result)
Enum: "completed" "partial" "failed"
Root Cause (string) or Root Cause (null) (Root Cause)

Responses

Request samples

Content type
application/json
{
  • "work_description": "string",
  • "replaced_parts": [ ],
  • "duration_minutes": 0,
  • "result": "completed",
  • "root_cause": "string"
}

Response samples

Content type
application/json
{
  • "maintenance_id": "string",
  • "status": "string",
  • "repair_details": { },
  • "updated_at": "2019-08-24T14:15:22Z"
}

users

Sync Cognito Users

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
null

List Users

Authorizations:
OAuth2PasswordBearer
query Parameters
Search (string) or Search (null) (Search)

이름 또는 이메일 검색

Role (string) or Role (null) (Role)

역할 필터

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 0,
  • "size": 0
}

Create User

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
username
required
string (Username)
email
required
string (Email)
password
required
string (Password)
role
string (Role)
Default: "viewer"
Family Name (string) or Family Name (null) (Family Name)
Given Name (string) or Given Name (null) (Given Name)
Phone Number (string) or Phone Number (null) (Phone Number)
Array of Accessible Sites (strings) or Accessible Sites (null) (Accessible Sites)
has_all_sites_access
boolean (Has All Sites Access)
Default: false

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "email": "string",
  • "password": "string",
  • "role": "viewer",
  • "family_name": "string",
  • "given_name": "string",
  • "phone_number": "string",
  • "accessible_sites": [
    ],
  • "has_all_sites_access": false
}

Response samples

Content type
application/json
null

Get User

Authorizations:
OAuth2PasswordBearer
path Parameters
user_id
required
string (User Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "email": "string",
  • "family_name": "string",
  • "given_name": "string",
  • "name": "string",
  • "phone_number": "string",
  • "role": "string",
  • "is_active": true,
  • "has_all_sites_access": false,
  • "accessible_sites": [
    ],
  • "notification_settings": { },
  • "last_login": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update User

Authorizations:
OAuth2PasswordBearer
path Parameters
user_id
required
string (User Id)
Request Body schema: application/json
required
Role (string) or Role (null) (Role)
Is Active (boolean) or Is Active (null) (Is Active)
Array of Accessible Sites (strings) or Accessible Sites (null) (Accessible Sites)
Has All Sites Access (boolean) or Has All Sites Access (null) (Has All Sites Access)

Responses

Request samples

Content type
application/json
{
  • "role": "string",
  • "is_active": true,
  • "accessible_sites": [
    ],
  • "has_all_sites_access": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "role": "string",
  • "is_active": true,
  • "has_all_sites_access": true,
  • "accessible_sites": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete User

Authorizations:
OAuth2PasswordBearer
path Parameters
user_id
required
string (User Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Reset User Password

Authorizations:
OAuth2PasswordBearer
path Parameters
user_id
required
string (User Id)
Request Body schema: application/json
required
new_password
required
string (New Password)

Responses

Request samples

Content type
application/json
{
  • "new_password": "string"
}

Response samples

Content type
application/json
null

products

List Products

제품 모델 목록 조회 (HW 릴리즈 포함).

Authorizations:
OAuth2PasswordBearer

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create Product

제품 모델 생성. Master 전용.

Authorizations:
OAuth2PasswordBearer
Request Body schema: application/json
required
code
required
string (Code)
name
required
string (Name)
Description (string) or Description (null) (Description)
is_active
boolean (Is Active)
Default: true
Mvp Specs (object) or Mvp Specs (null) (Mvp Specs)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "is_active": true,
  • "mvp_specs": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "is_active": true,
  • "mvp_specs": { },
  • "created_at": "2019-08-24T14:15:22Z"
}

Get Product

제품 모델 상세 조회.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "is_active": true,
  • "mvp_specs": { },
  • "releases": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Product

제품 모델 수정. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)
Request Body schema: application/json
required
Code (string) or Code (null) (Code)
Name (string) or Name (null) (Name)
Description (string) or Description (null) (Description)
Is Active (boolean) or Is Active (null) (Is Active)
Mvp Specs (object) or Mvp Specs (null) (Mvp Specs)

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "is_active": true,
  • "mvp_specs": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "is_active": true,
  • "mvp_specs": { },
  • "releases": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Product

제품 모델 삭제. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Create Release

HW 릴리즈 추가. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)
Request Body schema: application/json
required
Part Number (string) or Part Number (null) (Part Number)
Release Number (string) or Release Number (null) (Release Number)
Mvp Version (integer) or Mvp Version (null) (Mvp Version)
Unit Prefix (string) or Unit Prefix (null) (Unit Prefix)
Release Date (string) or Release Date (null) (Release Date)
Latest Sw Version (string) or Latest Sw Version (null) (Latest Sw Version)
Description (string) or Description (null) (Description)
Spec Dimensions (object) or Spec Dimensions (null) (Spec Dimensions)
Spec Weight (object) or Spec Weight (null) (Spec Weight)
Spec Performance (object) or Spec Performance (null) (Spec Performance)
Spec Battery (object) or Spec Battery (null) (Spec Battery)
Spec Sensors (object) or Spec Sensors (null) (Spec Sensors)
Spec Motor (object) or Spec Motor (null) (Spec Motor)
Spec Communication (object) or Spec Communication (null) (Spec Communication)
Spec Environment (object) or Spec Environment (null) (Spec Environment)
Spec Etc (object) or Spec Etc (null) (Spec Etc)

Responses

Request samples

Content type
application/json
{
  • "part_number": "string",
  • "release_number": "string",
  • "mvp_version": 0,
  • "unit_prefix": "string",
  • "release_date": "2019-08-24",
  • "latest_sw_version": "string",
  • "description": "string",
  • "spec_dimensions": { },
  • "spec_weight": { },
  • "spec_performance": { },
  • "spec_battery": { },
  • "spec_sensors": { },
  • "spec_motor": { },
  • "spec_communication": { },
  • "spec_environment": { },
  • "spec_etc": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "part_number": "string",
  • "release_number": "string",
  • "mvp_version": 0,
  • "unit_prefix": "string",
  • "release_date": "2019-08-24",
  • "latest_sw_version": "string",
  • "description": "string",
  • "spec_dimensions": { },
  • "spec_weight": { },
  • "spec_performance": { },
  • "spec_battery": { },
  • "spec_sensors": { },
  • "spec_motor": { },
  • "spec_communication": { },
  • "spec_environment": { },
  • "spec_etc": { },
  • "created_at": "2019-08-24T14:15:22Z"
}

Update Release

HW 릴리즈 수정. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)
release_id
required
string (Release Id)
Request Body schema: application/json
required
Part Number (string) or Part Number (null) (Part Number)
Release Number (string) or Release Number (null) (Release Number)
Mvp Version (integer) or Mvp Version (null) (Mvp Version)
Unit Prefix (string) or Unit Prefix (null) (Unit Prefix)
Release Date (string) or Release Date (null) (Release Date)
Latest Sw Version (string) or Latest Sw Version (null) (Latest Sw Version)
Description (string) or Description (null) (Description)
Spec Dimensions (object) or Spec Dimensions (null) (Spec Dimensions)
Spec Weight (object) or Spec Weight (null) (Spec Weight)
Spec Performance (object) or Spec Performance (null) (Spec Performance)
Spec Battery (object) or Spec Battery (null) (Spec Battery)
Spec Sensors (object) or Spec Sensors (null) (Spec Sensors)
Spec Motor (object) or Spec Motor (null) (Spec Motor)
Spec Communication (object) or Spec Communication (null) (Spec Communication)
Spec Environment (object) or Spec Environment (null) (Spec Environment)
Spec Etc (object) or Spec Etc (null) (Spec Etc)

Responses

Request samples

Content type
application/json
{
  • "part_number": "string",
  • "release_number": "string",
  • "mvp_version": 0,
  • "unit_prefix": "string",
  • "release_date": "2019-08-24",
  • "latest_sw_version": "string",
  • "description": "string",
  • "spec_dimensions": { },
  • "spec_weight": { },
  • "spec_performance": { },
  • "spec_battery": { },
  • "spec_sensors": { },
  • "spec_motor": { },
  • "spec_communication": { },
  • "spec_environment": { },
  • "spec_etc": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "part_number": "string",
  • "release_number": "string",
  • "mvp_version": 0,
  • "unit_prefix": "string",
  • "release_date": "2019-08-24",
  • "latest_sw_version": "string",
  • "description": "string",
  • "spec_dimensions": { },
  • "spec_weight": { },
  • "spec_performance": { },
  • "spec_battery": { },
  • "spec_sensors": { },
  • "spec_motor": { },
  • "spec_communication": { },
  • "spec_environment": { },
  • "spec_etc": { },
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete Release

HW 릴리즈 삭제. Master 전용.

Authorizations:
OAuth2PasswordBearer
path Parameters
product_id
required
string (Product Id)
release_id
required
string (Release Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Metrics

Endpoint that serves Prometheus metrics.

Responses

Response samples

Content type
application/json
null

Health Check

Responses

Response samples

Content type
application/json
null