{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alto-vebra/json-schema/alto-vebra-viewing-request-schema.json",
  "title": "ViewingRequest",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alto-vebra-appointments-api-openapi.yml#/components/schemas/ViewingRequest",
  "required": [
    "applicantIds",
    "endDate",
    "negotiatorId",
    "propertyId",
    "startDate"
  ],
  "type": "object",
  "properties": {
    "negotiatorId": {
      "maximum": 2147483647,
      "minimum": 0,
      "type": "integer",
      "description": "Required: The unique identifer of the negotiator",
      "format": "int32"
    },
    "branchId": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Optional: The branch in which to record the viewing diary event.\nWhen omitted, defaults to the negotiator's default branch.",
      "format": "int32"
    },
    "applicantIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Required: The unique identifer of the applicant(s)"
    },
    "propertyId": {
      "maximum": 2147483647,
      "minimum": 0,
      "type": "integer",
      "description": "Required: The unique identifer of the property",
      "format": "int32"
    },
    "startDate": {
      "type": "string",
      "description": "Required: The start date and time in ISO 8601 format of the viewing appointment to be created.\nInterpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset\nis converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.",
      "format": "date-time"
    },
    "endDate": {
      "type": "string",
      "description": "Required: The end date and time in ISO 8601 format of the viewing appointment to be created.\nInterpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset\nis converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.",
      "format": "date-time"
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional: Additional notes to accompany the viewing appointment being created."
    },
    "isConfirmed": {
      "type": "boolean",
      "description": "Optional: Marks viewing as confirmed; this will NOT send out confirmation emails and texts\nDefault if not set: false"
    },
    "meetingPlaceType": {
      "enum": [
        "Unspecified",
        "AtTheOffice",
        "AtTheProperty"
      ],
      "type": "string",
      "description": "Optional: Sets where the negotiator will meet for the viewing;\nDefault if not set: AtTheProperty"
    }
  },
  "additionalProperties": false
}