{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/airbnb/refs/heads/main/json-schema/airbnb-listing-update-schema.json",
  "title": "ListingUpdate",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The display name of the listing.",
      "maxLength": 50
    },
    "description": {
      "type": "string",
      "description": "The full description of the property.",
      "maxLength": 5000
    },
    "property_type": {
      "type": "string",
      "description": "The type of property being listed.",
      "enum": [
        "apartment",
        "house",
        "secondary_unit",
        "unique_space",
        "bed_and_breakfast",
        "boutique_hotel"
      ]
    },
    "room_type": {
      "type": "string",
      "description": "The type of room or space being offered.",
      "enum": [
        "entire_home",
        "private_room",
        "shared_room"
      ]
    },
    "bedrooms": {
      "type": "integer",
      "description": "The number of bedrooms in the property.",
      "minimum": 0
    },
    "bathrooms": {
      "type": "number",
      "description": "The number of bathrooms in the property.",
      "minimum": 0
    },
    "beds": {
      "type": "integer",
      "description": "The total number of beds in the property.",
      "minimum": 0
    },
    "max_guests": {
      "type": "integer",
      "description": "The maximum number of guests allowed.",
      "minimum": 1
    },
    "amenities": {
      "type": "array",
      "description": "The list of amenity identifiers available at the property.",
      "items": {
        "type": "string"
      }
    },
    "house_rules": {
      "type": "string",
      "description": "The house rules and guidelines for guests."
    },
    "check_in_time": {
      "type": "string",
      "description": "The earliest check-in time in HH:MM format.",
      "pattern": "^[0-2][0-9]:[0-5][0-9]$"
    },
    "check_out_time": {
      "type": "string",
      "description": "The latest check-out time in HH:MM format.",
      "pattern": "^[0-2][0-9]:[0-5][0-9]$"
    },
    "cancellation_policy": {
      "type": "string",
      "description": "The cancellation policy applied to the listing.",
      "enum": [
        "flexible",
        "moderate",
        "strict",
        "strict_14_with_grace_period",
        "super_strict_30",
        "super_strict_60"
      ]
    }
  }
}