{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hostfully/main/json-schema/hostfully-unit-type-api3-1-update-request-dto-schema.json",
  "title": "UnitTypeApi3_1UpdateRequestDto",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/hostfully-api-openapi.yml#/components/schemas/UnitTypeApi3_1UpdateRequestDto",
  "type": "object",
  "properties": {
    "agencyUid": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "propertyType": {
      "type": "string",
      "enum": [
        "HOUSE",
        "COTTAGE",
        "CONDO",
        "BEDANDBREAKFAST",
        "VILLA",
        "CHALET",
        "CABIN",
        "STUDIO",
        "ROOM",
        "APARTMENT",
        "HOTEL",
        "HOSTEL",
        "LODGE",
        "TOWNHOUSE",
        "DUPLEX",
        "TRIPLEX",
        "FOURPLEX",
        "BUNGALOW",
        "FARMHOUSE",
        "BOAT",
        "HOUSEBOAT",
        "RESORT",
        "PENTHOUSE",
        "CHATEAU",
        "GUESTHOUSE",
        "HOMESTAY",
        "CAMPGROUND",
        "MOTELROOM",
        "COUNTRYHOUSE",
        "LOFT",
        "DORM",
        "TREEHOUSE",
        "PLANE",
        "IGLOO",
        "RV",
        "LIGHTHOUSE",
        "YURT",
        "TIPI",
        "CAVE",
        "ISLAND",
        "EARTHHOUSE",
        "HUT",
        "TRAIN",
        "TENT",
        "SERVICED_APARTMENT",
        "TINY_HOUSE",
        "BOUTIQUE_HOTEL",
        "APARTHOTEL",
        "DOME_HOUSE",
        "CYCLADIC_HOUSE",
        "DAMMUSO",
        "GUEST_SUITE",
        "HERITAGE_HOTEL",
        "HOLIDAY_PARK",
        "KEZHAN",
        "MINSU",
        "PENSION",
        "RANCH",
        "RELIGIOUS_BUILDING",
        "RIAD",
        "RYOKAN",
        "SHEPHERDS_HUT",
        "SHIPPING_CONTAINER",
        "TOWER",
        "TRULLO",
        "BARN",
        "WINDMILL",
        "CASA_PARTICULAR",
        "SAMPLE",
        "HOLIDAY_HOME",
        "OTHER"
      ]
    },
    "listingType": {
      "type": "string",
      "enum": [
        "ENTIREHOME",
        "SHAREDROOM",
        "PRIVATEROOM",
        "HOTELROOM"
      ]
    },
    "roomType": {
      "type": "string",
      "enum": [
        "Apartment",
        "Single",
        "Studio",
        "Family",
        "Twin_Double",
        "Dormitory_room",
        "Bed_in_Dormitory",
        "Bungalow",
        "Chalet",
        "Holiday_home",
        "Villa",
        "Mobile_home",
        "Tent",
        "Quadruple",
        "Suite",
        "Triple",
        "Twin",
        "Double"
      ]
    },
    "businessType": {
      "type": "string",
      "enum": [
        "HOTEL",
        "UNIT_TYPE",
        "UNIT",
        "STANDALONE_PROPERTY",
        "SUB_UNIT"
      ]
    },
    "isActive": {
      "type": "boolean"
    },
    "pictureLink": {
      "type": "string"
    },
    "webLink": {
      "type": "string"
    },
    "bedrooms": {
      "type": "integer",
      "format": "int32"
    },
    "beds": {
      "type": "integer",
      "format": "int32"
    },
    "bathrooms": {
      "type": "string"
    },
    "numberOfFloors": {
      "type": "integer",
      "format": "int32"
    },
    "area": {
      "$ref": "#/$defs/AreaApiTO"
    },
    "rentalLicenseNumber": {
      "type": "string"
    },
    "rentalLicenseExpirationDate": {
      "type": "string",
      "format": "date"
    },
    "availability": {
      "$ref": "#/$defs/PropertyAvailabilitySettingApi3Dto"
    },
    "pricing": {
      "$ref": "#/$defs/PropertyPricingSettingApi3Dto"
    },
    "airbnbData": {
      "$ref": "#/$defs/PropertyAirbnbDataApi3Dto"
    },
    "bookingDotComData": {
      "$ref": "#/$defs/PropertyBookingDotComDataAddingApi3Dto"
    },
    "hvmiData": {
      "$ref": "#/$defs/PropertyHvmiDataApi3Dto"
    },
    "vrboData": {
      "$ref": "#/$defs/PropertyVrboDataApi3Dto"
    },
    "externalId": {
      "type": "string"
    },
    "accountingId": {
      "type": "string"
    },
    "showPropertyExactLocation": {
      "type": "boolean"
    },
    "agentUid": {
      "type": "string"
    },
    "wifiNetwork": {
      "type": "string"
    },
    "wifiPassword": {
      "type": "string"
    },
    "bookingNotes": {
      "type": "string"
    },
    "extraNotes": {
      "type": "string"
    },
    "ownerNotes": {
      "type": "string"
    },
    "cancellationPolicy": {
      "type": "string"
    },
    "useMinimumPriceRule": {
      "type": "boolean"
    },
    "integrationsData": {
      "$ref": "#/$defs/IntegrationsApi3DataDto"
    },
    "guideBookUrl": {
      "type": "string"
    },
    "guideBookRecsOnlyUrl": {
      "type": "string"
    }
  },
  "$defs": {
    "AreaApiTO": {
      "type": "object",
      "properties": {
        "size": {
          "type": "integer",
          "format": "int32"
        },
        "unitType": {
          "type": "string",
          "enum": [
            "SQUARE_METERS",
            "SQUARE_FEET"
          ]
        }
      }
    },
    "CheckInMethodDto": {
      "type": "object",
      "properties": {
        "checkinMethod": {
          "type": "string",
          "enum": [
            "reception",
            "someone_will_meet",
            "secret_spot",
            "door_code",
            "lock_box",
            "instruction_will_send",
            "instruction_contact_us",
            "other",
            "none"
          ]
        },
        "text": {
          "type": "string"
        },
        "brandName": {
          "type": "string"
        },
        "how": {
          "type": "string",
          "enum": [
            "phone",
            "email",
            "sms",
            "other"
          ]
        },
        "when": {
          "type": "string",
          "enum": [
            "immediate",
            "month_before",
            "week_before",
            "day_of_arrival"
          ]
        },
        "identifier": {
          "type": "string"
        }
      }
    },
    "CheckInMethodsDto": {
      "type": "object",
      "properties": {
        "propertyUid": {
          "type": "string"
        },
        "primary": {
          "$ref": "#/$defs/CheckInMethodDto"
        },
        "alternative": {
          "$ref": "#/$defs/CheckInMethodDto"
        }
      }
    },
    "IntegrationsApi3DataDto": {
      "type": "object",
      "properties": {
        "panoramicDataUrl": {
          "type": "string"
        }
      }
    },
    "PropertyAirbnbDataApi3Dto": {
      "type": "object",
      "properties": {
        "activeForAgency": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        },
        "airbnbId": {
          "type": "string"
        },
        "instantBookingGuestRequirement": {
          "type": "string",
          "enum": [
            "EVERYONE",
            "OFF",
            "WELL_REVIEWED_GUESTS"
          ]
        },
        "checkInOptionType": {
          "type": "string",
          "enum": [
            "doorman_entry",
            "lockbox",
            "smartlock",
            "keypad",
            "host_checkin",
            "other_checkin"
          ]
        },
        "cancellationPolicy": {
          "type": "string",
          "enum": [
            "flexible",
            "moderate",
            "better_strict_with_grace_period",
            "strict",
            "super_strict_30",
            "super_strict_60",
            "firm_14"
          ]
        },
        "eligibleForPassThroughTaxes": {
          "type": "boolean"
        },
        "allowBookingRequestAsFallback": {
          "type": "boolean"
        },
        "nonRefundableRateEnabled": {
          "type": "boolean"
        },
        "nonRefundableRateDiscount": {
          "type": "number"
        },
        "flexibleCheckIn": {
          "type": "boolean"
        }
      }
    },
    "PropertyAvailabilitySettingApi3Dto": {
      "required": [
        "baseGuests",
        "maxGuests"
      ],
      "type": "object",
      "properties": {
        "baseGuests": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "maxGuests": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "minimumStay": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "dayOfWeekMinimumStay": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int32"
          }
        },
        "maximumStay": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "minimumWeekendStay": {
          "type": "integer",
          "format": "int32"
        },
        "allowBookingRequestsAboveMaximumStay": {
          "type": "boolean"
        },
        "bookingWindow": {
          "type": "integer",
          "format": "int32"
        },
        "turnOverDays": {
          "type": "integer",
          "format": "int32"
        },
        "bookingLeadTime": {
          "type": "integer",
          "format": "int32"
        },
        "allowBookingRequestWhenOutOfLeadTime": {
          "type": "boolean"
        },
        "checkInTimeStart": {
          "type": "integer",
          "format": "int32"
        },
        "checkInTimeEnd": {
          "type": "integer",
          "format": "int32"
        },
        "checkInTimeEndFlexible": {
          "type": "boolean"
        },
        "checkOutTime": {
          "type": "integer",
          "format": "int32"
        },
        "daysOfTheWeekToCheckInOn": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "MONDAY",
              "TUESDAY",
              "WEDNESDAY",
              "THURSDAY",
              "FRIDAY",
              "SATURDAY",
              "SUNDAY"
            ]
          }
        },
        "hostfullyBookingStrategy": {
          "type": "string",
          "enum": [
            "BOOKING_INQUIRY",
            "BOOKING_REQUEST",
            "INSTANT_BOOKING"
          ]
        },
        "airbnbBookingStrategy": {
          "type": "string",
          "enum": [
            "BOOKING_INQUIRY",
            "BOOKING_REQUEST",
            "INSTANT_BOOKING"
          ]
        },
        "vrboBookingStrategy": {
          "type": "string",
          "enum": [
            "BOOKING_INQUIRY",
            "BOOKING_REQUEST",
            "INSTANT_BOOKING"
          ]
        },
        "bookingDotComBookingStrategy": {
          "type": "string",
          "enum": [
            "BOOKING_INQUIRY",
            "BOOKING_REQUEST",
            "INSTANT_BOOKING"
          ]
        }
      }
    },
    "PropertyBookingDotComDataAddingApi3Dto": {
      "type": "object",
      "properties": {
        "activeForAgency": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        },
        "roomName": {
          "type": "string"
        },
        "checkInMethods": {
          "$ref": "#/$defs/CheckInMethodsDto"
        },
        "contactEmployeeUid": {
          "type": "string"
        },
        "cancellationPolicyCode": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "PropertyHvmiDataApi3Dto": {
      "type": "object",
      "properties": {
        "activeForAgency": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        }
      }
    },
    "PropertyPricingSettingApi3Dto": {
      "required": [
        "dailyRate"
      ],
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "enum": [
            "USD",
            "EUR",
            "GBP",
            "CAD",
            "JPY",
            "INR",
            "MYR",
            "AUD",
            "KES",
            "MXN",
            "HKD",
            "NZD",
            "CHF",
            "BRL",
            "CLP",
            "COP",
            "PEN",
            "ARS",
            "UYU",
            "VEF",
            "CNY",
            "THB",
            "KRW",
            "IDR",
            "SGD",
            "TWD",
            "AED",
            "ZAR",
            "CZK",
            "DKK",
            "DOP",
            "SEK",
            "BGN",
            "ILS",
            "NOK",
            "RON",
            "RUB",
            "PHP",
            "VND",
            "HUF",
            "IKR",
            "PLN",
            "PYG",
            "TRY",
            "GTQ",
            "VUV",
            "JOD",
            "SAR",
            "EGP",
            "TTD",
            "MAD",
            "CVE",
            "BBD",
            "AWG",
            "BHD",
            "NONE"
          ]
        },
        "dailyRate": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "number"
        },
        "weekendAdjustmentRate": {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        "taxRate": {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        "ignoreTaxRateChargeOverXDays": {
          "type": "boolean"
        },
        "daysOverWhichTaxRateChargeShouldBeIgnored": {
          "type": "integer",
          "format": "int32"
        },
        "securityDeposit": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "number"
        },
        "cleaningFee": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "number"
        },
        "cleaningFeeTaxRate": {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        "extraGuestFee": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "number"
        },
        "percentageUponReservation": {
          "maximum": 2147483647,
          "minimum": 0,
          "type": "number"
        },
        "fullPaymentTiming": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "PropertyVrboDataApi3Dto": {
      "type": "object",
      "properties": {
        "activeForAgency": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        },
        "cancellationPolicy": {
          "type": "string",
          "enum": [
            "STRICT",
            "FIRM",
            "MODERATE",
            "RELAXED",
            "NO_REFUND",
            "CUSTOM"
          ]
        },
        "customPolicies": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/VrboCustomCancellationPolicyApiDto"
          }
        },
        "promotions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/VrboPromotionApiDto"
          }
        }
      }
    },
    "VrboCustomCancellationPolicyApiDto": {
      "type": "object",
      "properties": {
        "refundPercentage": {
          "type": "integer",
          "format": "int32"
        },
        "refundThreshold": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "VrboPromotionApiDto": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "format": "uuid"
        },
        "type": {
          "type": "string",
          "enum": [
            "MOBILE",
            "MEMBER_BLUE",
            "MEMBER_SILVER",
            "MEMBER_GOLD"
          ]
        },
        "percentage": {
          "type": "integer",
          "format": "int32"
        }
      }
    }
  }
}