{"openapi":"3.2.0","info":{"title":"Hostel Management API","description":"Hostel booking, payments and operations API","version":"1.0.0"},"servers":[{"url":"https://hostel-management.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"auth"},{"name":"bookings"},{"name":"inventory"},{"name":"notifications"},{"name":"operations"},{"name":"organizations"},{"name":"payments"},{"name":"properties"},{"name":"reviews"}],"x-agent-commerce":{"catalog_url":"https://hostel-management.jojapi.net/_jojapi/agent/plans","discovery_url":"https://hostel-management.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/hostel-management","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/api/v1/auth/email/verification/":{"post":{"operationId":"post_api_v1_auth_email_verification","summary":"POST /api/v1/auth/email/verification/","description":"Create or perform auth email verification.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/email/verification/confirm/":{"post":{"operationId":"post_api_v1_auth_email_verification_confirm","summary":"POST /api/v1/auth/email/verification/confirm/","description":"Create or perform auth email verification confirm.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/logout/":{"post":{"operationId":"post_api_v1_auth_logout","summary":"POST /api/v1/auth/logout/","description":"Create or perform auth logout.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/me/":{"get":{"operationId":"get_api_v1_auth_me","summary":"GET /api/v1/auth/me/","description":"Retrieve auth me.","tags":["auth"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"email":{"type":"string","format":"email","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32},"is_email_verified":{"type":"boolean","readOnly":true},"date_joined":{"type":"string","format":"date-time","readOnly":true}},"required":["date_joined","email","id","is_email_verified"]}}}}}},"put":{"operationId":"put_api_v1_auth_me","summary":"PUT /api/v1/auth/me/","description":"Update auth me.","tags":["auth"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"email":{"type":"string","format":"email","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32},"is_email_verified":{"type":"boolean","readOnly":true},"date_joined":{"type":"string","format":"date-time","readOnly":true}},"required":["date_joined","email","id","is_email_verified"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32}}},"example":{}}}}},"patch":{"operationId":"patch_api_v1_auth_me","summary":"PATCH /api/v1/auth/me/","description":"Partially update auth me.","tags":["auth"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"email":{"type":"string","format":"email","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32},"is_email_verified":{"type":"boolean","readOnly":true},"date_joined":{"type":"string","format":"date-time","readOnly":true}},"required":["date_joined","email","id","is_email_verified"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32}}},"example":{}}}}}},"/api/v1/auth/password/change/":{"post":{"operationId":"post_api_v1_auth_password_change","summary":"POST /api/v1/auth/password/change/","description":"Create or perform auth password change.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/password/reset/":{"post":{"operationId":"post_api_v1_auth_password_reset","summary":"POST /api/v1/auth/password/reset/","description":"Create or perform auth password reset.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/password/reset/confirm/":{"post":{"operationId":"post_api_v1_auth_password_reset_confirm","summary":"POST /api/v1/auth/password/reset/confirm/","description":"Create or perform auth password reset confirm.","tags":["auth"],"responses":{"200":{"description":"No response body"}}}},"/api/v1/auth/register/":{"post":{"operationId":"post_api_v1_auth_register","summary":"POST /api/v1/auth/register/","description":"Create or perform auth register.","tags":["auth"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"email":{"type":"string","format":"email","maxLength":254},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32}},"required":["email","id"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","minLength":1,"maxLength":254},"password":{"type":"string","writeOnly":true,"minLength":10},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"phone_number":{"type":"string","maxLength":32}},"required":["email","password"]},"example":{}}}}}},"/api/v1/auth/token/":{"post":{"operationId":"post_api_v1_auth_token","summary":"POST /api/v1/auth/token/","description":"Takes a set of user credentials and returns an access and refresh JSON web\ntoken pair to prove the authentication of those credentials.","tags":["auth"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"access":{"type":"string","readOnly":true},"refresh":{"type":"string","readOnly":true}},"required":["access","refresh"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","writeOnly":true,"minLength":1},"password":{"type":"string","writeOnly":true,"minLength":1}},"required":["email","password"]},"example":{}}}}}},"/api/v1/auth/token/refresh/":{"post":{"operationId":"post_api_v1_auth_token_refresh","summary":"POST /api/v1/auth/token/refresh/","description":"Takes a refresh type JSON web token and returns an access type JSON web\ntoken if the refresh token is valid.","tags":["auth"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"access":{"type":"string","readOnly":true},"refresh":{"type":"string"}},"required":["access","refresh"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"refresh":{"type":"string","minLength":1}},"required":["refresh"]},"example":{}}}}}},"/api/v1/bookings/":{"get":{"operationId":"get_api_v1_bookings","summary":"GET /api/v1/bookings/","description":"List bookings.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_bookings","summary":"POST /api/v1/bookings/","description":"Create or perform bookings.","tags":["bookings"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"rate_plan":{"type":"string","format":"uuid"},"check_in":{"type":"string","format":"date"},"check_out":{"type":"string","format":"date"},"unit_count":{"type":"integer","maximum":20,"minimum":1,"default":1,"description":"Number of sellable inventory units to book: rooms for ROOM inventory or beds for BED inventory."},"idempotency_key":{"type":"string","maxLength":80},"guest_email":{"type":"string","format":"email"},"guest_first_name":{"type":"string","maxLength":100},"guest_last_name":{"type":"string","maxLength":100},"guest_phone":{"type":"string","maxLength":32},"adults":{"type":"integer","maximum":100,"minimum":1,"default":1},"children":{"type":"integer","maximum":100,"minimum":0,"default":0},"special_requests":{"type":"string","maxLength":4000}},"required":["check_in","check_out","guest_email","guest_first_name","guest_last_name","idempotency_key","rate_plan"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rate_plan":{"type":"string","format":"uuid"},"check_in":{"type":"string","format":"date"},"check_out":{"type":"string","format":"date"},"unit_count":{"type":"integer","maximum":20,"minimum":1,"default":1,"description":"Number of sellable inventory units to book: rooms for ROOM inventory or beds for BED inventory."},"idempotency_key":{"type":"string","minLength":1,"maxLength":80},"guest_email":{"type":"string","format":"email","minLength":1},"guest_first_name":{"type":"string","minLength":1,"maxLength":100},"guest_last_name":{"type":"string","minLength":1,"maxLength":100},"guest_phone":{"type":"string","maxLength":32},"adults":{"type":"integer","maximum":100,"minimum":1,"default":1},"children":{"type":"integer","maximum":100,"minimum":0,"default":0},"special_requests":{"type":"string","maxLength":4000}},"required":["check_in","check_out","guest_email","guest_first_name","guest_last_name","idempotency_key","rate_plan"]},"example":{}}}}}},"/api/v1/bookings/{id}/":{"get":{"operationId":"get_api_v1_bookings_id","summary":"GET /api/v1/bookings/{id}/","description":"Retrieve bookings.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_bookings_id","summary":"PUT /api/v1/bookings/{id}/","description":"Update bookings.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"operationId":"patch_api_v1_bookings_id","summary":"PATCH /api/v1/bookings/{id}/","description":"Partially update bookings.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"operationId":"delete_api_v1_bookings_id","summary":"DELETE /api/v1/bookings/{id}/","description":"Delete bookings.","tags":["bookings"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/bookings/{id}/cancel/":{"post":{"operationId":"post_api_v1_bookings_id_cancel","summary":"POST /api/v1/bookings/{id}/cancel/","description":"Create or perform bookings cancel.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/bookings/{id}/check-in/":{"post":{"operationId":"post_api_v1_bookings_id_check_in","summary":"POST /api/v1/bookings/{id}/check-in/","description":"Create or perform bookings check in.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/bookings/{id}/check-out/":{"post":{"operationId":"post_api_v1_bookings_id_check_out","summary":"POST /api/v1/bookings/{id}/check-out/","description":"Create or perform bookings check out.","tags":["bookings"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid","readOnly":true},"booked_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"status":{"enum":["HOLD","CONFIRMED","CHECKED_IN","CHECKED_OUT","CANCELLED","EXPIRED","NO_SHOW"],"type":"string","description":"* `HOLD` - Hold\n* `CONFIRMED` - Confirmed\n* `CHECKED_IN` - Checked in\n* `CHECKED_OUT` - Checked out\n* `CANCELLED` - Cancelled\n* `EXPIRED` - Expired\n* `NO_SHOW` - No show","x-spec-enum-id":"ce29eb1261dc68ea","readOnly":true},"check_in":{"type":"string","format":"date","readOnly":true},"check_out":{"type":"string","format":"date","readOnly":true},"nights":{"type":"integer","readOnly":true},"unit_count":{"type":"string","readOnly":true},"total_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"hold_expires_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"guest_email":{"type":"string","format":"email","readOnly":true},"guest_first_name":{"type":"string","readOnly":true},"guest_last_name":{"type":"string","readOnly":true},"guest_phone":{"type":"string","readOnly":true},"adults":{"type":"integer","readOnly":true},"children":{"type":"integer","readOnly":true},"special_requests":{"type":"string","readOnly":true},"cancelled_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"cancellation_reason":{"type":"string","readOnly":true},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"rate_plan":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"unit_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"total_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"}},"required":["id","rate_plan","room_type","total_price","unit_price"]},"readOnly":true},"guests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"phone":{"type":"string","maxLength":32},"is_primary":{"type":"boolean"}},"required":["first_name","id","last_name"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["adults","allocations","booked_by","cancellation_reason","cancelled_at","check_in","check_out","children","created_at","currency","guest_email","guest_first_name","guest_last_name","guest_phone","guests","hold_expires_at","id","nights","organization","property","special_requests","status","total_amount","unit_count","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/bookings/availability/":{"get":{"operationId":"get_api_v1_bookings_availability","summary":"GET /api/v1/bookings/availability/","description":"Retrieve bookings availability.","tags":["bookings"],"responses":{"200":{"description":"No response body"}},"parameters":[{"name":"check_in","in":"query","description":"Check-in date in YYYY-MM-DD format.","required":true,"schema":{"type":"string","format":"date"}},{"name":"check_out","in":"query","description":"Check-out date in YYYY-MM-DD format. Must be after check_in.","required":true,"schema":{"type":"string","format":"date"}},{"name":"rate_plan","in":"query","description":"UUID of an active rate plan.","required":true,"schema":{"type":"string"}},{"name":"unit_count","in":"query","description":"Number of sellable inventory units requested: rooms for ROOM inventory or beds for BED inventory. Defaults to 1 and must be between 1 and 20.","required":false,"schema":{"type":"integer","default":1}}]}},"/api/v1/inventory/beds/":{"get":{"operationId":"get_api_v1_inventory_beds","summary":"GET /api/v1/inventory/beds/","description":"List inventory beds.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"label":{"type":"string","maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["created_at","id","label","room","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"room","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","required":false,"schema":{"type":"string","enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"]}}]},"post":{"operationId":"post_api_v1_inventory_beds","summary":"POST /api/v1/inventory/beds/","description":"Create or perform inventory beds.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"label":{"type":"string","maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["created_at","id","label","room","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["label","room"]},"example":{}}}}}},"/api/v1/inventory/beds/{id}/":{"get":{"operationId":"get_api_v1_inventory_beds_id","summary":"GET /api/v1/inventory/beds/{id}/","description":"Retrieve inventory beds.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"label":{"type":"string","maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["created_at","id","label","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this bed.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_beds_id","summary":"PUT /api/v1/inventory/beds/{id}/","description":"Update inventory beds.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"label":{"type":"string","maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["created_at","id","label","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this bed.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["label","room"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_beds_id","summary":"PATCH /api/v1/inventory/beds/{id}/","description":"Partially update inventory beds.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"label":{"type":"string","maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}},"required":["created_at","id","label","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this bed.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":64},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"room":{"type":"string","format":"uuid"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_beds_id","summary":"DELETE /api/v1/inventory/beds/{id}/","description":"Delete inventory beds.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this bed.","required":true,"schema":{"type":"string"}}]}},"/api/v1/inventory/blocks/":{"get":{"operationId":"get_api_v1_inventory_blocks","summary":"GET /api/v1/inventory/blocks/","description":"List inventory blocks.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","end_date","id","property","reason","start_date","updated_at"]}}}}}}}},"parameters":[{"name":"bed","in":"query","required":false,"schema":{"type":"string"}},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"room","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_inventory_blocks","summary":"POST /api/v1/inventory/blocks/","description":"Create or perform inventory blocks.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","end_date","id","property","reason","start_date","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","minLength":1,"maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["end_date","property","reason","start_date"]},"example":{}}}}}},"/api/v1/inventory/blocks/{id}/":{"get":{"operationId":"get_api_v1_inventory_blocks_id","summary":"GET /api/v1/inventory/blocks/{id}/","description":"Retrieve inventory blocks.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","end_date","id","property","reason","start_date","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this inventory block.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_blocks_id","summary":"PUT /api/v1/inventory/blocks/{id}/","description":"Update inventory blocks.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","end_date","id","property","reason","start_date","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this inventory block.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","minLength":1,"maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["end_date","property","reason","start_date"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_blocks_id","summary":"PATCH /api/v1/inventory/blocks/{id}/","description":"Partially update inventory blocks.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","end_date","id","property","reason","start_date","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this inventory block.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"reason":{"type":"string","minLength":1,"maxLength":180},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_blocks_id","summary":"DELETE /api/v1/inventory/blocks/{id}/","description":"Delete inventory blocks.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this inventory block.","required":true,"schema":{"type":"string"}}]}},"/api/v1/inventory/rate-overrides/":{"get":{"operationId":"get_api_v1_inventory_rate_overrides","summary":"GET /api/v1/inventory/rate-overrides/","description":"List inventory rate overrides.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["created_at","date","id","rate_plan","updated_at"]}}}}}}}},"parameters":[{"name":"closed","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"rate_plan","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_inventory_rate_overrides","summary":"POST /api/v1/inventory/rate-overrides/","description":"Create or perform inventory rate overrides.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["created_at","date","id","rate_plan","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["date","rate_plan"]},"example":{}}}}}},"/api/v1/inventory/rate-overrides/{id}/":{"get":{"operationId":"get_api_v1_inventory_rate_overrides_id","summary":"GET /api/v1/inventory/rate-overrides/{id}/","description":"Retrieve inventory rate overrides.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["created_at","date","id","rate_plan","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate override.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_rate_overrides_id","summary":"PUT /api/v1/inventory/rate-overrides/{id}/","description":"Update inventory rate overrides.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["created_at","date","id","rate_plan","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate override.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["date","rate_plan"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_rate_overrides_id","summary":"PATCH /api/v1/inventory/rate-overrides/{id}/","description":"Partially update inventory rate overrides.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}},"required":["created_at","date","id","rate_plan","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate override.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date"},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","nullable":true},"closed":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64","nullable":true},"rate_plan":{"type":"string","format":"uuid"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_rate_overrides_id","summary":"DELETE /api/v1/inventory/rate-overrides/{id}/","description":"Delete inventory rate overrides.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate override.","required":true,"schema":{"type":"string"}}]}},"/api/v1/inventory/rate-plans/":{"get":{"operationId":"get_api_v1_inventory_rate_plans","summary":"GET /api/v1/inventory/rate-plans/","description":"List inventory rate plans.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["base_rate","code","created_at","id","name","property_id","room_type","updated_at"]}}}}}}}},"parameters":[{"name":"currency","in":"query","required":false,"schema":{"type":"string"}},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"room_type","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_inventory_rate_plans","summary":"POST /api/v1/inventory/rate-plans/","description":"Create or perform inventory rate plans.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["base_rate","code","created_at","id","name","property_id","room_type","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"room_type":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"}},"required":["base_rate","code","name","room_type"]},"example":{}}}}}},"/api/v1/inventory/rate-plans/{id}/":{"get":{"operationId":"get_api_v1_inventory_rate_plans_id","summary":"GET /api/v1/inventory/rate-plans/{id}/","description":"Retrieve inventory rate plans.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["base_rate","code","created_at","id","name","property_id","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate plan.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_rate_plans_id","summary":"PUT /api/v1/inventory/rate-plans/{id}/","description":"Update inventory rate plans.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["base_rate","code","created_at","id","name","property_id","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate plan.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"room_type":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"}},"required":["base_rate","code","name","room_type"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_rate_plans_id","summary":"PATCH /api/v1/inventory/rate-plans/{id}/","description":"Partially update inventory rate plans.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"room_type":{"type":"string","format":"uuid"},"property_id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["base_rate","code","created_at","id","name","property_id","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate plan.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"room_type":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"base_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"refundable":{"type":"boolean"},"min_stay":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"max_stay":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64","nullable":true},"is_active":{"type":"boolean"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_rate_plans_id","summary":"DELETE /api/v1/inventory/rate-plans/{id}/","description":"Delete inventory rate plans.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this rate plan.","required":true,"schema":{"type":"string"}}]}},"/api/v1/inventory/room-types/":{"get":{"operationId":"get_api_v1_inventory_room_types","summary":"GET /api/v1/inventory/room-types/","description":"List inventory room types.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","created_at","id","name","property","updated_at"]}}}}}}}},"parameters":[{"name":"inventory_mode","in":"query","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","required":false,"schema":{"type":"string","enum":["BED","ROOM"]}},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_inventory_room_types","summary":"POST /api/v1/inventory/room-types/","description":"Create or perform inventory room types.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","created_at","id","name","property","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","name","property"]},"example":{}}}}}},"/api/v1/inventory/room-types/{id}/":{"get":{"operationId":"get_api_v1_inventory_room_types_id","summary":"GET /api/v1/inventory/room-types/{id}/","description":"Retrieve inventory room types.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","created_at","id","name","property","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room type.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_room_types_id","summary":"PUT /api/v1/inventory/room-types/{id}/","description":"Update inventory room types.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","created_at","id","name","property","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room type.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","name","property"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_room_types_id","summary":"PATCH /api/v1/inventory/room-types/{id}/","description":"Partially update inventory room types.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}},"required":["base_price","code","created_at","id","name","property","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room type.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","minLength":1,"maxLength":140},"description":{"type":"string"},"inventory_mode":{"enum":["ROOM","BED"],"type":"string","description":"* `ROOM` - Whole room\n* `BED` - Individual bed","x-spec-enum-id":"2bfbf00b47ce4a9e"},"max_occupancy":{"type":"integer","maximum":9223372036854776000,"minimum":1,"format":"int64"},"base_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$"},"currency":{"type":"string","minLength":1,"maxLength":3},"is_active":{"type":"boolean"},"property":{"type":"string","format":"uuid"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_room_types_id","summary":"DELETE /api/v1/inventory/room-types/{id}/","description":"Delete inventory room types.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room type.","required":true,"schema":{"type":"string"}}]}},"/api/v1/inventory/rooms/":{"get":{"operationId":"get_api_v1_inventory_rooms","summary":"GET /api/v1/inventory/rooms/","description":"List inventory rooms.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"number":{"type":"string","maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["created_at","id","number","property","room_type","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"room_type","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","required":false,"schema":{"type":"string","enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"]}}]},"post":{"operationId":"post_api_v1_inventory_rooms","summary":"POST /api/v1/inventory/rooms/","description":"Create or perform inventory rooms.","tags":["inventory"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"number":{"type":"string","maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["created_at","id","number","property","room_type","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["number","property","room_type"]},"example":{}}}}}},"/api/v1/inventory/rooms/{id}/":{"get":{"operationId":"get_api_v1_inventory_rooms_id","summary":"GET /api/v1/inventory/rooms/{id}/","description":"Retrieve inventory rooms.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"number":{"type":"string","maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["created_at","id","number","property","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_inventory_rooms_id","summary":"PUT /api/v1/inventory/rooms/{id}/","description":"Update inventory rooms.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"number":{"type":"string","maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["created_at","id","number","property","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["number","property","room_type"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_inventory_rooms_id","summary":"PATCH /api/v1/inventory/rooms/{id}/","description":"Partially update inventory rooms.","tags":["inventory"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"number":{"type":"string","maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}},"required":["created_at","id","number","property","room_type","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":64},"floor":{"type":"string","maxLength":32},"status":{"enum":["ACTIVE","OUT_OF_SERVICE","RETIRED"],"type":"string","description":"* `ACTIVE` - Active\n* `OUT_OF_SERVICE` - Out of service\n* `RETIRED` - Retired","x-spec-enum-id":"9ac031ecdb105548"},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room_type":{"type":"string","format":"uuid"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_inventory_rooms_id","summary":"DELETE /api/v1/inventory/rooms/{id}/","description":"Delete inventory rooms.","tags":["inventory"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this room.","required":true,"schema":{"type":"string"}}]}},"/api/v1/notifications/":{"get":{"operationId":"get_api_v1_notifications","summary":"GET /api/v1/notifications/","description":"List notifications.","tags":["notifications"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"channel":{"enum":["IN_APP","EMAIL"],"type":"string","description":"* `IN_APP` - In-app\n* `EMAIL` - Email","x-spec-enum-id":"24a92944f3ee9827","readOnly":true},"template":{"type":"string","readOnly":true},"subject":{"type":"string","readOnly":true},"body":{"type":"string","readOnly":true},"data":{"readOnly":true},"status":{"enum":["QUEUED","SENT","FAILED"],"type":"string","description":"* `QUEUED` - Queued\n* `SENT` - Sent\n* `FAILED` - Failed","x-spec-enum-id":"20d56ea0deb1b24c","readOnly":true},"scheduled_for":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"sent_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"read_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["body","channel","created_at","data","id","organization","read_at","scheduled_for","sent_at","status","subject","template"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]}},"/api/v1/notifications/{id}/":{"get":{"operationId":"get_api_v1_notifications_id","summary":"GET /api/v1/notifications/{id}/","description":"Retrieve notifications.","tags":["notifications"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"channel":{"enum":["IN_APP","EMAIL"],"type":"string","description":"* `IN_APP` - In-app\n* `EMAIL` - Email","x-spec-enum-id":"24a92944f3ee9827","readOnly":true},"template":{"type":"string","readOnly":true},"subject":{"type":"string","readOnly":true},"body":{"type":"string","readOnly":true},"data":{"readOnly":true},"status":{"enum":["QUEUED","SENT","FAILED"],"type":"string","description":"* `QUEUED` - Queued\n* `SENT` - Sent\n* `FAILED` - Failed","x-spec-enum-id":"20d56ea0deb1b24c","readOnly":true},"scheduled_for":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"sent_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"read_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["body","channel","created_at","data","id","organization","read_at","scheduled_for","sent_at","status","subject","template"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/notifications/{id}/read/":{"post":{"operationId":"post_api_v1_notifications_id_read","summary":"POST /api/v1/notifications/{id}/read/","description":"Create or perform notifications read.","tags":["notifications"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"channel":{"enum":["IN_APP","EMAIL"],"type":"string","description":"* `IN_APP` - In-app\n* `EMAIL` - Email","x-spec-enum-id":"24a92944f3ee9827","readOnly":true},"template":{"type":"string","readOnly":true},"subject":{"type":"string","readOnly":true},"body":{"type":"string","readOnly":true},"data":{"readOnly":true},"status":{"enum":["QUEUED","SENT","FAILED"],"type":"string","description":"* `QUEUED` - Queued\n* `SENT` - Sent\n* `FAILED` - Failed","x-spec-enum-id":"20d56ea0deb1b24c","readOnly":true},"scheduled_for":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"sent_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"read_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["body","channel","created_at","data","id","organization","read_at","scheduled_for","sent_at","status","subject","template"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/notifications/read-all/":{"post":{"operationId":"post_api_v1_notifications_read_all","summary":"POST /api/v1/notifications/read-all/","description":"Create or perform notifications read all.","tags":["notifications"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"channel":{"enum":["IN_APP","EMAIL"],"type":"string","description":"* `IN_APP` - In-app\n* `EMAIL` - Email","x-spec-enum-id":"24a92944f3ee9827","readOnly":true},"template":{"type":"string","readOnly":true},"subject":{"type":"string","readOnly":true},"body":{"type":"string","readOnly":true},"data":{"readOnly":true},"status":{"enum":["QUEUED","SENT","FAILED"],"type":"string","description":"* `QUEUED` - Queued\n* `SENT` - Sent\n* `FAILED` - Failed","x-spec-enum-id":"20d56ea0deb1b24c","readOnly":true},"scheduled_for":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"sent_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"read_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["body","channel","created_at","data","id","organization","read_at","scheduled_for","sent_at","status","subject","template"]}}}}}}},"/api/v1/operations/housekeeping/":{"get":{"operationId":"get_api_v1_operations_housekeeping","summary":"GET /api/v1/operations/housekeeping/","description":"List operations housekeeping.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}}}}},"parameters":[{"name":"assigned_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","required":false,"schema":{"type":"string","enum":["CLEANING","INSPECTION","LINEN","TURNOVER"]}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"priority","in":"query","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","required":false,"schema":{"type":"string","enum":["HIGH","LOW","NORMAL","URGENT"]}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"room","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","required":false,"schema":{"type":"string","enum":["CANCELLED","DONE","IN_PROGRESS","OPEN"]}}]},"post":{"operationId":"post_api_v1_operations_housekeeping","summary":"POST /api/v1/operations/housekeeping/","description":"Create or perform operations housekeeping.","tags":["operations"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["property","room"]},"example":{}}}}}},"/api/v1/operations/housekeeping/{id}/":{"get":{"operationId":"get_api_v1_operations_housekeeping_id","summary":"GET /api/v1/operations/housekeeping/{id}/","description":"Retrieve operations housekeeping.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this housekeeping task.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_operations_housekeeping_id","summary":"PUT /api/v1/operations/housekeeping/{id}/","description":"Update operations housekeeping.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this housekeeping task.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["property","room"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_operations_housekeeping_id","summary":"PATCH /api/v1/operations/housekeeping/{id}/","description":"Partially update operations housekeeping.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this housekeeping task.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_operations_housekeeping_id","summary":"DELETE /api/v1/operations/housekeeping/{id}/","description":"Delete operations housekeeping.","tags":["operations"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this housekeeping task.","required":true,"schema":{"type":"string"}}]}},"/api/v1/operations/housekeeping/{id}/complete/":{"post":{"operationId":"post_api_v1_operations_housekeeping_id_complete","summary":"POST /api/v1/operations/housekeeping/{id}/complete/","description":"Create or perform operations housekeeping complete.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"completed_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["completed_at","created_at","id","property","room","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this housekeeping task.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"enum":["CLEANING","INSPECTION","LINEN","TURNOVER"],"type":"string","description":"* `CLEANING` - Cleaning\n* `INSPECTION` - Inspection\n* `LINEN` - Linen\n* `TURNOVER` - Turnover","x-spec-enum-id":"daada24ae48c37e1"},"status":{"enum":["OPEN","IN_PROGRESS","DONE","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `DONE` - Done\n* `CANCELLED` - Cancelled","x-spec-enum-id":"972fa1634bd8a9aa"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"due_at":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid"},"booking":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["property","room"]},"example":{}}}}}},"/api/v1/operations/maintenance/":{"get":{"operationId":"get_api_v1_operations_maintenance","summary":"GET /api/v1/operations/maintenance/","description":"List operations maintenance.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}}}}},"parameters":[{"name":"assigned_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"bed","in":"query","required":false,"schema":{"type":"string"}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"priority","in":"query","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","required":false,"schema":{"type":"string","enum":["HIGH","LOW","NORMAL","URGENT"]}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"room","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","required":false,"schema":{"type":"string","enum":["CANCELLED","IN_PROGRESS","OPEN","RESOLVED"]}}]},"post":{"operationId":"post_api_v1_operations_maintenance","summary":"POST /api/v1/operations/maintenance/","description":"Create or perform operations maintenance.","tags":["operations"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":180},"description":{"type":"string","minLength":1},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["description","property","title"]},"example":{}}}}}},"/api/v1/operations/maintenance/{id}/":{"get":{"operationId":"get_api_v1_operations_maintenance_id","summary":"GET /api/v1/operations/maintenance/{id}/","description":"Retrieve operations maintenance.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this maintenance request.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_operations_maintenance_id","summary":"PUT /api/v1/operations/maintenance/{id}/","description":"Update operations maintenance.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this maintenance request.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":180},"description":{"type":"string","minLength":1},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["description","property","title"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_operations_maintenance_id","summary":"PATCH /api/v1/operations/maintenance/{id}/","description":"Partially update operations maintenance.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this maintenance request.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":180},"description":{"type":"string","minLength":1},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_operations_maintenance_id","summary":"DELETE /api/v1/operations/maintenance/{id}/","description":"Delete operations maintenance.","tags":["operations"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this maintenance request.","required":true,"schema":{"type":"string"}}]}},"/api/v1/operations/maintenance/{id}/resolve/":{"post":{"operationId":"post_api_v1_operations_maintenance_id_resolve","summary":"POST /api/v1/operations/maintenance/{id}/resolve/","description":"Create or perform operations maintenance resolve.","tags":["operations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"title":{"type":"string","maxLength":180},"description":{"type":"string"},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"resolved_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"reported_by":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["created_at","description","id","property","reported_by","resolved_at","title","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this maintenance request.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":180},"description":{"type":"string","minLength":1},"status":{"enum":["OPEN","IN_PROGRESS","RESOLVED","CANCELLED"],"type":"string","description":"* `OPEN` - Open\n* `IN_PROGRESS` - In progress\n* `RESOLVED` - Resolved\n* `CANCELLED` - Cancelled","x-spec-enum-id":"cef427ba54fcf9f9"},"priority":{"enum":["LOW","NORMAL","HIGH","URGENT"],"type":"string","description":"* `LOW` - Low\n* `NORMAL` - Normal\n* `HIGH` - High\n* `URGENT` - Urgent","x-spec-enum-id":"0ffc5d7e9878ba58"},"resolution":{"type":"string"},"property":{"type":"string","format":"uuid"},"room":{"type":"string","format":"uuid","nullable":true},"bed":{"type":"string","format":"uuid","nullable":true},"assigned_to":{"type":"string","format":"uuid","nullable":true}},"required":["description","property","title"]},"example":{}}}}}},"/api/v1/organizations/":{"get":{"operationId":"get_api_v1_organizations","summary":"GET /api/v1/organizations/","description":"List organizations.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_organizations","summary":"POST /api/v1/organizations/","description":"Create or perform organizations.","tags":["organizations"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":1,"maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"default_currency":{"type":"string","minLength":1,"maxLength":3},"timezone":{"type":"string","minLength":1,"maxLength":64}},"required":["name","slug"]},"example":{}}}}}},"/api/v1/organizations/{id}/":{"get":{"operationId":"get_api_v1_organizations_id","summary":"GET /api/v1/organizations/{id}/","description":"Retrieve organizations.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_organizations_id","summary":"PUT /api/v1/organizations/{id}/","description":"Update organizations.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":1,"maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"default_currency":{"type":"string","minLength":1,"maxLength":3},"timezone":{"type":"string","minLength":1,"maxLength":64}},"required":["name","slug"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_organizations_id","summary":"PATCH /api/v1/organizations/{id}/","description":"Partially update organizations.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":1,"maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"default_currency":{"type":"string","minLength":1,"maxLength":3},"timezone":{"type":"string","minLength":1,"maxLength":64}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_organizations_id","summary":"DELETE /api/v1/organizations/{id}/","description":"Delete organizations.","tags":["organizations"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/organizations/{id}/members/":{"get":{"operationId":"get_api_v1_organizations_id_members","summary":"GET /api/v1/organizations/{id}/members/","description":"Retrieve organizations members.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_organizations_id_members","summary":"POST /api/v1/organizations/{id}/members/","description":"Create or perform organizations members.","tags":["organizations"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":160},"slug":{"type":"string","maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"status":{"enum":["ACTIVE","SUSPENDED"],"type":"string","description":"* `ACTIVE` - Active\n* `SUSPENDED` - Suspended","x-spec-enum-id":"2ecf6233b698d1a6","readOnly":true},"default_currency":{"type":"string","maxLength":3},"timezone":{"type":"string","maxLength":64},"my_role":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","my_role","name","slug","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":1,"maxLength":170,"pattern":"^[-a-zA-Z0-9_]+$"},"default_currency":{"type":"string","minLength":1,"maxLength":3},"timezone":{"type":"string","minLength":1,"maxLength":64}},"required":["name","slug"]},"example":{}}}}}},"/api/v1/payments/":{"get":{"operationId":"get_api_v1_payments","summary":"GET /api/v1/payments/","description":"List payments.","tags":["payments"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid","readOnly":true},"provider_account":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"provider":{"type":"string","readOnly":true},"provider_reference":{"type":"string","readOnly":true},"status":{"enum":["PENDING","REQUIRES_ACTION","SUCCEEDED","FAILED","CANCELLED","PARTIALLY_REFUNDED","REFUNDED"],"type":"string","description":"* `PENDING` - Pending\n* `REQUIRES_ACTION` - Requires action\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed\n* `CANCELLED` - Cancelled\n* `PARTIALLY_REFUNDED` - Partially refunded\n* `REFUNDED` - Refunded","x-spec-enum-id":"03e6ff013998bbed","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"captured_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refunded_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refundable_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"metadata":{"readOnly":true},"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"kind":{"enum":["AUTHORIZE","CAPTURE","REFUND","VOID"],"type":"string","description":"* `AUTHORIZE` - Authorize\n* `CAPTURE` - Capture\n* `REFUND` - Refund\n* `VOID` - Void","x-spec-enum-id":"d33a0fed1dd4491c","readOnly":true},"status":{"enum":["PENDING","SUCCEEDED","FAILED"],"type":"string","description":"* `PENDING` - Pending\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed","x-spec-enum-id":"d0a8199f26b02615","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"provider_transaction_id":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","created_at","id","kind","provider_transaction_id","status"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","booking","captured_amount","created_at","currency","id","metadata","provider","provider_account","provider_reference","refundable_amount","refunded_amount","status","transactions","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_payments","summary":"POST /api/v1/payments/","description":"Create or perform payments.","tags":["payments"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"type":"string","format":"uuid"},"provider":{"type":"string","default":"manual","maxLength":64},"idempotency_key":{"type":"string","maxLength":80}},"required":["booking","idempotency_key"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"type":"string","format":"uuid"},"provider":{"type":"string","minLength":1,"default":"manual","maxLength":64},"idempotency_key":{"type":"string","minLength":1,"maxLength":80}},"required":["booking","idempotency_key"]},"example":{}}}}}},"/api/v1/payments/{id}/":{"get":{"operationId":"get_api_v1_payments_id","summary":"GET /api/v1/payments/{id}/","description":"Retrieve payments.","tags":["payments"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid","readOnly":true},"provider_account":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"provider":{"type":"string","readOnly":true},"provider_reference":{"type":"string","readOnly":true},"status":{"enum":["PENDING","REQUIRES_ACTION","SUCCEEDED","FAILED","CANCELLED","PARTIALLY_REFUNDED","REFUNDED"],"type":"string","description":"* `PENDING` - Pending\n* `REQUIRES_ACTION` - Requires action\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed\n* `CANCELLED` - Cancelled\n* `PARTIALLY_REFUNDED` - Partially refunded\n* `REFUNDED` - Refunded","x-spec-enum-id":"03e6ff013998bbed","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"captured_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refunded_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refundable_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"metadata":{"readOnly":true},"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"kind":{"enum":["AUTHORIZE","CAPTURE","REFUND","VOID"],"type":"string","description":"* `AUTHORIZE` - Authorize\n* `CAPTURE` - Capture\n* `REFUND` - Refund\n* `VOID` - Void","x-spec-enum-id":"d33a0fed1dd4491c","readOnly":true},"status":{"enum":["PENDING","SUCCEEDED","FAILED"],"type":"string","description":"* `PENDING` - Pending\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed","x-spec-enum-id":"d0a8199f26b02615","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"provider_transaction_id":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","created_at","id","kind","provider_transaction_id","status"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","booking","captured_amount","created_at","currency","id","metadata","provider","provider_account","provider_reference","refundable_amount","refunded_amount","status","transactions","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/payments/{id}/capture/":{"post":{"operationId":"post_api_v1_payments_id_capture","summary":"POST /api/v1/payments/{id}/capture/","description":"Create or perform payments capture.","tags":["payments"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid","readOnly":true},"provider_account":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"provider":{"type":"string","readOnly":true},"provider_reference":{"type":"string","readOnly":true},"status":{"enum":["PENDING","REQUIRES_ACTION","SUCCEEDED","FAILED","CANCELLED","PARTIALLY_REFUNDED","REFUNDED"],"type":"string","description":"* `PENDING` - Pending\n* `REQUIRES_ACTION` - Requires action\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed\n* `CANCELLED` - Cancelled\n* `PARTIALLY_REFUNDED` - Partially refunded\n* `REFUNDED` - Refunded","x-spec-enum-id":"03e6ff013998bbed","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"captured_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refunded_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refundable_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"metadata":{"readOnly":true},"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"kind":{"enum":["AUTHORIZE","CAPTURE","REFUND","VOID"],"type":"string","description":"* `AUTHORIZE` - Authorize\n* `CAPTURE` - Capture\n* `REFUND` - Refund\n* `VOID` - Void","x-spec-enum-id":"d33a0fed1dd4491c","readOnly":true},"status":{"enum":["PENDING","SUCCEEDED","FAILED"],"type":"string","description":"* `PENDING` - Pending\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed","x-spec-enum-id":"d0a8199f26b02615","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"provider_transaction_id":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","created_at","id","kind","provider_transaction_id","status"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","booking","captured_amount","created_at","currency","id","metadata","provider","provider_account","provider_reference","refundable_amount","refunded_amount","status","transactions","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/payments/{id}/complete/":{"post":{"operationId":"post_api_v1_payments_id_complete","summary":"POST /api/v1/payments/{id}/complete/","description":"Create or perform payments complete.","tags":["payments"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid","readOnly":true},"provider_account":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"provider":{"type":"string","readOnly":true},"provider_reference":{"type":"string","readOnly":true},"status":{"enum":["PENDING","REQUIRES_ACTION","SUCCEEDED","FAILED","CANCELLED","PARTIALLY_REFUNDED","REFUNDED"],"type":"string","description":"* `PENDING` - Pending\n* `REQUIRES_ACTION` - Requires action\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed\n* `CANCELLED` - Cancelled\n* `PARTIALLY_REFUNDED` - Partially refunded\n* `REFUNDED` - Refunded","x-spec-enum-id":"03e6ff013998bbed","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"captured_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refunded_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refundable_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"metadata":{"readOnly":true},"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"kind":{"enum":["AUTHORIZE","CAPTURE","REFUND","VOID"],"type":"string","description":"* `AUTHORIZE` - Authorize\n* `CAPTURE` - Capture\n* `REFUND` - Refund\n* `VOID` - Void","x-spec-enum-id":"d33a0fed1dd4491c","readOnly":true},"status":{"enum":["PENDING","SUCCEEDED","FAILED"],"type":"string","description":"* `PENDING` - Pending\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed","x-spec-enum-id":"d0a8199f26b02615","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"provider_transaction_id":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","created_at","id","kind","provider_transaction_id","status"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","booking","captured_amount","created_at","currency","id","metadata","provider","provider_account","provider_reference","refundable_amount","refunded_amount","status","transactions","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/payments/{id}/refund/":{"post":{"operationId":"post_api_v1_payments_id_refund","summary":"POST /api/v1/payments/{id}/refund/","description":"Create or perform payments refund.","tags":["payments"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid","readOnly":true},"provider_account":{"type":"string","format":"uuid","readOnly":true,"nullable":true},"provider":{"type":"string","readOnly":true},"provider_reference":{"type":"string","readOnly":true},"status":{"enum":["PENDING","REQUIRES_ACTION","SUCCEEDED","FAILED","CANCELLED","PARTIALLY_REFUNDED","REFUNDED"],"type":"string","description":"* `PENDING` - Pending\n* `REQUIRES_ACTION` - Requires action\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed\n* `CANCELLED` - Cancelled\n* `PARTIALLY_REFUNDED` - Partially refunded\n* `REFUNDED` - Refunded","x-spec-enum-id":"03e6ff013998bbed","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"currency":{"type":"string","readOnly":true},"captured_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refunded_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"refundable_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"metadata":{"readOnly":true},"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"kind":{"enum":["AUTHORIZE","CAPTURE","REFUND","VOID"],"type":"string","description":"* `AUTHORIZE` - Authorize\n* `CAPTURE` - Capture\n* `REFUND` - Refund\n* `VOID` - Void","x-spec-enum-id":"d33a0fed1dd4491c","readOnly":true},"status":{"enum":["PENDING","SUCCEEDED","FAILED"],"type":"string","description":"* `PENDING` - Pending\n* `SUCCEEDED` - Succeeded\n* `FAILED` - Failed","x-spec-enum-id":"d0a8199f26b02615","readOnly":true},"amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,10}(?:\\.\\d{0,2})?$","readOnly":true},"provider_transaction_id":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","created_at","id","kind","provider_transaction_id","status"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["amount","booking","captured_amount","created_at","currency","id","metadata","provider","provider_account","provider_reference","refundable_amount","refunded_amount","status","transactions","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/properties/":{"get":{"operationId":"get_api_v1_properties","summary":"GET /api/v1/properties/","description":"List properties.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":180},"slug":{"type":"string","maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","maxLength":64},"currency":{"type":"string","maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]},"readOnly":true},"images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["address_line1","amenities","city","country_code","created_at","id","images","name","organization","slug","updated_at"]}}}}}}}},"parameters":[{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","required":false,"schema":{"type":"string","enum":["APARTMENT","DORMITORY","GUESTHOUSE","HOSTEL","HOTEL"]}},{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"organization","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"region","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","required":false,"schema":{"type":"string","enum":["ACTIVE","DRAFT","INACTIVE","SUSPENDED"]}}]},"post":{"operationId":"post_api_v1_properties","summary":"POST /api/v1/properties/","description":"Create or perform properties.","tags":["properties"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":180},"slug":{"type":"string","maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","maxLength":64},"currency":{"type":"string","maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]},"readOnly":true},"images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["address_line1","amenities","city","country_code","created_at","id","images","name","organization","slug","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":180},"slug":{"type":"string","minLength":1,"maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","minLength":1,"maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","minLength":1,"maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","minLength":1,"maxLength":64},"currency":{"type":"string","minLength":1,"maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenity_ids":{"type":"array","items":{"type":"string","format":"uuid","writeOnly":true},"writeOnly":true}},"required":["address_line1","city","country_code","name","organization","slug"]},"example":{}}}}}},"/api/v1/properties/{id}/":{"get":{"operationId":"get_api_v1_properties_id","summary":"GET /api/v1/properties/{id}/","description":"Retrieve properties.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":180},"slug":{"type":"string","maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","maxLength":64},"currency":{"type":"string","maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]},"readOnly":true},"images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["address_line1","amenities","city","country_code","created_at","id","images","name","organization","slug","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_properties_id","summary":"PUT /api/v1/properties/{id}/","description":"Update properties.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":180},"slug":{"type":"string","maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","maxLength":64},"currency":{"type":"string","maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]},"readOnly":true},"images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["address_line1","amenities","city","country_code","created_at","id","images","name","organization","slug","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":180},"slug":{"type":"string","minLength":1,"maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","minLength":1,"maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","minLength":1,"maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","minLength":1,"maxLength":64},"currency":{"type":"string","minLength":1,"maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenity_ids":{"type":"array","items":{"type":"string","format":"uuid","writeOnly":true},"writeOnly":true}},"required":["address_line1","city","country_code","name","organization","slug"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_properties_id","summary":"PATCH /api/v1/properties/{id}/","description":"Partially update properties.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"organization":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":180},"slug":{"type":"string","maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","maxLength":64},"currency":{"type":"string","maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]},"readOnly":true},"images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["address_line1","amenities","city","country_code","created_at","id","images","name","organization","slug","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":180},"slug":{"type":"string","minLength":1,"maxLength":190,"pattern":"^[-a-zA-Z0-9_]+$"},"kind":{"enum":["HOSTEL","DORMITORY","GUESTHOUSE","HOTEL","APARTMENT"],"type":"string","description":"* `HOSTEL` - Hostel\n* `DORMITORY` - Dormitory\n* `GUESTHOUSE` - Guesthouse\n* `HOTEL` - Hotel\n* `APARTMENT` - Apartment","x-spec-enum-id":"7e81bab20c4f9cce"},"status":{"enum":["DRAFT","ACTIVE","INACTIVE","SUSPENDED"],"type":"string","description":"* `DRAFT` - Draft\n* `ACTIVE` - Active\n* `INACTIVE` - Inactive\n* `SUSPENDED` - Suspended","x-spec-enum-id":"880cdc078d3936ee"},"description":{"type":"string"},"address_line1":{"type":"string","minLength":1,"maxLength":200},"address_line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":120},"country_code":{"type":"string","minLength":1,"maxLength":2},"postal_code":{"type":"string","maxLength":32},"latitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"longitude":{"type":"string","format":"decimal","pattern":"^-?\\d{0,3}(?:\\.\\d{0,6})?$","nullable":true},"timezone":{"type":"string","minLength":1,"maxLength":64},"currency":{"type":"string","minLength":1,"maxLength":3},"contact_email":{"oneOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","maxLength":0}]},"contact_phone":{"type":"string","maxLength":32},"check_in_time":{"type":"string","format":"time","nullable":true},"check_out_time":{"type":"string","format":"time","nullable":true},"min_guest_age":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"smoking_allowed":{"type":"boolean"},"pets_allowed":{"type":"boolean"},"terms":{"type":"string"},"amenity_ids":{"type":"array","items":{"type":"string","format":"uuid","writeOnly":true},"writeOnly":true}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_properties_id","summary":"DELETE /api/v1/properties/{id}/","description":"Delete properties.","tags":["properties"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property.","required":true,"schema":{"type":"string"}}]}},"/api/v1/properties/amenities/":{"get":{"operationId":"get_api_v1_properties_amenities","summary":"GET /api/v1/properties/amenities/","description":"List properties amenities.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]}},"/api/v1/properties/amenities/{id}/":{"get":{"operationId":"get_api_v1_properties_amenities_id","summary":"GET /api/v1/properties/amenities/{id}/","description":"Retrieve properties amenities.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"code":{"type":"string","maxLength":80,"pattern":"^[-a-zA-Z0-9_]+$"},"name":{"type":"string","maxLength":120},"category":{"enum":["GENERAL","ROOM","ACCESSIBILITY","SAFETY","SERVICES"],"type":"string","description":"* `GENERAL` - General\n* `ROOM` - Room\n* `ACCESSIBILITY` - Accessibility\n* `SAFETY` - Safety\n* `SERVICES` - Services","x-spec-enum-id":"e708b79c0fb2e81d"}},"required":["code","id","name"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this amenity.","required":true,"schema":{"type":"string"}}]}},"/api/v1/properties/images/":{"get":{"operationId":"get_api_v1_properties_images","summary":"GET /api/v1/properties/images/","description":"List properties images.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_properties_images","summary":"POST /api/v1/properties/images/","description":"Create or perform properties images.","tags":["properties"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","minLength":1,"maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"}},"required":["image_url","property"]},"example":{}}}}}},"/api/v1/properties/images/{id}/":{"get":{"operationId":"get_api_v1_properties_images_id","summary":"GET /api/v1/properties/images/{id}/","description":"Retrieve properties images.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property image.","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"put_api_v1_properties_images_id","summary":"PUT /api/v1/properties/images/{id}/","description":"Update properties images.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property image.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","minLength":1,"maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"}},"required":["image_url","property"]},"example":{}}}}},"patch":{"operationId":"patch_api_v1_properties_images_id","summary":"PATCH /api/v1/properties/images/{id}/","description":"Partially update properties images.","tags":["properties"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","image_url","property"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property image.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"property":{"type":"string","format":"uuid"},"image_url":{"type":"string","format":"uri","minLength":1,"maxLength":1000},"alt_text":{"type":"string","maxLength":180},"sort_order":{"type":"integer","maximum":9223372036854776000,"minimum":0,"format":"int64"},"is_cover":{"type":"boolean"}}},"example":{}}}}},"delete":{"operationId":"delete_api_v1_properties_images_id","summary":"DELETE /api/v1/properties/images/{id}/","description":"Delete properties images.","tags":["properties"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this property image.","required":true,"schema":{"type":"string"}}]}},"/api/v1/reviews/":{"get":{"operationId":"get_api_v1_reviews","summary":"GET /api/v1/reviews/","description":"List reviews.","tags":["reviews"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid"},"property":{"type":"string","format":"uuid","readOnly":true},"author":{"type":"string","format":"uuid","readOnly":true},"author_name":{"type":"string","readOnly":true},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"},"status":{"enum":["PUBLISHED","HIDDEN"],"type":"string","description":"* `PUBLISHED` - Published\n* `HIDDEN` - Hidden","x-spec-enum-id":"bd599e6050e2bb6b","readOnly":true},"response":{"type":"string","readOnly":true},"responded_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["author","author_name","booking","created_at","id","property","rating","responded_at","response","status","updated_at"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"property","in":"query","required":false,"schema":{"type":"string"}},{"name":"rating","in":"query","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_reviews","summary":"POST /api/v1/reviews/","description":"Create or perform reviews.","tags":["reviews"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid"},"property":{"type":"string","format":"uuid","readOnly":true},"author":{"type":"string","format":"uuid","readOnly":true},"author_name":{"type":"string","readOnly":true},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"},"status":{"enum":["PUBLISHED","HIDDEN"],"type":"string","description":"* `PUBLISHED` - Published\n* `HIDDEN` - Hidden","x-spec-enum-id":"bd599e6050e2bb6b","readOnly":true},"response":{"type":"string","readOnly":true},"responded_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["author","author_name","booking","created_at","id","property","rating","responded_at","response","status","updated_at"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"type":"string","format":"uuid"},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"}},"required":["booking","rating"]},"example":{}}}}}},"/api/v1/reviews/{id}/":{"get":{"operationId":"get_api_v1_reviews_id","summary":"GET /api/v1/reviews/{id}/","description":"Retrieve reviews.","tags":["reviews"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid"},"property":{"type":"string","format":"uuid","readOnly":true},"author":{"type":"string","format":"uuid","readOnly":true},"author_name":{"type":"string","readOnly":true},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"},"status":{"enum":["PUBLISHED","HIDDEN"],"type":"string","description":"* `PUBLISHED` - Published\n* `HIDDEN` - Hidden","x-spec-enum-id":"bd599e6050e2bb6b","readOnly":true},"response":{"type":"string","readOnly":true},"responded_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["author","author_name","booking","created_at","id","property","rating","responded_at","response","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this review.","required":true,"schema":{"type":"string"}}]}},"/api/v1/reviews/{id}/respond/":{"post":{"operationId":"post_api_v1_reviews_id_respond","summary":"POST /api/v1/reviews/{id}/respond/","description":"Create or perform reviews respond.","tags":["reviews"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"booking":{"type":"string","format":"uuid"},"property":{"type":"string","format":"uuid","readOnly":true},"author":{"type":"string","format":"uuid","readOnly":true},"author_name":{"type":"string","readOnly":true},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"},"status":{"enum":["PUBLISHED","HIDDEN"],"type":"string","description":"* `PUBLISHED` - Published\n* `HIDDEN` - Hidden","x-spec-enum-id":"bd599e6050e2bb6b","readOnly":true},"response":{"type":"string","readOnly":true},"responded_at":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["author","author_name","booking","created_at","id","property","rating","responded_at","response","status","updated_at"]}}}}},"parameters":[{"name":"id","in":"path","description":"A UUID string identifying this review.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"type":"string","format":"uuid"},"rating":{"type":"integer","maximum":5,"minimum":1},"title":{"type":"string","maxLength":160},"body":{"type":"string"}},"required":["booking","rating"]},"example":{}}}}}},"/api/v1/reviews/favorites/":{"get":{"operationId":"get_api_v1_reviews_favorites","summary":"GET /api/v1/reviews/favorites/","description":"List reviews favorites.","tags":["reviews"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=4"},"previous":{"type":"string","nullable":true,"format":"uri","example":"http://api.example.org/accounts/?page=2"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","property"]}}}}}}}},"parameters":[{"name":"ordering","in":"query","description":"Which field to use when ordering the results.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"A page number within the paginated result set.","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"A search term.","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"post_api_v1_reviews_favorites","summary":"POST /api/v1/reviews/favorites/","description":"Create or perform reviews favorites.","tags":["reviews"],"responses":{"201":{"description":"Response 201","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","property"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"property":{"type":"string","format":"uuid"}},"required":["property"]},"example":{}}}}}},"/api/v1/reviews/favorites/{id}/":{"get":{"operationId":"get_api_v1_reviews_favorites_id","summary":"GET /api/v1/reviews/favorites/{id}/","description":"Retrieve reviews favorites.","tags":["reviews"],"responses":{"200":{"description":"Response 200","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"property":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","property"]}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"operationId":"delete_api_v1_reviews_favorites_id","summary":"DELETE /api/v1/reviews/favorites/{id}/","description":"Delete reviews favorites.","tags":["reviews"],"responses":{"204":{"description":"No response body"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}