{
  "openapi": "3.0.1",
  "info": {
    "title": "Loop API V2 Documentation",
    "description": "",
    "termsOfService": "https://example.com/terms",
    "contact": {
      "name": "Loop Support",
      "url": "https://www.loop.software",
      "email": "support@loop.software"
    },
    "version": "v2"
  },
  "paths": {
    "/customer/preferences/{personCode}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns preferences for the given person",
        "parameters": [
          {
            "name": "personCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An object representing their GDPR and communication preferences",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfCustomerPreferences"
                }
              }
            }
          },
          "204": {
            "description": "If none is found who matches the decoded personCode"
          },
          "401": {
            "description": "If the personCode code cannot be decoded or resolved to a valid customer"
          }
        }
      },
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Records customer preferences.  It will also add a note on their relevant files recording the event.",
        "parameters": [
          {
            "name": "personCode",
            "in": "path",
            "description": "The encoded",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The preferences to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPreferences"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPreferences"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPreferences"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If the personCode could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the update failed"
          }
        }
      }
    },
    "/feedback/residential/sales/viewings/{id}": {
      "get": {
        "tags": [
          "Feedback"
        ],
        "summary": "Returns viewing information for a sales viewing that has been set up for automated viewing feedback",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A feedback Object containg all the information about he viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfViewingFeedback"
                }
              }
            }
          },
          "204": {
            "description": "If none is found who matches the criteria"
          }
        }
      }
    },
    "/feedback/residential/sales/viewings/{id}/feedback": {
      "post": {
        "tags": [
          "Feedback"
        ],
        "summary": "Records buyer feedback text for the viewing.  If this is the first time that buyer feedback is recorded then the viewing will be advanced to status 'AwaitingSellerFeedback'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the update failed"
          }
        }
      }
    },
    "/feedback/residential/lettings/viewings/{id}": {
      "get": {
        "tags": [
          "Feedback"
        ],
        "summary": "Returns viewing information for a sales viewing that has been set up for automated viewing feedback",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A feedback Object containg all the information about he viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRentalViewingFeedback"
                }
              }
            }
          },
          "204": {
            "description": "If none is found who matches the criteria"
          }
        }
      }
    },
    "/feedback/residential/lettings/viewings/{id}/feedback": {
      "post": {
        "tags": [
          "Feedback"
        ],
        "summary": "Records renter feedback text for the viewing.  If this is the first time that renter feedback is recorded then the viewing will be advanced to status 'AwaitingLandlordFeedback'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the update failed"
          }
        }
      }
    },
    "/marketing/matching/{id}": {
      "get": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfMatchingProperty"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/rentals/matching/{id}": {
      "get": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRentalMatchingProperty"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/matching/other-matches": {
      "put": {
        "tags": [
          "Marketing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfMatchingPropertySummary"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/rentals/matching/other-matches": {
      "put": {
        "tags": [
          "Marketing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfRentalMatchingPropertySummary"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/matching/{id}/viewing": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/rentals/matching/{id}/viewing": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/matching/{id}/information": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/rentals/matching/{id}/information": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingInformationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/matching/{id}/callback": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/rentals/matching/{id}/callback": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MatchingCallbackRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/enquiries/seller": {
      "post": {
        "tags": [
          "Marketing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SellerEnquiryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SellerEnquiryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SellerEnquiryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/matching/{Id}/team-profile": {
      "get": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "Id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchingTeamDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/marketing/rentals/matching/{Id}/team-profile": {
      "get": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "Id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchingTeamDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/marketing/enquiries/auto-responder/{id}/{key}": {
      "get": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfEnquiryAutoResponderDetails"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/enquiries/auto-responder/{id}/answers/{key}": {
      "put": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnquiryAutoResponderAnswer"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnquiryAutoResponderAnswer"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnquiryAutoResponderAnswer"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/enquiries/auto-responder/{id}/details/{key}": {
      "put": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnquiryAutoResponderEnquiryDetails"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EnquiryAutoResponderEnquiryDetails"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EnquiryAutoResponderEnquiryDetails"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/marketing/enquiries/auto-responder/{id}/refer/{key}": {
      "put": {
        "tags": [
          "Marketing"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/people": {
      "get": {
        "tags": [
          "Person"
        ],
        "summary": "Returns a list of all people that match the search criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IsBuyer",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsSeller",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsRenter",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsLandlord",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "GDPRGeneralMarketing",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GDPRConsentType"
            }
          },
          {
            "name": "GDPRPropertyMatching",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GDPRConsentType"
            }
          },
          {
            "name": "GDPRThirdParties",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GDPRConsentType"
            }
          },
          {
            "name": "CommunicationCall",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CommunicationEmail",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CommunicationPost",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CommunicationText",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of people who match the search criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfPersonSummary"
                }
              }
            }
          },
          "204": {
            "description": "If none is found who matches the criteria"
          }
        }
      }
    },
    "/people/{id}": {
      "get": {
        "tags": [
          "Person"
        ],
        "summary": "Returns a summary object for the requested person",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested person",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the person",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfPerson"
                }
              }
            }
          },
          "204": {
            "description": "If no person with the given ID could be found or you do not have access to them"
          }
        }
      }
    },
    "/people/buyers": {
      "get": {
        "tags": [
          "Person"
        ],
        "summary": "Search for buyers against set criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MinBeds",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Position",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/BuyerGroupPosition"
            }
          },
          {
            "name": "SellingPosition",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/BuyerGroupSellingPosition"
            }
          },
          {
            "name": "PurchaseReason",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/BuyerGroupPurchaseReason"
            }
          },
          {
            "name": "FinanciallyVerified",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MortgageOffered",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/BuyerGroupMortgageOffered"
            }
          },
          {
            "name": "InsuranceOffered",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/BuyerInsuranceOffered"
            }
          },
          {
            "name": "HasAcceptedOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasFutureViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SearchAreas",
            "in": "query",
            "description": "A comma separated list of outcodes e.g. 'SN7,OX12'",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PropertyTypes",
            "in": "query",
            "description": "A comma separated list of property types. Available values: terraced, endOfTerrace, semiDetached, detached, mewsHouse, flat, maisonette, bungalow, townHouse, cottage, farmOrBarn, mobileOrStatic, land, studio, blockOfFlats, office, countryHouse, clusterHouse groundFloorFlat, terracedBungalow, semiDetachedBungalow, linkDetachedHouse, chalet, villa, apartment, penthouse, finca, barnConversion, servicedApartment, garage, shelteredHousing, retirement, houseShare, flatShare, equestrian, duplexFlat, triplexFlat, longere, gite, trulli, mill, restaurant, cafe, castle, plot, caravan, lodge, logCabin, manorHouse, statelyHome, offPlanLand, semiDetachedVilla, barNightclub, shop, riad, houseBoat, hotelRoom, privateHalls, commercialOffice, businessPark, servicedOffice, retailPropertyHighStreet, retailPropertyOutOfTown, convenienceStore, hairdresserBarberShop, hotel, petrolStation, postOffice, pub, workshopRetailSpace, distributionWarehouse, factory, heavyIndustrial, industrialPark, lightIndustrial, storage, showroom, warehouse, commercialLand, commercialDevelopment, industrialDevelopment, residentialDevelopment, commercialProperty, dataCentre, commercialFarm, healthcareFacility, marineProperty, mixedUse, researchDevelopmentFacility, sciencePark, guestHouse, hospitality, leisureFacility,parkHome, house, parking, barn, ruins, villageHouse, caveHouse, cortijo, stoneHouse, takeaway, childcareFacility, smallholding, placeOfWorship, tradeCounter, coachHouse, houseOfMultipleOccupation, sportsFacilities, spa, campsiteHolidayVillage, retailPropertyShoppingCentre, retailPropertyPark, retailPropertyPopUp, bungalow, characterProperty",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully found matching buyers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfBuyerSummary"
                }
              }
            }
          },
          "204": {
            "description": "No buyers were found that match the search criteria"
          }
        }
      }
    },
    "/people/buyers/{id}": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBuyer"
                }
              }
            }
          }
        }
      }
    },
    "/people/sellers": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PropertyStatus",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/LifecycleStatus"
            }
          },
          {
            "name": "PropertyType",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/PropertyType"
            }
          },
          {
            "name": "MinPrice",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HasAcceptedOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasFutureViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfSellerSummary"
                }
              }
            }
          }
        }
      }
    },
    "/people/sellers/{id}": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfSeller"
                }
              }
            }
          }
        }
      }
    },
    "/people/renters": {
      "get": {
        "tags": [
          "Person"
        ],
        "summary": "Search for renters against set criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MaxRent",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "float"
            }
          },
          {
            "name": "MinBeds",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HasTenancies",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTenanted",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasFutureViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasApplications",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SearchAreas",
            "in": "query",
            "description": "A comma separated list of outcodes e.g. 'SN7,OX12'",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PropertyTypes",
            "in": "query",
            "description": "A comma separated list of property types. Available values: terraced, endOfTerrace, semiDetached, detached, mewsHouse, flat, maisonette, bungalow, townHouse, cottage, farmOrBarn, mobileOrStatic, land, studio, blockOfFlats, office, countryHouse, clusterHouse groundFloorFlat, terracedBungalow, semiDetachedBungalow, linkDetachedHouse, chalet, villa, apartment, penthouse, finca, barnConversion, servicedApartment, garage, shelteredHousing, retirement, houseShare, flatShare, equestrian, duplexFlat, triplexFlat, longere, gite, trulli, mill, restaurant, cafe, castle, plot, caravan, lodge, logCabin, manorHouse, statelyHome, offPlanLand, semiDetachedVilla, barNightclub, shop, riad, houseBoat, hotelRoom, privateHalls, commercialOffice, businessPark, servicedOffice, retailPropertyHighStreet, retailPropertyOutOfTown, convenienceStore, hairdresserBarberShop, hotel, petrolStation, postOffice, pub, workshopRetailSpace, distributionWarehouse, factory, heavyIndustrial, industrialPark, lightIndustrial, storage, showroom, warehouse, commercialLand, commercialDevelopment, industrialDevelopment, residentialDevelopment, commercialProperty, dataCentre, commercialFarm, healthcareFacility, marineProperty, mixedUse, researchDevelopmentFacility, sciencePark, guestHouse, hospitality, leisureFacility, parkHome, house, parking, barn, ruins, villageHouse, caveHouse, cortijo, stoneHouse, takeaway, childcareFacility, smallholding, placeOfWorship, tradeCounter, coachHouse, houseOfMultipleOccupation, sportsFacilities, spa, campsiteHolidayVillage, retailPropertyShoppingCentre, retailPropertyPark, retailPropertyPopUp, bungalow, characterProperty",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully found matching renters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfRenterSummary"
                }
              }
            }
          },
          "204": {
            "description": "No renters were found that match the search criteria"
          }
        }
      }
    },
    "/people/renters/{id}": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRenter"
                }
              }
            }
          }
        }
      }
    },
    "/people/landlords": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PropertyStatus",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/RentalPropertyStatus"
            }
          },
          {
            "name": "PropertyType",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/PropertyType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfLandlordSummary"
                }
              }
            }
          }
        }
      }
    },
    "/people/landlords/{id}": {
      "get": {
        "tags": [
          "Person"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfLandlord"
                }
              }
            }
          }
        }
      }
    },
    "/property/residential/sales": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Search for buyers against set criteria -  - DO NOT USE THIS TO POWER WEBSITE PROPERTY PORTFOLIOS, it is a generic search and does not take in to account marketing preferences",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinPrice",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PropertyStatuses",
            "in": "query",
            "description": "A comma separated list of property statuses. Available values: appraisal, premarket, forSale, underOffer, exchanged, completed, withdrawn",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PropertyTypes",
            "in": "query",
            "description": "A comma separated list of property types. Available values: terraced, endOfTerrace, semiDetached, detached, mewsHouse, flat, maisonette, bungalow, townHouse, cottage, farmOrBarn, mobileOrStatic, land, studio, blockOfFlats, office, countryHouse, clusterHouse groundFloorFlat, terracedBungalow, semiDetachedBungalow, linkDetachedHouse, chalet, villa, apartment, penthouse, finca, barnConversion, servicedApartment, garage, shelteredHousing, retirement, houseShare, flatShare, equestrian, duplexFlat, triplexFlat, longere, gite, trulli, mill, restaurant, cafe, castle, plot, caravan, lodge, logCabin, manorHouse, statelyHome, offPlanLand, semiDetachedVilla, barNightclub, shop, riad, houseBoat, hotelRoom, privateHalls, commercialOffice, businessPark, servicedOffice, retailPropertyHighStreet, retailPropertyOutOfTown, convenienceStore, hairdresserBarberShop, hotel, petrolStation, postOffice, pub, workshopRetailSpace, distributionWarehouse, factory, heavyIndustrial, industrialPark, lightIndustrial, storage, showroom, warehouse, commercialLand, commercialDevelopment, industrialDevelopment, residentialDevelopment, commercialProperty, dataCentre, commercialFarm, healthcareFacility, marineProperty, mixedUse, researchDevelopmentFacility, sciencePark, guestHouse, hospitality, leisureFacility, parkHome, house, parking, barn, ruins, villageHouse, caveHouse, cortijo, stoneHouse, takeaway, childcareFacility, smallholding, placeOfWorship, tradeCounter, coachHouse, houseOfMultipleOccupation, sportsFacilities, spa, campsiteHolidayVillage, retailPropertyShoppingCentre, retailPropertyPark, retailPropertyPopUp, bungalow, characterProperty",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MinBedrooms",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxBedrooms",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HasAcceptedOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasFutureViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasOffers",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToPortals",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToWebsite",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToMatching",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully found matching properties",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfPropertySummary"
                }
              }
            }
          },
          "204": {
            "description": "No properties were found that match the search criteria"
          }
        },
        "deprecated": true
      }
    },
    "/property/residential/sales/{id}": {
      "get": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfProperty"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/sales/{id}/preview/{previewHash}": {
      "get": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "previewHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfPropertyPreview"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/sales/listed/{channel}": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Gets listing information for the given marketing channel - USE THIS TO POWER WEBSITE PROPERTY PORTFOLIOS",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "description": "A comma separated list of property statuses. Available values: rightmove, onTheMarket, zoopla, website",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/LifecycleListingChannel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Properties were found listed on the given channel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfPropertyListing"
                }
              }
            }
          },
          "204": {
            "description": "No properties were found that match the search criteria"
          }
        }
      }
    },
    "/property/residential/sold/{channel}": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Gets all listings that are exchanged or completed and were listed on the given channel  - USE THIS TO POWER WEBSITE SOLD GALLERIES",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "description": "A comma separated list of property statuses. Available values: rightmove, onTheMarket, zoopla, website",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/LifecycleListingChannel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Properties were found that were listed on the given channel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfPropertyListing"
                }
              }
            }
          },
          "204": {
            "description": "No properties were found that match the search criteria"
          }
        }
      }
    },
    "/property/residential/sales/{id}/viewing": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/sales/{id}/call-back": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/sales/{id}/information": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/lettings": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Search for rental properties against set criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinRent",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxRent",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PropertyStatuses",
            "in": "query",
            "description": "A comma separated list of property statuses. Available values: appraisal, premarket, toLet, let, withdrawn",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PropertyTypes",
            "in": "query",
            "description": "A comma separated list of property types. Available values: terraced, endOfTerrace, semiDetached, detached, mewsHouse, flat, maisonette, bungalow, townHouse, cottage, farmOrBarn, mobileOrStatic, land, studio, blockOfFlats, office, countryHouse, clusterHouse groundFloorFlat, terracedBungalow, semiDetachedBungalow, linkDetachedHouse, chalet, villa, apartment, penthouse, finca, barnConversion, servicedApartment, garage, shelteredHousing, retirement, houseShare, flatShare, equestrian, duplexFlat, triplexFlat, longere, gite, trulli, mill, restaurant, cafe, castle, plot, caravan, lodge, logCabin, manorHouse, statelyHome, offPlanLand, semiDetachedVilla, barNightclub, shop, riad, houseBoat, hotelRoom, privateHalls, commercialOffice, businessPark, servicedOffice, retailPropertyHighStreet, retailPropertyOutOfTown, convenienceStore, hairdresserBarberShop, hotel, petrolStation, postOffice, pub, workshopRetailSpace, distributionWarehouse, factory, heavyIndustrial, industrialPark, lightIndustrial, storage, showroom, warehouse, commercialLand, commercialDevelopment, industrialDevelopment, residentialDevelopment, commercialProperty, dataCentre, commercialFarm, healthcareFacility, marineProperty, mixedUse, researchDevelopmentFacility, sciencePark, guestHouse, hospitality, leisureFacility, parkHome, house, parking, barn, ruins, villageHouse, caveHouse, cortijo, stoneHouse, takeaway, childcareFacility, smallholding, placeOfWorship, tradeCounter, coachHouse, houseOfMultipleOccupation, sportsFacilities, spa, campsiteHolidayVillage, retailPropertyShoppingCentre, retailPropertyPark, retailPropertyPopUp, bungalow, characterProperty",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MinBedrooms",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxBedrooms",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HasTenancies",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasFutureViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasApplications",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasViewings",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToPortals",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToWebsite",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublishedToMatching",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTenanted",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully found matching properties",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfRentalPropertySummary"
                }
              }
            }
          },
          "204": {
            "description": "No properties were found that match the search criteria"
          }
        }
      }
    },
    "/property/residential/lettings/{id}": {
      "get": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRentalProperty"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/lettings/{id}/preview/{previewHash}": {
      "get": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "previewHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRentalPropertyPreview"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/lettings/listed/{channel}": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Gets listing information for the given marketing channel  - USE THIS TO POWER LETTINGS PROPERTY PORTFOLIOS",
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "description": "A comma separated list of property statuses. Available values: rightmove, onTheMarket, zoopla, website",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/LifecycleListingChannel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Properties were found listed on the given channel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfRentalPropertyListing"
                }
              }
            }
          },
          "204": {
            "description": "No properties were found that match the search criteria"
          }
        }
      }
    },
    "/property/residential/lettings/{id}/viewing": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/lettings/{id}/call-back": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/property/residential/lettings/{id}/information": {
      "post": {
        "tags": [
          "Property"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/residential/lettings/viewings": {
      "get": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Returns a list of all viewings that match the search criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AppointmentStartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "AppointmentEndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingStatus"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingType"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingCategory"
            }
          },
          {
            "name": "HasRenterFeedback",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasLandlordFeedback",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RenterConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LandlordConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AgentConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of viewings that match the search criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfRentalViewingSummary"
                }
              }
            }
          },
          "204": {
            "description": "If none are found that match the criteria"
          }
        }
      },
      "post": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Creates a viewing and a renter in the loop system",
        "requestBody": {
          "description": "An object containing information on the viewing that you are trying to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalViewingCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalViewingCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RentalViewingCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a NumberResponse representing the newly created viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfNumberResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If the viewing creation failed"
          },
          "400": {
            "description": "If the input perameters were incorrect"
          }
        }
      }
    },
    "/residential/lettings/viewings/{id}": {
      "get": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Returns a summary object for the requested viewing",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfRentalViewing"
                }
              }
            }
          },
          "204": {
            "description": "If no viewing with the given ID could be found or you do not have access to it"
          }
        }
      }
    },
    "/residential/lettings/viewings/{id}/renter-feedback": {
      "post": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Records renter feedback text for the viewing.  If this is the first time that renter feedback is recorded then the viewing will be advanced to status 'AwaitingLandlordFeedback'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the update failed"
          }
        }
      }
    },
    "/residential/lettings/viewings/{id}/note": {
      "post": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Adds a note to the given viewing",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the note could not be created"
          }
        }
      }
    },
    "/residential/lettings/viewings/{id}/landlord-feedback": {
      "post": {
        "tags": [
          "RentalViewing"
        ],
        "summary": "Records landlord feedback text for the viewing.  If this is the first time that feedback is recorded then the viewing will be advanced to status 'Done'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is fo9und but the update failed"
          }
        }
      }
    },
    "/supplier/maintenance/{quoteCode}/{jobid}/job-list": {
      "get": {
        "tags": [
          "Supplier"
        ],
        "summary": "Gets a list of outstanding board jobs for a contractor (either sales or lettings)",
        "parameters": [
          {
            "name": "quoteCode",
            "in": "path",
            "description": "A unique code from any quote assigned to the contractor",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The ID for the Job linked to the quotes code",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of complete and outstanding jobs assigned to the contractor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfContractorMaintenanceJobs"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/supplier/maintenance/{code}/{jobid}/complete": {
      "post": {
        "tags": [
          "Supplier"
        ],
        "summary": "Marks a board contractor job as either complete or in complete.",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The unique code for the job (either sales or lettings)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The ID of the job you want to change the status of",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the update was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBoolean"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/supplier/maintenance/{quoteCode}/{jobId}/quote-list": {
      "get": {
        "tags": [
          "Supplier"
        ],
        "summary": "Gets a list of outstanding board jobs for a contractor (either sales or lettings)",
        "parameters": [
          {
            "name": "quoteCode",
            "in": "path",
            "description": "A unique code from any quote assigned to the contractor",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The ID of the Job the quote belongs to",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of complete and outstanding quotes assigned to the contractor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfContractorJobQuotes"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/supplier/maintenance/{code}/{quoteid}/quote-for-job": {
      "put": {
        "tags": [
          "Supplier"
        ],
        "summary": "Gets a list of outstanding board jobs for a contractor (either sales or lettings)",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "A unique code from any quote assigned to the contractor",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quoteId",
            "in": "path",
            "description": "An ID of any quote assigned to the contractor",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractorMaintenanceQuoteDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractorMaintenanceQuoteDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ContractorMaintenanceQuoteDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a list of complete and outstanding jobs assigned to the contractor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBoolean"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/supplier/board-contractor/{code}/{jobid}/job-list": {
      "get": {
        "tags": [
          "Supplier"
        ],
        "summary": "Gets a list of outstanding board jobs for a contractor (either sales or lettings)",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "A unique code from any job assigned to the contractor",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "An ID of any job assigned to the contractor (same job as above)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of complete and outstanding jobs assigned to the contractor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBoardContractorJobs"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/supplier/board-contractor/{code}/{jobid}/complete": {
      "post": {
        "tags": [
          "Supplier"
        ],
        "summary": "Marks a board contractor job as either complete or in complete.",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The unique code for the job (either sales or lettings)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "description": "The ID of the job you want to change the status of",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardJobCompleteInputDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BoardJobCompleteInputDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BoardJobCompleteInputDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the update was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBoolean"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/team": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Returns information on the team linked to this api key",
        "responses": {
          "200": {
            "description": "team linked to this api key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfTeam"
                }
              }
            }
          },
          "204": {
            "description": "No team could be found - probably an invalid api key"
          }
        }
      }
    },
    "/team/{agentId}/availability/{searchDate}": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Gets the availability for the given agent on the given day",
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "description": "The GUID of the agent",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "searchDate",
            "in": "path",
            "description": "The date that is being enquired about.  Must be in YYYY-MM-DD format",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "team linked to this api key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfAvailableTimeRange"
                }
              }
            }
          },
          "204": {
            "description": "No team could be found - probably an invalid api key"
          }
        }
      }
    },
    "/residential/sales/viewings": {
      "get": {
        "tags": [
          "Viewing"
        ],
        "summary": "Returns a list of all viewings that match the search criteria",
        "parameters": [
          {
            "name": "SearchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AppointmentStartDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "AppointmentEndDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingStatus"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingType"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ViewingCategory"
            }
          },
          {
            "name": "HasBuyerFeedback",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasSellerFeedback",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BuyerConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SellerConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "AgentConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of viewings that match the search criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfListOfViewingSummary"
                }
              }
            }
          },
          "204": {
            "description": "If none are found that match the criteria"
          }
        }
      },
      "post": {
        "tags": [
          "Viewing"
        ],
        "summary": "Creates a viewing and a seller in the loop system",
        "requestBody": {
          "description": "An object containing information on the viewing that you are trying to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ViewingCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a NumberResponse representing the newly created viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfNumberResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If the viewing creation failed"
          },
          "400": {
            "description": "If the input perameters were incorrect"
          }
        }
      }
    },
    "/residential/sales/viewings/{id}": {
      "get": {
        "tags": [
          "Viewing"
        ],
        "summary": "Returns a summary object for the requested viewing",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the viewing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfViewing"
                }
              }
            }
          },
          "204": {
            "description": "If no viewing with the given ID could be found or you do not have access to it"
          }
        }
      }
    },
    "/residential/sales/viewings/{id}/buyer-feedback": {
      "post": {
        "tags": [
          "Viewing"
        ],
        "summary": "Records buyer feedback text for the viewing.  If this is the first time that buyer feedback is recorded then the viewing will be advanced to status 'AwaitingSellerFeedback'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the update failed"
          }
        }
      }
    },
    "/residential/sales/viewings/{id}/note": {
      "post": {
        "tags": [
          "Viewing"
        ],
        "summary": "Adds a note to the given viewing",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The feedback text to save",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is found but the note could not be created"
          }
        }
      }
    },
    "/residential/sales/viewings/{id}/seller-feedback": {
      "post": {
        "tags": [
          "Viewing"
        ],
        "summary": "Records seller feedback text for the viewing.  If this is the first time that feedback is recorded then the viewing will be advanced to status 'Done'",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the requested viewing",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StringResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns a BooleanResponse representing whether the save was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoopResponseOfBooleanResponse"
                }
              }
            }
          },
          "401": {
            "description": "If no viewing with the given ID could be found or you do not have access to it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If a viewing is fo9und but the update failed"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccessibilityType": {
        "enum": [
          "notSuitableForWheelchairUsers",
          "levelAccess",
          "liftAccess",
          "rampedAccess",
          "wetRoom",
          "wideDoorways",
          "stepFreeAccess",
          "levelAccessShower",
          "lateralLiving"
        ],
        "type": "string"
      },
      "AccountingMode": {
        "enum": [
          "openingBalances",
          "accounting"
        ],
        "type": "string"
      },
      "AddressBook": {
        "required": [
          "consentDate",
          "consentGiven",
          "consentGivenById",
          "dateCreated",
          "dateModified"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "firstName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "title": {
            "maxLength": 32,
            "type": "string",
            "nullable": true
          },
          "addressee": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "category": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "userId": {
            "maxLength": 40,
            "type": "string",
            "nullable": true
          },
          "userName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "address1": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address2": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address3": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "county": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "nullable": true
          },
          "website": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "contactNotes": {
            "type": "string",
            "nullable": true
          },
          "dateModified": {
            "type": "string",
            "format": "date-time"
          },
          "userModified": {
            "maxLength": 40,
            "type": "string",
            "nullable": true
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressBookPhoneNumber"
            },
            "nullable": true
          },
          "emailAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressBookEmailAddress"
            },
            "nullable": true
          },
          "consentGiven": {
            "type": "boolean"
          },
          "consentDate": {
            "type": "string",
            "format": "date-time"
          },
          "consentGivenById": {
            "type": "string",
            "format": "uuid"
          },
          "consentGivenByName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "lettsPayId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "vatCode": {
            "maxLength": 11,
            "type": "string",
            "nullable": true
          },
          "vatRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "vatPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adminFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "bankAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressbookBankAccount"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AddressBookEmailAddress": {
        "required": [
          "emailAddress"
        ],
        "type": "object",
        "properties": {
          "addressBookId": {
            "type": "integer",
            "format": "int64"
          },
          "addressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "emailAddress": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "type": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AddressBookPhoneNumber": {
        "type": "object",
        "properties": {
          "addressBookId": {
            "type": "integer",
            "format": "int64"
          },
          "addressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "phoneNumber": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "type": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AddressbookBankAccount": {
        "required": [
          "accountName"
        ],
        "type": "object",
        "properties": {
          "addressBookId": {
            "type": "integer",
            "format": "int64"
          },
          "addressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "isDisabled": {
            "type": "boolean"
          },
          "accountName": {
            "type": "string",
            "nullable": true
          },
          "encryptedAccountNumber": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedSortCode": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "defaultPaymentReference": {
            "type": "string",
            "nullable": true
          },
          "bankAddress": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AgencySaleAgreementStatus": {
        "enum": [
          "notApplicable",
          "notCreated",
          "created",
          "sent",
          "signed",
          "override"
        ],
        "type": "string"
      },
      "Agent": {
        "required": [
          "sendDailyDigest",
          "sendMonthlySoldDigest"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "surname": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "jobTitle": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "teamRole": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "mobilePhone": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "channels": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "sendDailyDigest": {
            "type": "boolean"
          },
          "sendMonthlySoldDigest": {
            "type": "boolean"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "primaryTeams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Team"
            },
            "nullable": true
          },
          "signatureImageUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "lettersTemplateSelected": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LetterTemplateSelected"
            },
            "nullable": true
          },
          "agentRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentRole"
            },
            "nullable": true
          },
          "agentSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentSetting"
            },
            "nullable": true
          },
          "avatarImage": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "avatarMedium": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "avatarThumbnail": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "biography": {
            "type": "string",
            "nullable": true
          },
          "twitterUrl": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "customUrl": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "signatureBlock": {
            "type": "string",
            "nullable": true
          },
          "facebookUrl": {
            "type": "string",
            "nullable": true
          },
          "instagramUrl": {
            "type": "string",
            "nullable": true
          },
          "linkedInUrl": {
            "type": "string",
            "nullable": true
          },
          "tikTokUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "youtubeUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "qualifications": {
            "type": "string",
            "nullable": true
          },
          "inactiveAgent": {
            "$ref": "#/components/schemas/InactiveAgent"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamAgentRole"
            },
            "nullable": true
          },
          "loopRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "loopRateDiscountPercentage": {
            "type": "number",
            "format": "double"
          },
          "loopRateNotes": {
            "type": "string",
            "nullable": true
          },
          "userType": {
            "$ref": "#/components/schemas/UserType"
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "AgentRole": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "roleId": {
            "type": "string",
            "format": "uuid"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          }
        },
        "additionalProperties": false
      },
      "AgentSetting": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "type": {
            "$ref": "#/components/schemas/AgentSettingsTypes"
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "name": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "setting": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AgentSettingsTypes": {
        "enum": [
          "initials",
          "color",
          "diary",
          "appraisalQuickLists",
          "opportunityQuickLists",
          "viewingQuickLists",
          "offersQuickLists",
          "buyerQuickLists",
          "rentalAppraisalQuicklists",
          "rentalOpportunityQuicklists",
          "renterGroupQuicklists",
          "rentalViewingsQuickLists",
          "rentalApplicationsQuickLists",
          "sellersQuickLists",
          "rentalLandlordsQuickLists",
          "messagingDefault",
          "addressBook",
          "maintenanceQuicklists",
          "preMarketProperties",
          "onMarketProperties",
          "underOfferProperties",
          "exchangedProperties",
          "completedProperties",
          "withdrawnProperties",
          "lettingsPreMarketProperties",
          "lettingsToLetProperties",
          "lettingsLetProperties",
          "lettingsWithdrawnProperties",
          "activeSales",
          "exchangedSales",
          "completedSales",
          "fallenThroughSales",
          "buyerEnquiries",
          "sellerEnquiries",
          "renterEnquiries",
          "certificates",
          "missingCertificates",
          "lettingsPreparingTenancies",
          "lettingsActiveTenancies",
          "lettingsFinishedTenancies",
          "lettingsExpiringTenancies",
          "lettingsFallenThroughTenancies",
          "lettingsToDoGrid",
          "lettingsInspectionsGrid",
          "activityGrid",
          "selectedDiaryFilters",
          "appraisalQuickListsDefault",
          "opportunityQuickListsDefault",
          "viewingQuickListsDefault",
          "offersQuickListsDefault",
          "buyerQuickListsDefault",
          "rentalAppraisalQuicklistsDefaults",
          "rentalOpportunityQuicklistsDefaults",
          "renterGroupQuicklistsDefault",
          "rentalViewingsQuickListsDefault",
          "rentalApplicationQuicklistsDefaults",
          "sellersQuicklistsDefaults",
          "rentalLandlordsQuicklistsDefaults",
          "selectedAddressBook",
          "selectedPreMarketProperties",
          "selectedOnMarketProperties",
          "selectedUnderOfferProperties",
          "selectedExchangedProperties",
          "selectedCompletedProperties",
          "selectedWithdrawnProperties",
          "selectedLettingsPreMarketProperties",
          "selectedLettingsToLetProperties",
          "selectedLettingsLetProperties",
          "selectedLettingsWithdrawnProperties",
          "selectedActiveSales",
          "selectedExchangedSales",
          "selectedCompletedSales",
          "selectedFallenThroughSales",
          "selectedBuyerEnquiries",
          "selectedSellerEnquiries",
          "selectedRenterEnquiries",
          "selectedCertificates",
          "selectedMissingCertificates",
          "selectedLettingsPreparingTenancies",
          "selectedLettingsActiveTenancies",
          "selectedLettingsFinishedTenancies",
          "selectedLettingsExpiringTenancies",
          "selectedLettingsFallenThroughTenancies",
          "selectedLettingsToDoGrid",
          "lettingsLetAgreedQuicklists",
          "selectedLettingsInspectionsGrid",
          "selectedActivityGrid",
          "fileHistory",
          "lettingsFileHistory"
        ],
        "type": "string"
      },
      "ApiKey": {
        "required": [
          "dateCreated",
          "isActive",
          "teamId"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "key": {
            "maxLength": 40,
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ApplicationSummary": {
        "required": [
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalApplicationStatus"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "proposedStartDate": {
            "type": "string",
            "format": "date-time"
          },
          "tenancyId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "rent": {
            "type": "number",
            "format": "float",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AppraisalLostReason": {
        "enum": [
          "none",
          "postponed",
          "notSelling",
          "instructedAnotherAgent",
          "probateValuation"
        ],
        "type": "string"
      },
      "AppraisalStatus": {
        "enum": [
          "notAppraised",
          "createdAwaitingFeedback",
          "appraisalDone",
          "cancelled",
          "won",
          "lost",
          "lostDead",
          "opportunity"
        ],
        "type": "string"
      },
      "AvailableTimeRange": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "BankAccountPayout": {
        "type": "object",
        "properties": {
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "type": {
            "$ref": "#/components/schemas/BankAccountPayoutType"
          },
          "status": {
            "$ref": "#/components/schemas/BankAccountPayoutStatus"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountName": {
            "type": "string",
            "nullable": true
          },
          "bankAccountProvider": {
            "type": "string",
            "nullable": true
          },
          "bankAccountLabel": {
            "type": "string",
            "nullable": true
          },
          "bankAccountAccountNumberEncrypted": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "bankAccountSortCodeEncrypted": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "payoutDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "completedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "completedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "tenancyAgencyChargePayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyAgencyChargePayout"
            },
            "nullable": true
          },
          "propertyLedgerAgencyReceiptPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyReceiptPayout"
            },
            "nullable": true
          },
          "propertyLedgerAgencyFloatOutPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyFloatOutPayout"
            },
            "nullable": true
          },
          "propertyRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRefund"
            },
            "nullable": true
          },
          "contractorRemittances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorRemittance"
            },
            "nullable": true
          },
          "agencyFeeRemittances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorRemittance"
            },
            "nullable": true
          },
          "propertyFloatOutRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutRefund"
            },
            "nullable": true
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
            },
            "nullable": true
          },
          "tenancyRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyRefund"
            },
            "nullable": true
          },
          "tenancySecurityDeposits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancySecurityDepositPayout"
            },
            "nullable": true
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountPayoutTransaction"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BankAccountPayoutStatus": {
        "enum": [
          "inProgress",
          "complete"
        ],
        "type": "string"
      },
      "BankAccountPayoutTransaction": {
        "required": [
          "description",
          "recipientName",
          "reference"
        ],
        "type": "object",
        "properties": {
          "payoutId": {
            "type": "integer",
            "format": "int64"
          },
          "payout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "encryptedRecipientAccountNumber": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedRecipientSortCode": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "nameOnReceiptBankAccount": {
            "type": "string",
            "nullable": true
          },
          "reconciledTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reconciledTransaction": {
            "$ref": "#/components/schemas/ClientBankAccountTransaction"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "recipientName": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "tenancyAgencyPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyAgencyChargePayout"
            },
            "nullable": true
          },
          "propertyLedgerAgencyReceiptPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyReceiptPayout"
            },
            "nullable": true
          },
          "propertyLedgerAgencyFloatOutPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyFloatOutPayout"
            },
            "nullable": true
          },
          "propertyRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRefund"
            },
            "nullable": true
          },
          "contractorRemittances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorRemittance"
            },
            "nullable": true
          },
          "agencyFeeRemittances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorRemittance"
            },
            "nullable": true
          },
          "propertyFloatOutRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutRefund"
            },
            "nullable": true
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
            },
            "nullable": true
          },
          "tenancyRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyRefund"
            },
            "nullable": true
          },
          "tenancySecurityDeposits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancySecurityDepositPayout"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BankAccountPayoutType": {
        "enum": [
          "bACSStandard18",
          "bACSISO20022",
          "bACSCSV",
          "fasterPayments",
          "cSV",
          "pDF",
          "natwestBankline",
          "natwestBanklineV2",
          "metrobankCSV",
          "rBSBankline",
          "standard18HSBCBACS",
          "standard18HSBCFaster",
          "calmonyBank"
        ],
        "type": "string"
      },
      "BankAccountType": {
        "enum": [
          "client",
          "deposit",
          "agency"
        ],
        "type": "string"
      },
      "BankTransactionColumn": {
        "enum": [
          "date",
          "combinedAmount",
          "reference",
          "description",
          "payee",
          "transactionType",
          "creditAmount",
          "debitAmount"
        ],
        "type": "string"
      },
      "BankTransactionStatus": {
        "enum": [
          "valid",
          "error",
          "duplicate",
          "ignored",
          "reconciled",
          "partSuspensed",
          "fullySuspensed"
        ],
        "type": "string"
      },
      "BankTransactionType": {
        "enum": [
          "bACS",
          "standingOrder",
          "cash",
          "other"
        ],
        "type": "string"
      },
      "BeaconForwardingSetting": {
        "type": "object",
        "properties": {
          "beaconGroupSettingId": {
            "type": "integer",
            "format": "int32"
          },
          "beaconGroupSetting": {
            "$ref": "#/components/schemas/BeaconGroupSetting"
          },
          "email": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BeaconGroupSetting": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/BeaconType"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeaconForwardingSetting"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BeaconType": {
        "enum": [
          "bookViewing",
          "cancelViewing",
          "bookMarketAppraisal",
          "cancelMarketAppraisal",
          "wonMarketAppraisal",
          "lostMarketAppraisal",
          "propertyLaunchedToMarket",
          "offerAccepted",
          "propertyExchanged",
          "propertyWithdrawn",
          "propertyCompleted",
          "newEnquiry",
          "rentalAppraisalBooked",
          "rentalAppraisalCancelled",
          "rentalAppraisalWon",
          "rentalAppraisalLost",
          "rentalPropertyLaunchedToMarket",
          "rentalPropertyWithdrawn",
          "rentalViewingBooked",
          "rentalViewingCancelled",
          "newRentalApplication",
          "rentalApplicationAccepted",
          "rentalApplicationApproved",
          "rentalApplicationRejected",
          "rentalTenancyActive",
          "rentalTenancyFinished",
          "rentalTenancyWithdrawn",
          "propertyPriceChange",
          "rentalPropertyLet",
          "propertyDirectInstruction",
          "rentalPropertyDirectInstruction",
          "boardJobDone",
          "offerReceived",
          "offerFallenThrough"
        ],
        "type": "string"
      },
      "BlacklistedAgent": {
        "type": "object",
        "properties": {
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BoardContractorJob": {
        "required": [
          "address",
          "agentName",
          "teamName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "isLettings": {
            "type": "boolean"
          },
          "lifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateDone": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "boardType": {
            "type": "integer",
            "format": "int64"
          },
          "boardActionType": {
            "type": "integer",
            "format": "int64"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "sent": {
            "type": "boolean"
          },
          "uniqueCode": {
            "type": "string",
            "nullable": true
          },
          "thumbnail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BoardContractorJobs": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "clientLogo": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "outstandingJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoardContractorJob"
            },
            "nullable": true
          },
          "completedJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoardContractorJob"
            },
            "nullable": true
          },
          "allTeams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoardContractorSimpleTeamDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BoardContractorSimpleTeamDto": {
        "required": [
          "teamName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BoardJobCompleteInputDto": {
        "type": "object",
        "properties": {
          "complete": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BoardType": {
        "enum": [
          "notRequired",
          "forSale",
          "soldSTC",
          "sold"
        ],
        "type": "string"
      },
      "BooleanResponse": {
        "type": "object",
        "properties": {
          "value": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BroadbandType": {
        "enum": [
          "aDSL",
          "cable",
          "fTTC",
          "fTTP",
          "none"
        ],
        "type": "string"
      },
      "Buyer": {
        "required": [
          "buyerGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroupName": {
            "type": "string",
            "nullable": true
          },
          "buyerIsGroup": {
            "type": "boolean"
          },
          "maxPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minBeds": {
            "type": "integer",
            "format": "int32"
          },
          "position": {
            "$ref": "#/components/schemas/BuyerGroupPosition"
          },
          "requirementNotes": {
            "type": "string",
            "nullable": true
          },
          "sellingPosition": {
            "$ref": "#/components/schemas/BuyerGroupSellingPosition"
          },
          "purchaseReason": {
            "$ref": "#/components/schemas/BuyerGroupPurchaseReason"
          },
          "financiallyVerified": {
            "type": "boolean",
            "nullable": true
          },
          "mortgageOffered": {
            "$ref": "#/components/schemas/BuyerGroupMortgageOffered"
          },
          "insuranceOffered": {
            "$ref": "#/components/schemas/BuyerInsuranceOffered"
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSummary"
            },
            "nullable": true
          },
          "propertyTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyType"
            },
            "nullable": true
          },
          "searchAreas": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewingSummary"
            },
            "nullable": true
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuyerEnquiry": {
        "type": "object",
        "properties": {
          "salesLifecycleListingId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycleListing": {
            "$ref": "#/components/schemas/SalesLifecycleListing"
          },
          "status": {
            "$ref": "#/components/schemas/EnquiryStatus"
          },
          "enquirySource": {
            "$ref": "#/components/schemas/EnquirySource"
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "address": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "maxLength": 12,
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reasonForMove": {
            "type": "string",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          },
          "dateProcessed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "processingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "processingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "associatedViewingId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "associatedViewing": {
            "$ref": "#/components/schemas/SalesViewing"
          },
          "claimingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "claimingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "deepLink": {
            "type": "string",
            "nullable": true
          },
          "webVerificationHash": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroup": {
        "type": "object",
        "properties": {
          "maxPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "matchMaxPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "matchMinPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minFloorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minAcres": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "minBeds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "position": {
            "$ref": "#/components/schemas/BuyerGroupPosition"
          },
          "sellingPosition": {
            "$ref": "#/components/schemas/BuyerGroupSellingPosition"
          },
          "purchaseReason": {
            "$ref": "#/components/schemas/BuyerGroupPurchaseReason"
          },
          "financiallyVerified": {
            "type": "boolean",
            "nullable": true
          },
          "mortgageOffered": {
            "$ref": "#/components/schemas/BuyerGroupMortgageOffered"
          },
          "insuranceOffered": {
            "$ref": "#/components/schemas/BuyerInsuranceOffered"
          },
          "rating": {
            "$ref": "#/components/schemas/BuyerRating"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "requirementNotes": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/BuyerGroupStatus"
          },
          "buyerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerProfile"
            },
            "nullable": true
          },
          "propertyTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupPropertyType"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesViewing"
            },
            "nullable": true
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Offer"
            },
            "nullable": true
          },
          "buyerGroupSearchAreas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupSearchArea"
            },
            "nullable": true
          },
          "buyerGroupMatchAreas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupMatchArea"
            },
            "nullable": true
          },
          "buyerGroupParkingTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupParking"
            },
            "nullable": true
          },
          "buyerGroupOutsideSpaceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupOutsideSpace"
            },
            "nullable": true
          },
          "buyerGroupPropertyAges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupPropertyAge"
            },
            "nullable": true
          },
          "buyerGroupPropertyConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupPropertyCondition"
            },
            "nullable": true
          },
          "buyerGroupPropertyTenures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerGroupPropertyTenure"
            },
            "nullable": true
          },
          "salesMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesMatch"
            },
            "nullable": true
          },
          "nameAlias": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "addressee": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "isArchived": {
            "type": "boolean"
          },
          "cacheFirstDateRegistered": {
            "type": "string",
            "format": "date-time"
          },
          "cachePrimaryEmail": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "cacheCreatingAgentFullName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cacheResponsibleAgentFullName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cacheSearch": {
            "type": "string",
            "nullable": true
          },
          "dateLastContacted": {
            "type": "string",
            "format": "date-time"
          },
          "solicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "solicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupMatchArea": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "teamMatchingAreaId": {
            "type": "integer",
            "format": "int64"
          },
          "teamMatchingArea": {
            "$ref": "#/components/schemas/TeamMatchingArea"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupMortgageOffered": {
        "enum": [
          "none",
          "notNeeded",
          "arrangeAQuote",
          "offeredPending",
          "offeredDeclined",
          "signedUp",
          "agreementInPlace"
        ],
        "type": "string"
      },
      "BuyerGroupOutsideSpace": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "outsideSpace": {
            "$ref": "#/components/schemas/OutsideSpaceType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupParking": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/ParkingType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupPosition": {
        "enum": [
          "none",
          "dependentOnSale",
          "cashBuyer",
          "firstTimeBuyer",
          "mortgageRequired",
          "otherAgent",
          "inRented",
          "noChain",
          "other"
        ],
        "type": "string"
      },
      "BuyerGroupPropertyAge": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "age": {
            "$ref": "#/components/schemas/PropertyAge"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupPropertyCondition": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "condition": {
            "$ref": "#/components/schemas/PropertyCondition"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupPropertyTenure": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "tenure": {
            "$ref": "#/components/schemas/TenureType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupPropertyType": {
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupPurchaseReason": {
        "enum": [
          "none",
          "home",
          "investment",
          "developmentOpportunity",
          "additionalResidence",
          "auction"
        ],
        "type": "string"
      },
      "BuyerGroupSearchArea": {
        "required": [
          "area"
        ],
        "type": "object",
        "properties": {
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "area": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerGroupSellingPosition": {
        "enum": [
          "nothingToSell",
          "notOnMarket",
          "notOnMarketOutOfArea",
          "onMarketWithUs",
          "onMarketOtherAgent",
          "onMarketOutOfArea",
          "underOfferOtherAgent",
          "exchangedOtherAgent",
          "completedOtherAgent",
          "underOfferWithUs",
          "exchangedWithUs",
          "completedWithUs",
          "valuedByUs"
        ],
        "type": "string"
      },
      "BuyerGroupStatus": {
        "enum": [
          "newUnqualified",
          "qualified",
          "archived"
        ],
        "type": "string"
      },
      "BuyerInsuranceOffered": {
        "enum": [
          "none",
          "notNeeded",
          "arrangeAQuote",
          "offeredPending",
          "offeredDeclined",
          "signedUp"
        ],
        "type": "string"
      },
      "BuyerProfile": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "preferencePropertyMatch": {
            "type": "boolean"
          },
          "preferenceProperty": {
            "type": "boolean"
          },
          "preferenceViewing": {
            "type": "boolean"
          },
          "preferenceOffer": {
            "type": "boolean"
          },
          "preferenceSalesProgression": {
            "type": "boolean"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BuyerRating": {
        "enum": [
          "hot",
          "warm",
          "cold"
        ],
        "type": "string"
      },
      "BuyerSummary": {
        "required": [
          "buyerGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroupName": {
            "type": "string",
            "nullable": true
          },
          "buyerIsGroup": {
            "type": "boolean"
          },
          "maxPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minBeds": {
            "type": "integer",
            "format": "int32"
          },
          "position": {
            "$ref": "#/components/schemas/BuyerGroupPosition"
          },
          "sellingPosition": {
            "$ref": "#/components/schemas/BuyerGroupSellingPosition"
          },
          "purchaseReason": {
            "$ref": "#/components/schemas/BuyerGroupPurchaseReason"
          },
          "financiallyVerified": {
            "type": "boolean",
            "nullable": true
          },
          "mortgageOffered": {
            "$ref": "#/components/schemas/BuyerGroupMortgageOffered"
          },
          "insuranceOffered": {
            "$ref": "#/components/schemas/BuyerInsuranceOffered"
          },
          "offerCount": {
            "type": "integer",
            "format": "int32"
          },
          "acceptedOfferCount": {
            "type": "integer",
            "format": "int32"
          },
          "viewingCount": {
            "type": "integer",
            "format": "int32"
          },
          "upcomingViewingCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CRMTeamOutcode": {
        "required": [
          "outcodeText"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "outcodeText": {
            "maxLength": 4,
            "minLength": 1,
            "type": "string"
          },
          "outcodeId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CertificateStatus": {
        "enum": [
          "pass",
          "failed"
        ],
        "type": "string"
      },
      "CertificateType": {
        "enum": [
          "ePC",
          "gas",
          "eICR",
          "legionnaires",
          "fire",
          "pATInspection",
          "rentalGuaranteeInsurance",
          "buildingsInsurance",
          "contentsInsurance",
          "legalExpensesInsurance",
          "hMOLicence",
          "boilerCover",
          "waterMainCover",
          "landlordsRegistration",
          "fireFightingEquipment",
          "fireRiskAssessment",
          "fireSprinkler",
          "carbonMonoxide",
          "selectiveLicense",
          "chimneySweepInspection",
          "privateWaterSupplyTest",
          "emergencyLighting",
          "alarmTest",
          "cMPInformation",
          "septicTank",
          "smokeAlarms",
          "heatDetectors",
          "oil",
          "airSourceHeatPump",
          "boilerService"
        ],
        "type": "string"
      },
      "ChainLinkType": {
        "enum": [
          "loopProperty",
          "external"
        ],
        "type": "string"
      },
      "Channel": {
        "required": [
          "channelName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "channelName": {
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChargeFrequencyType": {
        "enum": [
          "oneOff",
          "recurringWeekly",
          "recurringMonthly",
          "recurringYearly"
        ],
        "type": "string"
      },
      "ChargePayToType": {
        "enum": [
          "property",
          "agency",
          "contractor",
          "deposit"
        ],
        "type": "string"
      },
      "ChargeScheduleEndType": {
        "enum": [
          "tenancyEnd",
          "endDate",
          "numberOfOccurrence"
        ],
        "type": "string"
      },
      "Client": {
        "required": [
          "eSignCredit",
          "messagingCredit"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "vat": {
            "maxLength": 32,
            "type": "string",
            "nullable": true
          },
          "details": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "mainContact": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Team"
            },
            "nullable": true
          },
          "letterTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LetterTemplate"
            },
            "nullable": true
          },
          "addressBook": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressBook"
            },
            "nullable": true
          },
          "externalId": {
            "type": "integer",
            "format": "int32"
          },
          "networkId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "messagingCredit": {
            "type": "integer",
            "format": "int32"
          },
          "eSignCredit": {
            "type": "integer",
            "format": "int32"
          },
          "lettsPayUsername": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "lettsPayPassword": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "lettsPayPasswordEnc": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "lettsPayApiKey": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "lettsPayStagingMode": {
            "type": "boolean"
          },
          "lettsPayAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "isMultiBrand": {
            "type": "boolean"
          },
          "clientType": {
            "type": "integer",
            "format": "int32"
          },
          "projectManager": {
            "type": "string",
            "nullable": true
          },
          "referenceNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "salesManager": {
            "type": "string",
            "nullable": true
          },
          "invoiceSeed": {
            "type": "integer",
            "format": "int64"
          },
          "encryptedHMRCAccountNumberForNRL": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedHMRCSortCodeForNRL": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "hmrcReferenceForNRL": {
            "type": "string",
            "nullable": true
          },
          "ledgerAutoAllocationOn": {
            "type": "boolean"
          },
          "ledgerAutoAllocationType": {
            "$ref": "#/components/schemas/LedgerAutoAllocationType"
          },
          "ledgerAutoAllocationPrecedenceTenancy": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LedgerAutoAllocationPrecedence"
            },
            "nullable": true
          },
          "ledgerAutoAllocationPrecedenceProperty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LedgerAutoAllocationPrecedence"
            },
            "nullable": true
          },
          "bankAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientBankAccount"
            },
            "nullable": true
          },
          "clientAccountingSettings": {
            "$ref": "#/components/schemas/ClientAccountingSettings"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ClientAccountingSettings": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "invoicePrefix": {
            "maxLength": 3,
            "type": "string",
            "nullable": true
          },
          "invoiceSequenceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "invoiceLength": {
            "type": "integer",
            "format": "int64"
          },
          "creditNotePrefix": {
            "maxLength": 3,
            "type": "string",
            "nullable": true
          },
          "creditNoteSequenceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "creditNoteLength": {
            "type": "integer",
            "format": "int64"
          },
          "statementPrefix": {
            "maxLength": 3,
            "type": "string",
            "nullable": true
          },
          "statementSequenceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "statementLength": {
            "type": "integer",
            "format": "int64"
          },
          "remittancePrefix": {
            "maxLength": 3,
            "type": "string",
            "nullable": true
          },
          "remittanceSequenceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "remittanceLength": {
            "type": "integer",
            "format": "int64"
          },
          "accountingMode": {
            "$ref": "#/components/schemas/AccountingMode"
          },
          "hiddenHealthCheckItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HealthCheckItem"
            },
            "nullable": true
          },
          "healthCheckIncludeWithdrawnProperties": {
            "type": "boolean"
          },
          "healthCheckIncludeFinishedTenancies": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ClientBankAccount": {
        "required": [
          "accountName"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "defaultExportType": {
            "$ref": "#/components/schemas/BankAccountPayoutType"
          },
          "accountType": {
            "$ref": "#/components/schemas/BankAccountType"
          },
          "openingBankBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "openingBankBalanceCreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openingBankBalanceCreatedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "openingBankBalanceCreatedBy": {
            "$ref": "#/components/schemas/Agent"
          },
          "openingBankBalanceUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openingBankBalanceUpdatedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "openingBankBalanceUpdatedBy": {
            "$ref": "#/components/schemas/Agent"
          },
          "imports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientBankAccountImport"
            },
            "nullable": true
          },
          "accountName": {
            "type": "string",
            "nullable": true
          },
          "encryptedAccountNumber": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedSortCode": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "defaultPaymentReference": {
            "type": "string",
            "nullable": true
          },
          "bankAddress": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ClientBankAccountImport": {
        "required": [
          "csvFileName"
        ],
        "type": "object",
        "properties": {
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "complete": {
            "type": "boolean"
          },
          "csvFileName": {
            "type": "string",
            "nullable": true
          },
          "mapping": {
            "$ref": "#/components/schemas/ImportMappingDto"
          },
          "closingBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agentImportedId": {
            "type": "string",
            "format": "uuid"
          },
          "agentImported": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateImported": {
            "type": "string",
            "format": "date-time"
          },
          "agentSignedOffId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "agentSignedOff": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateSignedOff": {
            "type": "string",
            "format": "date-time"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientBankAccountTransaction"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ClientBankAccountTransaction": {
        "type": "object",
        "properties": {
          "clientBankAccountImportId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccountImport": {
            "$ref": "#/components/schemas/ClientBankAccountImport"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "payee": {
            "type": "string",
            "nullable": true
          },
          "transactionType": {
            "$ref": "#/components/schemas/BankTransactionType"
          },
          "transactionStatus": {
            "$ref": "#/components/schemas/BankTransactionStatus"
          },
          "tenancyReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyReceipt"
            },
            "nullable": true
          },
          "propertyReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceipt"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ClientDepositScheme": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "encryptedAccountNumber": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedSortCode": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/DepositSchemeType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CollateralTemplateElementType": {
        "enum": [
          "singleLineAddress",
          "town",
          "descriptionBlock",
          "image",
          "price",
          "priceQualifier",
          "rent"
        ],
        "type": "string"
      },
      "CollateralTemplateInstructionType": {
        "enum": [
          "sales",
          "lettings"
        ],
        "type": "string"
      },
      "CollateralTemplateOrientation": {
        "enum": [
          "portrait",
          "landscape"
        ],
        "type": "string"
      },
      "CollateralTemplateSize": {
        "enum": [
          "a4",
          "a3"
        ],
        "type": "string"
      },
      "CollateralTemplateType": {
        "enum": [
          "brochure",
          "windowCard"
        ],
        "type": "string"
      },
      "CommissionType": {
        "enum": [
          "percentage",
          "flatFee"
        ],
        "type": "string"
      },
      "ContractType": {
        "enum": [
          "notSet",
          "soleAgency",
          "jointAgency",
          "multiAgency",
          "subAgent"
        ],
        "type": "string"
      },
      "ContractorJobMedia": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "format": "int64"
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorJobQuotes": {
        "required": [
          "address",
          "clientLogo",
          "teamName"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "clientLogo": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "outstandingQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceQuote"
            },
            "nullable": true
          },
          "otherQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceQuote"
            },
            "nullable": true
          },
          "outstandingJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceJob"
            },
            "nullable": true
          },
          "otherJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceJob"
            },
            "nullable": true
          },
          "allTeams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoardContractorSimpleTeamDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorMaintenanceJob": {
        "required": [
          "address",
          "agentName",
          "contractorName",
          "jobSummary"
        ],
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "dateReported": {
            "type": "string",
            "format": "date-time"
          },
          "dateQuoteBy": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "contractorName": {
            "type": "string",
            "nullable": true
          },
          "reportedBy": {
            "type": "string",
            "nullable": true
          },
          "quoteId": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueCode": {
            "type": "string",
            "nullable": true
          },
          "jobStatus": {
            "type": "integer",
            "format": "int32"
          },
          "quoteStatus": {
            "type": "integer",
            "format": "int32"
          },
          "jobSummary": {
            "type": "string",
            "nullable": true
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateApproved": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quoteDetails": {
            "type": "string",
            "nullable": true
          },
          "quoteAmount": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteVATPercentage": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteVATAmount": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteAddVAT": {
            "type": "boolean"
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "jobDetails": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "propertyThumbnail": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "contactForAccess": {
            "type": "integer",
            "format": "int64"
          },
          "accessNotes": {
            "type": "string",
            "nullable": true
          },
          "landlordName": {
            "type": "string",
            "nullable": true
          },
          "landlordNumber": {
            "type": "string",
            "nullable": true
          },
          "isTenanted": {
            "type": "boolean"
          },
          "tenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantDetailsDto"
            },
            "nullable": true
          },
          "media": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorJobMedia"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorMaintenanceJobs": {
        "required": [
          "address",
          "clientLogo",
          "teamName"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "clientLogo": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "outstandingJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceJob"
            },
            "nullable": true
          },
          "otherJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceJob"
            },
            "nullable": true
          },
          "outstandingQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceQuote"
            },
            "nullable": true
          },
          "otherQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorMaintenanceQuote"
            },
            "nullable": true
          },
          "allTeams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoardContractorSimpleTeamDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorMaintenanceQuote": {
        "required": [
          "address",
          "agentName",
          "jobDetails"
        ],
        "type": "object",
        "properties": {
          "quoteId": {
            "type": "integer",
            "format": "int64"
          },
          "jobId": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueCode": {
            "type": "string",
            "nullable": true
          },
          "quoteStatus": {
            "type": "integer",
            "format": "int32"
          },
          "jobDetails": {
            "type": "string",
            "nullable": true
          },
          "jobSummary": {
            "type": "string",
            "nullable": true
          },
          "quoteDetails": {
            "type": "string",
            "nullable": true
          },
          "quoteAmount": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteVATPercentage": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteVATAmount": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "quoteAddVAT": {
            "type": "boolean"
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "propertyThumbnail": {
            "type": "string",
            "nullable": true
          },
          "contactForAccess": {
            "type": "integer",
            "format": "int64"
          },
          "accessNotes": {
            "type": "string",
            "nullable": true
          },
          "landlordName": {
            "type": "string",
            "nullable": true
          },
          "landlordNumber": {
            "type": "string",
            "nullable": true
          },
          "isTenanted": {
            "type": "boolean"
          },
          "tenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantDetailsDto"
            },
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "media": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContractorJobMedia"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorMaintenanceQuoteDto": {
        "type": "object",
        "properties": {
          "quoteAmount": {
            "type": "number",
            "format": "double"
          },
          "addQuoteVAT": {
            "type": "boolean"
          },
          "quoteDetails": {
            "type": "string",
            "nullable": true
          },
          "estimatedStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractorRemittance": {
        "type": "object",
        "properties": {
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "statementPrefix": {
            "type": "string",
            "nullable": true
          },
          "remittanceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullRemittanceNumber": {
            "type": "string",
            "nullable": true
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "contractorPayoutBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorPayoutBankAccount": {
            "$ref": "#/components/schemas/AddressbookBankAccount"
          },
          "netToContractor": {
            "type": "number",
            "format": "double"
          },
          "vatToContractor": {
            "type": "number",
            "format": "double"
          },
          "netToAgency": {
            "type": "number",
            "format": "double"
          },
          "vatToAgency": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "contractorPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "contractorPayoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorPayoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "agencyFeePayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "agencyFeePayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "agencyFeePayoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "agencyFeePayoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "contractorPayoutAgencyBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorPayoutAgencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "propertyReceiptDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyChargeContractorReceiptDisbursement"
            },
            "nullable": true
          },
          "propertyFloatOutDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyChargeContractorFloatOutDisbursement"
            },
            "nullable": true
          },
          "tenancyDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyChargeContractorDisbursement"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CustomBrochure": {
        "required": [
          "creatingAgentId",
          "instructionType",
          "orientation",
          "size",
          "teamId",
          "type",
          "updatingAgentId"
        ],
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "type": {
            "$ref": "#/components/schemas/CollateralTemplateType"
          },
          "instructionType": {
            "$ref": "#/components/schemas/CollateralTemplateInstructionType"
          },
          "orientation": {
            "$ref": "#/components/schemas/CollateralTemplateOrientation"
          },
          "size": {
            "$ref": "#/components/schemas/CollateralTemplateSize"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomBrochurePage"
            },
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CustomBrochurePage": {
        "required": [
          "html",
          "priority"
        ],
        "type": "object",
        "properties": {
          "customBrochureId": {
            "type": "integer",
            "format": "int64"
          },
          "customBrochure": {
            "$ref": "#/components/schemas/CustomBrochure"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "html": {
            "minLength": 1,
            "type": "string"
          },
          "editableElements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomBrochurePageEditableElement"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CustomBrochurePageEditableElement": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "customBrochurePageId": {
            "type": "integer",
            "format": "int64"
          },
          "customBrochurePrage": {
            "$ref": "#/components/schemas/CustomBrochurePage"
          },
          "elementType": {
            "$ref": "#/components/schemas/CollateralTemplateElementType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CustomerPreferences": {
        "required": [
          "clientName"
        ],
        "type": "object",
        "properties": {
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "clientLogo": {
            "type": "string",
            "nullable": true
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "gdprGeneralMarketing": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprPropertyMatching": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprThirdParties": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "communicationCall": {
            "type": "boolean"
          },
          "communicationEmail": {
            "type": "boolean"
          },
          "communicationPost": {
            "type": "boolean"
          },
          "communicationText": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DayOfWeek": {
        "enum": [
          "sunday",
          "monday",
          "tuesday",
          "wednesday",
          "thursday",
          "friday",
          "saturday"
        ],
        "type": "string"
      },
      "DepositMovement": {
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "status": {
            "$ref": "#/components/schemas/DepositMovementStatus"
          },
          "depositSchemeId": {
            "type": "integer",
            "format": "int64"
          },
          "depositScheme": {
            "$ref": "#/components/schemas/ClientDepositScheme"
          },
          "schemeReference": {
            "type": "string",
            "nullable": true
          },
          "depositAmount": {
            "type": "number",
            "format": "double"
          },
          "returnNotes": {
            "type": "string",
            "nullable": true
          },
          "returnedTenantAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "returnedPropertyAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "returnedPropertyReceiptId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "returnedPropertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateReturned": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "returnedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "returnedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DepositMovementStatus": {
        "enum": [
          "paidIn",
          "paidOut",
          "returned"
        ],
        "type": "string"
      },
      "DepositScheme": {
        "enum": [
          "none",
          "heldByLandlord",
          "dPSCustodial",
          "dPSInsurance",
          "myDepositsCustodial",
          "myDepositsInsurance",
          "myDepositsJersey",
          "myDepositsScotland",
          "tDS",
          "tDSNI",
          "lPSScotland",
          "safeDepositsScotland",
          "flatFair",
          "zeroDeposit",
          "companyLetNoTDS"
        ],
        "type": "string"
      },
      "DepositSchemeType": {
        "enum": [
          "custodial",
          "insurance",
          "other"
        ],
        "type": "string"
      },
      "DirectViewingLettingsLifecyclePause": {
        "type": "object",
        "properties": {
          "lifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DirectViewingSalesLifecyclePause": {
        "type": "object",
        "properties": {
          "lifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DirectViewingSchedule": {
        "required": [
          "description",
          "name"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "isCustom": {
            "type": "boolean"
          },
          "customSalesLifecycleOwnerId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "customSalesLifecycleOwner": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "customLettingsLifecycleOwnerId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "customLettingsLifecycleOwner": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "name": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "buffer": {
            "type": "integer",
            "format": "int32"
          },
          "advancedNotice": {
            "type": "integer",
            "format": "int32"
          },
          "maxDaysInAdvance": {
            "type": "integer",
            "format": "int32"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingScheduleAgent"
            },
            "nullable": true
          },
          "slots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingScheduleSlot"
            },
            "nullable": true
          },
          "salesProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycle"
            },
            "nullable": true
          },
          "lettingsProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycle"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DirectViewingScheduleAgent": {
        "type": "object",
        "properties": {
          "directViewingScheduleId": {
            "type": "integer",
            "format": "int64"
          },
          "directViewingSchedule": {
            "$ref": "#/components/schemas/DirectViewingSchedule"
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DirectViewingScheduleSlot": {
        "type": "object",
        "properties": {
          "directViewingScheduleId": {
            "type": "integer",
            "format": "int64"
          },
          "directViewingSchedule": {
            "$ref": "#/components/schemas/DirectViewingSchedule"
          },
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ElectricType": {
        "enum": [
          "mainsSupply",
          "privateSupply",
          "windTurbine",
          "solarPVPanels"
        ],
        "type": "string"
      },
      "EmailStyle": {
        "enum": [
          "classic",
          "sleek",
          "prestige",
          "executive",
          "luxe"
        ],
        "type": "string"
      },
      "EndOfTenancyTermStatus": {
        "enum": [
          "unknown",
          "renew",
          "moveOut"
        ],
        "type": "string"
      },
      "EnquiryAutoResponderAnswer": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/EnquiryAutoResponderQuestionType"
          },
          "questionReference": {
            "$ref": "#/components/schemas/EnquiryAutoResponderQuestionReference"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "questionText": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "valueString": {
            "maxLength": 3000,
            "type": "string",
            "nullable": true
          },
          "valueInt": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "buyerEnquiryId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerEnquiry": {
            "$ref": "#/components/schemas/BuyerEnquiry"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "EnquiryAutoResponderDetails": {
        "type": "object",
        "properties": {
          "enquiryId": {
            "type": "integer",
            "format": "int64"
          },
          "enquiry": {
            "$ref": "#/components/schemas/EnquiryAutoResponderEnquiryDetails"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnquiryAutoResponderQuestion"
            },
            "nullable": true
          },
          "property": {
            "$ref": "#/components/schemas/MatchingProperty"
          },
          "settings": {
            "$ref": "#/components/schemas/TeamAutoResponderSettings"
          },
          "teamDetails": {
            "$ref": "#/components/schemas/MatchingTeamDetails"
          }
        },
        "additionalProperties": false
      },
      "EnquiryAutoResponderEnquiryDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "EnquiryAutoResponderQuestion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "$ref": "#/components/schemas/EnquiryAutoResponderQuestionType"
          },
          "questionReference": {
            "$ref": "#/components/schemas/EnquiryAutoResponderQuestionReference"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "questionText": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnquiryAutoResponderQuestionOption"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EnquiryAutoResponderQuestionOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "teamAutoResponderQuestionId": {
            "type": "integer",
            "format": "int64"
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "definedValue": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EnquiryAutoResponderQuestionReference": {
        "enum": [
          "financialPosition",
          "sellingPosition",
          "maxPrice",
          "minBeds",
          "requirementNotes",
          "userDefined"
        ],
        "type": "string"
      },
      "EnquiryAutoResponderQuestionType": {
        "enum": [
          "text",
          "int",
          "singleSelect"
        ],
        "type": "string"
      },
      "EnquiryAutoResponderTeamStatus": {
        "enum": [
          "off",
          "on"
        ],
        "type": "string"
      },
      "EnquirySource": {
        "enum": [
          "rightmoveAPI",
          "zooplaEmail",
          "oTMEmail",
          "vendorWebsite",
          "loopDirectEntry",
          "matching",
          "valPal",
          "referral"
        ],
        "type": "string"
      },
      "EnquiryStatus": {
        "enum": [
          "unprocessed",
          "processedMoreInfoSent",
          "processedViewingBooked",
          "closed",
          "processedAppraisalBooked",
          "processedBuyerCreated"
        ],
        "type": "string"
      },
      "EnrichmentActivityLog": {
        "type": "object",
        "properties": {
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "agentEnrichmentAction": {
            "type": "integer",
            "format": "int32"
          },
          "secondMasterPropertyId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "isApproved": {
            "type": "boolean"
          },
          "comment": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "EntityType": {
        "enum": [
          "none",
          "appraisal",
          "lifecycle",
          "viewing",
          "offer",
          "person",
          "buyer",
          "seller",
          "masterProperty",
          "crmProperty",
          "enquiry",
          "sale",
          "rentalAppraisal",
          "rentalLifecycle",
          "rentalViewing",
          "rentalApplication",
          "renter",
          "landlord",
          "tenancy",
          "rentalEnquiry",
          "suspect",
          "sellerEnquiry",
          "agent",
          "messageLog",
          "externalPerson",
          "activityLogCall",
          "activityTask",
          "activityMeeting",
          "rentalInspection",
          "addressBook",
          "maintenanceJob",
          "maintenanceQuote",
          "landlordStatement",
          "contractorRemittance",
          "directViewingUnconfirmedSalesViewing",
          "directViewingUnconfirmedLettingsViewing",
          "customAppointment",
          "externalEvent"
        ],
        "type": "string"
      },
      "ExtendedAttributeMetadata": {
        "type": "object",
        "properties": {
          "category": {
            "type": "integer",
            "format": "int32"
          },
          "dbType": {
            "type": "integer",
            "format": "int32"
          },
          "frontEndType": {
            "type": "integer",
            "format": "int32"
          },
          "attributeValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtendedAttributeMetadataValue"
            },
            "nullable": true
          },
          "metadataAliases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtendedAttributeMetadataAlias"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExtendedAttributeMetadataAlias": {
        "required": [
          "alias"
        ],
        "type": "object",
        "properties": {
          "extendedAttributeMetadataId": {
            "type": "integer",
            "format": "int32"
          },
          "extendedAttributeMetadata": {
            "$ref": "#/components/schemas/ExtendedAttributeMetadata"
          },
          "alias": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExtendedAttributeMetadataValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "extendedAttributeMetadataId": {
            "type": "integer",
            "format": "int32"
          },
          "extendedAttributeMetadata": {
            "$ref": "#/components/schemas/ExtendedAttributeMetadata"
          },
          "value": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ExternalUser": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "passwordHash": {
            "type": "string",
            "nullable": true
          },
          "inviteHash": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ExternalUserStatus"
          },
          "refreshTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalUserRefreshToken"
            },
            "nullable": true
          },
          "dateLastActive": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "personExternalUser": {
            "$ref": "#/components/schemas/PersonExternalUser"
          },
          "passwordResetToken": {
            "type": "string",
            "nullable": true
          },
          "datePasswordResetTokenRequest": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ExternalUserRefreshToken": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdByIp": {
            "type": "string",
            "nullable": true
          },
          "revokedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "revokedByIp": {
            "type": "string",
            "nullable": true
          },
          "replacedByToken": {
            "type": "string",
            "nullable": true
          },
          "reasonRevoked": {
            "type": "string",
            "nullable": true
          },
          "externalUserId": {
            "type": "string",
            "format": "uuid"
          },
          "externalUser": {
            "$ref": "#/components/schemas/ExternalUser"
          },
          "isExpired": {
            "type": "boolean",
            "readOnly": true
          },
          "isRevoked": {
            "type": "boolean",
            "readOnly": true
          },
          "isActive": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ExternalUserStatus": {
        "enum": [
          "uninvited",
          "invited",
          "active",
          "inactive"
        ],
        "type": "string"
      },
      "FeeStructure": {
        "enum": [
          "noSaleNoFee",
          "upfront",
          "split"
        ],
        "type": "string"
      },
      "GDPRConsentType": {
        "enum": [
          "unknown",
          "consentGiven",
          "consentNotGiven"
        ],
        "type": "string"
      },
      "HealthCheckItem": {
        "enum": [
          "depositSchemeMissingBankDetails"
        ],
        "type": "string"
      },
      "HeatingType": {
        "enum": [
          "mainsGas",
          "lpg",
          "oil",
          "groundSource",
          "electric",
          "biomass",
          "none",
          "airSource",
          "airConditioning",
          "central",
          "ecoFriendly",
          "gasCentral",
          "nightStorage",
          "solar",
          "solarWater",
          "underfloor",
          "woodBurner",
          "openFire",
          "solarPhotovoltaicThermal",
          "underFloorHeating",
          "solarThermal"
        ],
        "type": "string"
      },
      "HiddenMasterProperty": {
        "type": "object",
        "properties": {
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "dateAdded": {
            "type": "string",
            "format": "date-time"
          },
          "loggedUserId": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ImportMappingColumnDto": {
        "type": "object",
        "properties": {
          "column": {
            "type": "integer",
            "format": "int32"
          },
          "field": {
            "$ref": "#/components/schemas/BankTransactionColumn"
          }
        },
        "additionalProperties": false
      },
      "ImportMappingDto": {
        "required": [
          "dateFormat"
        ],
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportMappingColumnDto"
            },
            "nullable": true
          },
          "dateFormat": {
            "type": "string",
            "nullable": true
          },
          "ignoreHeader": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "InactiveAgent": {
        "required": [
          "agentId"
        ],
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "InformationRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "sendBrochure": {
            "type": "boolean"
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reasonForMove": {
            "type": "string",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KeySetCheckedOutType": {
        "enum": [
          "agent",
          "addressBookContact",
          "buyerGroup",
          "sellerGroup"
        ],
        "type": "string"
      },
      "KeySetStatus": {
        "enum": [
          "checkedIn",
          "checkedOut",
          "released"
        ],
        "type": "string"
      },
      "Landlord": {
        "required": [
          "landlordGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "landlordGroupName": {
            "type": "string",
            "nullable": true
          },
          "landlordIsGroup": {
            "type": "boolean"
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSummary"
            },
            "nullable": true
          },
          "property": {
            "$ref": "#/components/schemas/RentalPropertySummary"
          }
        },
        "additionalProperties": false
      },
      "LandlordGroup": {
        "type": "object",
        "properties": {
          "landlordProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordProfile"
            },
            "nullable": true
          },
          "lettingsLifecycles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycle"
            },
            "nullable": true
          },
          "nameAlias": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "addressee": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "maintenanceNotes": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "name": {
            "maxLength": 2048,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryEmail": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "cacheSearch": {
            "maxLength": 2048,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LandlordProfile": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "landlordGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordGroup": {
            "$ref": "#/components/schemas/LandlordGroup"
          },
          "percentageSplit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "preferenceMarketAppraisal": {
            "type": "boolean"
          },
          "preferenceProperty": {
            "type": "boolean"
          },
          "preferenceViewing": {
            "type": "boolean"
          },
          "preferenceApplication": {
            "type": "boolean"
          },
          "preferenceTenancy": {
            "type": "boolean"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LandlordStatement": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "dateRangeStart": {
            "type": "string",
            "format": "date"
          },
          "dateRangeEnd": {
            "type": "string",
            "format": "date"
          },
          "retainedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "retainNotes": {
            "type": "string",
            "nullable": true
          },
          "floatUsed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "floatToppedUp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "closingFloatBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "statementPrefix": {
            "type": "string",
            "nullable": true
          },
          "statementNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullStatementNumber": {
            "type": "string",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "floatOutChargeAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutAllocation"
            },
            "nullable": true
          },
          "floatOutFloatInAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutFloatInAllocation"
            },
            "nullable": true
          },
          "floatOutRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutRefund"
            },
            "nullable": true
          },
          "receiptChargeAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptAllocation"
            },
            "nullable": true
          },
          "floatInReceiptAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptFloatInAllocation"
            },
            "nullable": true
          },
          "propertyRefunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRefund"
            },
            "nullable": true
          },
          "receiptLandlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "floatOutLandlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LandlordStatementLandlordPayout": {
        "required": [
          "reference"
        ],
        "type": "object",
        "properties": {
          "landlordStatementId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "landlordId": {
            "type": "integer",
            "format": "int64"
          },
          "landlord": {
            "$ref": "#/components/schemas/Person"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "percentageSplit": {
            "type": "number",
            "format": "double"
          },
          "nrlHeldBack": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "landlordBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordBankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "receiptAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "floatAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "transferInAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LandlordSummary": {
        "required": [
          "landlordGroupName",
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "landlordGroupName": {
            "type": "string",
            "nullable": true
          },
          "landlordIsGroup": {
            "type": "boolean"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyStatus": {
            "$ref": "#/components/schemas/RentalPropertyStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LeaseType": {
        "enum": [
          "notSet",
          "assuredShortholdTenancy",
          "assuredTenancy",
          "longLeasehold",
          "licence",
          "periodic",
          "companyTenancy",
          "periodicOccupationalContract",
          "fixedTermOccupationalContract"
        ],
        "type": "string"
      },
      "LedgerAutoAllocationPrecedence": {
        "enum": [
          "rent",
          "deposit",
          "contractorInvoices",
          "agencyInvoices",
          "propertyInvoices",
          "floatReplenishment"
        ],
        "type": "string"
      },
      "LedgerAutoAllocationType": {
        "enum": [
          "oldestFirst",
          "precedenceBased"
        ],
        "type": "string"
      },
      "LedgerChargeType": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "function": {
            "$ref": "#/components/schemas/LedgerChargeTypeFunction"
          },
          "name": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "isSystem": {
            "type": "boolean"
          },
          "isReserved": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "onTenancyLedger": {
            "type": "boolean"
          },
          "onPropertyLedger": {
            "type": "boolean"
          },
          "payableToAgency": {
            "type": "boolean"
          },
          "payableToContractor": {
            "type": "boolean"
          },
          "payableToProperty": {
            "type": "boolean",
            "nullable": true
          },
          "nonTaxDeductible": {
            "type": "boolean",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LedgerChargeTypeFunction": {
        "enum": [
          "rent",
          "securityDeposit",
          "fee",
          "expense",
          "openingBalance",
          "upliftFee"
        ],
        "type": "string"
      },
      "LetterLadderTrigger": {
        "type": "object",
        "properties": {
          "prospectingCategory": {
            "$ref": "#/components/schemas/ProspectingStatus"
          },
          "selectedTemplateId": {
            "type": "integer",
            "format": "int32"
          },
          "selectedTemplate": {
            "$ref": "#/components/schemas/LetterTemplate"
          },
          "triggerDays": {
            "type": "integer",
            "format": "int32"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LetterTemplate": {
        "type": "object",
        "properties": {
          "prospectingCategory": {
            "$ref": "#/components/schemas/ProspectingStatus"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "externalId": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LetterTemplateLog": {
        "type": "object",
        "properties": {
          "generatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "templateId": {
            "type": "integer",
            "format": "int32"
          },
          "prospectingCategory": {
            "$ref": "#/components/schemas/ProspectingStatus"
          },
          "agentName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "property": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "templateName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "generatedBy": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LetterTemplateSelected": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "integer",
            "format": "int32"
          },
          "prospectingCategory": {
            "$ref": "#/components/schemas/ProspectingStatus"
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LettingFeeType": {
        "enum": [
          "percentage",
          "fixed"
        ],
        "type": "string"
      },
      "LettingsApplication": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "tenancyId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "status": {
            "$ref": "#/components/schemas/RentalApplicationStatus"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "rent": {
            "type": "number",
            "format": "double"
          },
          "rentalType": {
            "$ref": "#/components/schemas/PriceType"
          },
          "deposit": {
            "type": "number",
            "format": "double"
          },
          "holdingDeposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "holdingDepositRequestedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "holdingDepositRequestedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "tenancyTermType": {
            "$ref": "#/components/schemas/TenancyTermType"
          },
          "tenancyTermDuration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tenancyTermDurationDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "proposedStartDate": {
            "type": "string",
            "format": "date-time"
          },
          "proposedEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "earliestTerminationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tenancyRenewalDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "applicantRequirements": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "landlordNotes": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "comment": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "dateAccepted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateReferencesAccepted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCancelled": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancellationReason": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "closingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "closingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "negotiatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "negotiatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "leaseType": {
            "$ref": "#/components/schemas/RentalLeaseType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsEnquiry": {
        "type": "object",
        "properties": {
          "lettingsLifecycleListingId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycleListing": {
            "$ref": "#/components/schemas/LettingsLifecycleListing"
          },
          "status": {
            "$ref": "#/components/schemas/EnquiryStatus"
          },
          "enquirySource": {
            "$ref": "#/components/schemas/EnquirySource"
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "address": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "maxLength": 12,
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reasonForMove": {
            "type": "string",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          },
          "dateProcessed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "processingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "processingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "associatedRentalViewingId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "associatedRentalViewing": {
            "$ref": "#/components/schemas/LettingsViewing"
          },
          "claimingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "claimingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "deepLink": {
            "type": "string",
            "nullable": true
          },
          "webVerificationHash": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsKeySet": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "keyNotes": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/KeySetStatus"
          },
          "numberOfKeys": {
            "type": "integer",
            "format": "int32"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateExpectedBack": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "photoURL": {
            "type": "string",
            "nullable": true
          },
          "keySetLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsKeySetLog"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsKeySetLog": {
        "type": "object",
        "properties": {
          "lettingsKeySetId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsKeySet": {
            "$ref": "#/components/schemas/LettingsKeySet"
          },
          "status": {
            "$ref": "#/components/schemas/KeySetStatus"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "loggedByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "loggedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "outType": {
            "$ref": "#/components/schemas/RentalKeySetCheckedOutType"
          },
          "toAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "toAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "toAddressBookContactId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toAddressBookContact": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "toRentalGroupId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toRentalGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "toLandlordGroupId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toLandlordGroup": {
            "$ref": "#/components/schemas/LandlordGroup"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycle": {
        "type": "object",
        "properties": {
          "landlordGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordGroup": {
            "$ref": "#/components/schemas/LandlordGroup"
          },
          "status": {
            "$ref": "#/components/schemas/RentalLifecycleStatus"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "withdrawalType": {
            "$ref": "#/components/schemas/RentalLifecycleWithdrawalType"
          },
          "withdrawalReason": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "kitchens": {
            "type": "integer",
            "format": "int32"
          },
          "isDirectBookingEnabled": {
            "type": "boolean"
          },
          "directViewingScheduleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "directViewingSchedule": {
            "$ref": "#/components/schemas/DirectViewingSchedule"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "appraisalTeamId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "appraisalTeam": {
            "$ref": "#/components/schemas/Team"
          },
          "teamMatchingAreaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "teamMatchingArea": {
            "$ref": "#/components/schemas/TeamMatchingArea"
          },
          "dateFirstAvailable": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "rent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rentalType": {
            "$ref": "#/components/schemas/PriceType"
          },
          "deposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "findingFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "findingFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "letPeriod": {
            "$ref": "#/components/schemas/RentalsLetPeriod"
          },
          "floatLevel": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "hideRentOnWebsite": {
            "type": "boolean"
          },
          "furnishings": {
            "$ref": "#/components/schemas/RentalFurnishings"
          },
          "letTypeProfessional": {
            "type": "boolean"
          },
          "letTypeStudent": {
            "type": "boolean"
          },
          "letTypeMultipleOccupancy": {
            "type": "boolean"
          },
          "requirementNoSmokers": {
            "type": "boolean"
          },
          "requirementNoPets": {
            "type": "boolean"
          },
          "requirementNoChildren": {
            "type": "boolean"
          },
          "requirementNoStudents": {
            "type": "boolean"
          },
          "requirementNoSharers": {
            "type": "boolean"
          },
          "includedBillsElectricity": {
            "type": "boolean"
          },
          "includedBillsGas": {
            "type": "boolean"
          },
          "includedBillsWater": {
            "type": "boolean"
          },
          "includedTvLicense": {
            "type": "boolean"
          },
          "includedTvSubscription": {
            "type": "boolean"
          },
          "includedInternet": {
            "type": "boolean"
          },
          "includedWashingMachine": {
            "type": "boolean"
          },
          "includedDishwasher": {
            "type": "boolean"
          },
          "includedAlarm": {
            "type": "boolean"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isAccompanied": {
            "type": "boolean"
          },
          "viewingPreference": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingArrangements": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "accessAndAlarm": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "keys": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "directions": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "maintenanceNotes": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "property": {
            "$ref": "#/components/schemas/Property"
          },
          "crmLocalAuthorityId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "crmLocalAuthority": {
            "$ref": "#/components/schemas/LocalAuthority"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time"
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "gasProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "electricProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "waterProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "telecomsProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "appraisalStatus": {
            "$ref": "#/components/schemas/RentalAppraisalStatus"
          },
          "appraisalRent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "appraisalRentalType": {
            "$ref": "#/components/schemas/PriceType"
          },
          "appraisalDeposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "appraisalManagementFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "appraisalManagementFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "rentalServiceLevel": {
            "$ref": "#/components/schemas/RentalServiceLevel"
          },
          "nextCallDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextCallSubject": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "lowGuideRent": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "highGuideRent": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "feeNotes": {
            "type": "string",
            "nullable": true
          },
          "leaseType": {
            "$ref": "#/components/schemas/RentalLeaseType"
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "cache_LedgerBalance": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cache_LedgerOutstanding": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cache_LedgerUnreconciled": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cache_LedgerUnallocated": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cache_LedgerPayable": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "lifecyclePropertyAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecyclePropertyAttribute"
            },
            "nullable": true
          },
          "lifecycleAppraisalQuestionAnswer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleAppraisalQuestionAnswer"
            },
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleFeature"
            },
            "nullable": true
          },
          "lettingsLifecycleMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleMedia"
            },
            "nullable": true
          },
          "lifecycleListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleListing"
            },
            "nullable": true
          },
          "lettingsMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsMatch"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsViewing"
            },
            "nullable": true
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsApplication"
            },
            "nullable": true
          },
          "tenancies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tenancy"
            },
            "nullable": true
          },
          "crmRentalLifecycleRooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleRoom"
            },
            "nullable": true
          },
          "crmRentalKeySets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsKeySet"
            },
            "nullable": true
          },
          "customViewingSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingSchedule"
            },
            "nullable": true
          },
          "crmRentalBoardType": {
            "$ref": "#/components/schemas/RentalBoardType"
          },
          "boardContractorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "boardContractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "refId": {
            "maxLength": 30,
            "type": "string",
            "nullable": true
          },
          "dateLetAgreed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLet": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lettsPayId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "isPoa": {
            "type": "boolean"
          },
          "landlordPaymentReference": {
            "maxLength": 25,
            "type": "string",
            "nullable": true
          },
          "tenantPaymentReference": {
            "maxLength": 25,
            "type": "string",
            "nullable": true
          },
          "clientAgencyBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "clientAgencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "depositAgencyBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "depositAgencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "agencyBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "agencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "portalCallbackUrl": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "appraisalLostReason": {
            "$ref": "#/components/schemas/AppraisalLostReason"
          },
          "floatOuts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOut"
            },
            "nullable": true
          },
          "floatIns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatIn"
            },
            "nullable": true
          },
          "schedulePauses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingLettingsLifecyclePause"
            },
            "nullable": true
          },
          "openingBalance": {
            "$ref": "#/components/schemas/PropertyOpeningBalance"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleAppraisalQuestionAnswer": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifeCycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "question": {
            "maxLength": 250,
            "type": "string",
            "nullable": true
          },
          "answer": {
            "maxLength": 500,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleCertificate": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "certificateType": {
            "$ref": "#/components/schemas/CertificateType"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time"
          },
          "remindMe": {
            "type": "boolean"
          },
          "remindMeDays": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/CertificateStatus"
          },
          "certificateNumber": {
            "maxLength": 40,
            "type": "string",
            "nullable": true
          },
          "contractorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "notes": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "notRenewing": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "updatedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "media": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycleCertificateMedia"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleCertificateMedia": {
        "required": [
          "lettingsLifecycleCertificateId",
          "url"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleCertificateId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycleCertificate": {
            "$ref": "#/components/schemas/LettingsLifecycleCertificate"
          },
          "url": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleFeature": {
        "required": [
          "featureText"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "featureText": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleListing": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "channel": {
            "$ref": "#/components/schemas/LifecycleListingChannel"
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleListingStatus"
          },
          "dateListed": {
            "type": "string",
            "format": "date-time"
          },
          "dateDelisted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "listingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "listingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "lettingsEnquiries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsEnquiry"
            },
            "nullable": true
          },
          "listingUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "displayType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "listingStatus": {
            "$ref": "#/components/schemas/RentalLifecycleMarketingStatus"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleMedia": {
        "required": [
          "fileName",
          "filePath",
          "mimeType"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "fileName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "filePath": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          },
          "mediaType": {
            "$ref": "#/components/schemas/MediaType"
          },
          "mimeType": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "collateralId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "collateral": {
            "$ref": "#/components/schemas/CustomBrochure"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecyclePropertyAttribute": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "extendedAttributeMetadataId": {
            "type": "integer",
            "format": "int32"
          },
          "extendedAttributeMetadata": {
            "$ref": "#/components/schemas/ExtendedAttributeMetadata"
          },
          "valueText": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "valueBoolean": {
            "type": "boolean",
            "nullable": true
          },
          "valueInt": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "valueDecimal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsLifecycleRoom": {
        "required": [
          "description",
          "name"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "imageId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "image": {
            "$ref": "#/components/schemas/LettingsLifecycleMedia"
          },
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 3000,
            "minLength": 1,
            "type": "string"
          },
          "width": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dimensionsLabel": {
            "type": "string",
            "nullable": true
          },
          "floor": {
            "$ref": "#/components/schemas/RoomFloor"
          },
          "type": {
            "$ref": "#/components/schemas/RoomType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsMaintenanceJob": {
        "required": [
          "lettingsLifecycleId"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "refId": {
            "maxLength": 30,
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MaintenanceJobStatus"
          },
          "subType": {
            "$ref": "#/components/schemas/MaintenanceJobSubType"
          },
          "certificateType": {
            "$ref": "#/components/schemas/CertificateType"
          },
          "certificateToRenewId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "certificateToRenew": {
            "$ref": "#/components/schemas/LettingsLifecycleCertificate"
          },
          "includeCertificateInCommunications": {
            "type": "boolean"
          },
          "certificateCreatedId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "certificateCreated": {
            "$ref": "#/components/schemas/LettingsLifecycleCertificate"
          },
          "summary": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "dateReported": {
            "type": "string",
            "format": "date-time"
          },
          "isEmergency": {
            "type": "boolean"
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "quotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsMaintenanceJobQuote"
            },
            "nullable": true
          },
          "media": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsMaintenanceJobMedia"
            },
            "nullable": true
          },
          "contactForAccess": {
            "$ref": "#/components/schemas/RentalMaintenanceJobAccessContact"
          },
          "accessNotes": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "reportedBy": {
            "$ref": "#/components/schemas/RentalMaintenanceJobReportedBy"
          },
          "reportedByNotes": {
            "type": "string",
            "nullable": true
          },
          "jobDetails": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "externalDescription": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "dateQuoteBy": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedCost": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "acceptedQuoteId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "acceptedQuote": {
            "$ref": "#/components/schemas/LettingsMaintenanceJobQuote"
          },
          "datePaymentDue": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "invoiceURL": {
            "type": "string",
            "nullable": true
          },
          "supplierInvoiceNumber": {
            "maxLength": 40,
            "type": "string",
            "nullable": true
          },
          "invoiceAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "invoiceVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "invoiceVATAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "invoiceVATPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "updatedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCancelled": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "cancelledByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "cancellationReason": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "dateApproved": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "approvedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "approvedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "completedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateInvoiceReceived": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateInvoicePaid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "invoicePaidAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "invoicePaidAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "lettsPayInvoiceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "fromSafetyCertificate": {
            "type": "boolean",
            "nullable": true
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsMaintenanceJobMedia": {
        "required": [
          "lettingsMaintenanceJobId"
        ],
        "type": "object",
        "properties": {
          "lettingsMaintenanceJobId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsMaintenanceJob": {
            "$ref": "#/components/schemas/LettingsMaintenanceJob"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsMaintenanceJobQuote": {
        "required": [
          "lettingsMaintenanceJobId",
          "status"
        ],
        "type": "object",
        "properties": {
          "lettingsMaintenanceJobId": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueCode": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "lettingsMaintenanceJob": {
            "$ref": "#/components/schemas/LettingsMaintenanceJob"
          },
          "status": {
            "$ref": "#/components/schemas/MaintenanceJobQuoteStatus"
          },
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "quoteAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quoteVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "quoteVATPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quoteVATAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "agencyFeeVATPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "details": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "estimatedStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentSource": {
            "$ref": "#/components/schemas/MaintenanceJobQuotePaymentSource"
          },
          "dateScheduled": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "createdByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "createdByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateRejected": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rejectionReason": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "rejectedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "rejectedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedByAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsMatch": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "followUpStatus": {
            "$ref": "#/components/schemas/MatchFollowUpStatus"
          },
          "followUpNotes": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "$ref": "#/components/schemas/MatchSource"
          },
          "type": {
            "$ref": "#/components/schemas/MatchType"
          },
          "lettingsMatchHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsMatchHistory"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsMatchHistory": {
        "type": "object",
        "properties": {
          "lettingsMatchId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsMatch": {
            "$ref": "#/components/schemas/LettingsMatch"
          },
          "action": {
            "$ref": "#/components/schemas/MatchAction"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsPersonGuarantor": {
        "required": [
          "firstName",
          "lastName",
          "renterProfileId"
        ],
        "type": "object",
        "properties": {
          "renterProfileId": {
            "type": "integer",
            "format": "int64"
          },
          "renterProfile": {
            "$ref": "#/components/schemas/RenterProfile"
          },
          "title": {
            "maxLength": 32,
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "lastName": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "phoneNumber": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "address1": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address2": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address3": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "county": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "nullable": true
          },
          "relationshipToTenant": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LettingsViewing": {
        "type": "object",
        "properties": {
          "crmRentalLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "crmRentalLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "crmLandlordGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "crmLandlordGroup": {
            "$ref": "#/components/schemas/LandlordGroup"
          },
          "crmRentalGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "crmRentalGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "status": {
            "$ref": "#/components/schemas/ViewingLettingsStatus"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "dateRenterFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "renterFeedback": {
            "type": "string",
            "nullable": true
          },
          "dateLandlordFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "landlordFeedback": {
            "type": "string",
            "nullable": true
          },
          "renterConfirmed": {
            "type": "boolean"
          },
          "landlordConfirmed": {
            "type": "boolean"
          },
          "tennantConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "dateDone": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "sendAvf": {
            "type": "boolean"
          },
          "avfDelay": {
            "type": "integer",
            "format": "int32"
          },
          "renterOpinion": {
            "$ref": "#/components/schemas/ViewingViewerOpinion"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LifecycleListingChannel": {
        "enum": [
          "rightmove",
          "onTheMarket",
          "zoopla",
          "valPal",
          "boomin",
          "homeFlow",
          "website",
          "api",
          "matching"
        ],
        "type": "string"
      },
      "LifecycleListingStatus": {
        "enum": [
          "notLaunched",
          "working",
          "live",
          "delisted",
          "launchError"
        ],
        "type": "string"
      },
      "LifecycleMarketingStatus": {
        "enum": [
          "notListed",
          "forSale",
          "soldSTC",
          "sold",
          "underOffer"
        ],
        "type": "string"
      },
      "LifecycleStatus": {
        "enum": [
          "appraisal",
          "premarket",
          "forSale",
          "underOffer",
          "exchanged",
          "completed",
          "withdrawn",
          "none"
        ],
        "type": "string"
      },
      "ListingSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "channel": {
            "$ref": "#/components/schemas/LifecycleListingChannel"
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleListingStatus"
          },
          "dateListed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "listingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "displayType": {
            "$ref": "#/components/schemas/PropertyType"
          }
        },
        "additionalProperties": false
      },
      "LocalAuthority": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "LoopPerson": {
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "contactNotes": {
            "type": "string",
            "nullable": true
          },
          "primaryPhone": {
            "type": "string",
            "nullable": true
          },
          "primaryPhoneType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "primaryPhoneNotes": {
            "type": "string",
            "nullable": true
          },
          "primaryEmail": {
            "type": "string",
            "nullable": true
          },
          "primaryEmailType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "primaryEmailNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "houseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "houseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "locality": {
            "type": "string",
            "nullable": true
          },
          "town": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "county": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "buyerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerSummary"
            },
            "nullable": true
          },
          "sellerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SellerSummary"
            },
            "nullable": true
          },
          "renterIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "landlordIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "gdprGeneralMarketing": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprPropertyMatching": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprThirdParties": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "communicationCall": {
            "type": "boolean"
          },
          "communicationEmail": {
            "type": "boolean"
          },
          "communicationPost": {
            "type": "boolean"
          },
          "communicationText": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LoopProperty": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateUnderOffer": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateExchanged": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "priceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "propertyAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "amlVerified": {
            "type": "string",
            "nullable": true
          },
          "marketingFlag_NewToMarket": {
            "type": "boolean"
          },
          "marketingFlag_PriceReduction": {
            "type": "boolean"
          },
          "marketingFlag_FeaturedProperty": {
            "type": "boolean"
          },
          "marketingFlag_DigitalCarousel": {
            "type": "boolean"
          },
          "marketingFlag_ChainFree": {
            "type": "boolean"
          },
          "marketingFlag_NewBuild": {
            "type": "boolean"
          },
          "marketingFlag_DevelopmentOpportunity": {
            "type": "boolean"
          },
          "tenure": {
            "type": "string",
            "nullable": true
          },
          "leaseExpiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "localAuthority": {
            "type": "string",
            "nullable": true
          },
          "serviceCharge": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "groundRent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isDirectViewingsEnabled": {
            "type": "boolean"
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewingSummary"
            },
            "nullable": true
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferSummary"
            },
            "nullable": true
          },
          "marketListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingSummary"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRoom"
            },
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/SalesPropertyMaterialInformation"
          },
          "saleBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseError": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ResponseErrorCode"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfBoardContractorJobs": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/BoardContractorJobs"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfBoolean": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfBooleanResponse": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/BooleanResponse"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfBuyer": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/Buyer"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfContractorJobQuotes": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/ContractorJobQuotes"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfContractorMaintenanceJobs": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/ContractorMaintenanceJobs"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfCustomerPreferences": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/CustomerPreferences"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfEnquiryAutoResponderDetails": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/EnquiryAutoResponderDetails"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfLandlord": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/Landlord"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfAvailableTimeRange": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableTimeRange"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfBuyerSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfLandlordSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfMatchingPropertySummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MatchingPropertySummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfPersonSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfPropertyListing": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyListing"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfPropertySummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertySummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfRentalMatchingPropertySummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalMatchingPropertySummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfRentalPropertyListing": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalPropertyListing"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfRentalPropertySummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalPropertySummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfRentalViewingSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalViewingSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfRenterSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfSellerSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SellerSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfListOfViewingSummary": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewingSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfMatchingProperty": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/MatchingProperty"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfNumberResponse": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/NumberResponse"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfPerson": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/LoopPerson"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfProperty": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/LoopProperty"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfPropertyPreview": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/PropertyPreview"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRentalMatchingProperty": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RentalMatchingProperty"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRentalProperty": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RentalProperty"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRentalPropertyPreview": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RentalPropertyPreview"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRentalViewing": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RentalViewing"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRentalViewingFeedback": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RentalViewingFeedback"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfRenter": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/Renter"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfSeller": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/Seller"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfTeam": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/LoopTeam"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfViewing": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/Viewing"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseOfViewingFeedback": {
        "type": "object",
        "properties": {
          "statusCode": {
            "$ref": "#/components/schemas/LoopStatusCode"
          },
          "httpResponseCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseError"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoopResponseWarning"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/ViewingFeedback"
          }
        },
        "additionalProperties": false
      },
      "LoopResponseWarning": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ResponseWarningCode"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoopStatusCode": {
        "enum": [
          "error",
          "success",
          "successWithWarnings"
        ],
        "type": "string",
        "description": "The status of the response, if error then the error messages will be listed in the errors attribute, if successWithWarnings then the warning messages will be listed in the errors attribute."
      },
      "LoopTeam": {
        "required": [
          "teamName"
        ],
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "format": "uuid"
          },
          "clientName": {
            "type": "string",
            "nullable": true
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "address1": {
            "type": "string",
            "nullable": true
          },
          "address2": {
            "type": "string",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "websiteUrl": {
            "type": "string",
            "nullable": true
          },
          "primaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "primaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "secondaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "secondaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "websiteContactUrl": {
            "type": "string",
            "nullable": true
          },
          "websitePropertiesUrl": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "nullable": true
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMember"
            },
            "nullable": true
          },
          "prospectingOutcodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "matchingOutcodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MaintenanceJobAgencyFeeType": {
        "enum": [
          "percentage",
          "fixedFee"
        ],
        "type": "string"
      },
      "MaintenanceJobQuotePaymentSource": {
        "enum": [
          "rent",
          "landlordDirect",
          "tenant",
          "insurance"
        ],
        "type": "string"
      },
      "MaintenanceJobQuoteStatus": {
        "enum": [
          "pending",
          "received",
          "accepted",
          "rejected"
        ],
        "type": "string"
      },
      "MaintenanceJobStatus": {
        "enum": [
          "notAcknowledged",
          "pending",
          "cancelled",
          "approved",
          "complete",
          "invoiceReceived",
          "invoicePaid"
        ],
        "type": "string"
      },
      "MaintenanceJobSubType": {
        "enum": [
          "alarmsSmokeDetectorsCarbonMonoxideAlarmProblem",
          "alarmsSmokeDetectorsSecurityAlarmProblem",
          "alarmsSmokeDetectorsSmokeAlarmBeeping",
          "alarmsSmokeDetectorsSmokeAlarmNotWorking",
          "alarmsSmokeDetectorsSmokeAlarmTooSensitive",
          "alarmsSmokeDetectorsOther",
          "appliancesKitchenHouseholdDishwasher",
          "appliancesKitchenHouseholdElectricHeater",
          "appliancesKitchenHouseholdExtractorFan",
          "appliancesKitchenHouseholdExtractorHood",
          "appliancesKitchenHouseholdFridgeFreezer",
          "appliancesKitchenHouseholdMicrowave",
          "appliancesKitchenHouseholdOvenCooker",
          "appliancesKitchenHouseholdTelevision",
          "appliancesKitchenHouseholdTumbleDryer",
          "appliancesKitchenHouseholdWashingMachine",
          "appliancesKitchenHouseholdOther",
          "bathroomsToiletsBathroomLeakNonEmergency",
          "bathroomsToiletsBathroomLeakSerious",
          "bathroomsToiletsExtractorFanNotWorking",
          "bathroomsToiletsFlooringCarpetProblem",
          "bathroomsToiletsNotWaterNotWorking",
          "bathroomsToiletsLightNotWorking",
          "bathroomsToiletsPipeLeaking",
          "bathroomsToiletsRadiatorsHeatersTowelRadiator",
          "bathroomsToiletsSealantGroutingTilesIssue",
          "bathroomsToiletsShowerProblem",
          "bathroomsToiletsTapDripping",
          "bathroomsToiletsTapLeaking",
          "bathroomsToiletsTapLoose",
          "bathroomsToiletsTapNotWorking",
          "bathroomsToiletsToiletBlockedToilet",
          "bathroomsToiletsToiletHandleBroken",
          "bathroomsToiletsToiletLeakOnToiletPipework",
          "bathroomsToiletsToiletLeakFromToiletBasin",
          "bathroomsToiletsToiletNotFlushingProperly",
          "bathroomsToiletsToiletSeatBroken",
          "bathroomsToiletsTowelRailIssue",
          "bathroomsToiletsWindowProblem",
          "bathroomsToiletsOther",
          "blindsCurtainsFurnitureFixturesFittingsBlindBrokenProblem",
          "blindsCurtainsFurnitureFixturesFittingsCurtainPoileFallenDownBroken",
          "blindsCurtainsFurnitureFixturesFittingsFurnitureProblem",
          "blindsCurtainsFurnitureFixturesFittingsWallFixingsProblem",
          "blindsCurtainsFurnitureFixturesFittingsOther",
          "boilersHeatingHotWaterBoilerIssues",
          "boilersHeatingHotWaterNoHotWater",
          "boilersHeatingHotWaterNoHeating",
          "boilersHeatingHotWaterNoHotWaterAndNoHeating",
          "boilersHeatingHotWaterNotWaterProblemToOneTap",
          "boilersHeatingHotWaterRadiatorNotGettingHot",
          "boilersHeatingHotWaterRadiatorLeaking",
          "boilersHeatingHotWaterShowerHotWaterIssue",
          "boilersHeatingHotWaterOther",
          "doorsWindowsLocksBackDoorIssue",
          "doorsWindowsLocksCupboardDoorIssue",
          "doorsWindowsLocksDoorHandleIssue",
          "doorsWindowsLocksExternalDoorLockIssue",
          "doorsWindowsLocksFrontDoorIssue",
          "doorsWindowsLocksInternalDoorLockIssue",
          "doorsWindowsLocksPatioDoorIssue",
          "doorsWindowsLocksWindowLatchProblem",
          "doorsWindowsLocksWindowBroken",
          "doorsWindowsLocksWindowCracked",
          "doorsWindowsLocksWindowHandleProblem",
          "doorsWindowsLocksOther",
          "drainageGutteringBathDrainProblem",
          "drainageGutteringBathroomSinkDrainProblem",
          "drainageGutteringKitchenSinkDrainProblem",
          "drainageGutteringShowerDrainProblem",
          "drainageGutteringToiletSinkDrainProblem",
          "drainageGutteringDrainsSmelling",
          "drainageGutteringExternalDrainIssue",
          "drainageGutteringExternalGutteringIssue",
          "drainageGutteringLeakingWastePipe",
          "drainageGutteringOther",
          "electricityLightingElectricFuseBoxTripping",
          "electricityLightingNoElectricsLightsAndSockets",
          "electricityLightingNoElectricsJustLights",
          "electricityLightingNoElectricsJustSockets",
          "electricityLightingPlugSocketNotWorking",
          "electricityLightingPlugSocketDamagedLoose",
          "electricityLightingLightBulbNeedsReplacing",
          "electricityLightingLightNotWorkingSingleLight",
          "electricityLightingLightNotWorkingAllLights",
          "electricityLightingLightSwitchNotWorkingBroken",
          "electricityLightingOther",
          "gardenPropertyExteriorBlockedExternalDrain",
          "gardenPropertyExteriorFencingDamaged",
          "gardenPropertyExteriorFencingFallenDown",
          "gardenPropertyExteriorGarageDoorProblem",
          "gardenPropertyExteriorGardenIssue",
          "gardenPropertyExteriorGutteringProblem",
          "gardenPropertyExteriorShedProblem",
          "gardenPropertyExteriorOutsideWallIssue",
          "gardenPropertyExteriorOther",
          "leaksRunningWaterTapsLeakEmergency",
          "leaksRunningWaterTapsLeakMinorNoDamage",
          "leaksRunningWaterTapsFlatAboveLeaking",
          "leaksRunningWaterTapsLeakIntoAnotherFloorOrProperty",
          "leaksRunningWaterTapsEmergencyLeakToiletLeakPipeRadiator",
          "leaksRunningWaterTapsWaterLeakOther",
          "leaksRunningWaterTapsOverflowPipeIssue",
          "leaksRunningWaterTapsRadiatorLeaking",
          "leaksRunningWaterTapsTapNotWorking",
          "leaksRunningWaterTapsTapDripping",
          "leaksRunningWaterTapsTapLeaking",
          "leaksRunningWaterTapsTapLoose",
          "leaksRunningWaterTapsTapJammed",
          "leaksRunningWaterTapsWashingMachineLeaking",
          "leaksRunningWaterTapsOther",
          "otherSmell",
          "otherDamp",
          "otherPestsMiceRats",
          "otherWasp",
          "otherOther"
        ],
        "type": "string"
      },
      "MasterAgent": {
        "type": "object",
        "properties": {
          "address": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "logo": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "nameAlias": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "office": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "maxLength": 32,
            "type": "string",
            "nullable": true
          },
          "masterPropertyTimelines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterPropertyTimeline"
            },
            "nullable": true
          },
          "isMerged": {
            "type": "boolean"
          },
          "mergeWithId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Team"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "MasterFeature": {
        "type": "object",
        "properties": {
          "dataSource": {
            "type": "integer",
            "format": "int32"
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "featureText": {
            "type": "string",
            "nullable": true
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterMedia": {
        "type": "object",
        "properties": {
          "blobStorageName": {
            "type": "string",
            "nullable": true
          },
          "blobStoragePath": {
            "type": "string",
            "nullable": true
          },
          "blobStorageUrl": {
            "type": "string",
            "nullable": true
          },
          "dataSource": {
            "type": "integer",
            "format": "int32"
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "mediaType": {
            "type": "integer",
            "format": "int32"
          },
          "modifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "sourceUrl": {
            "type": "string",
            "nullable": true
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "isMain": {
            "type": "boolean"
          },
          "hasBig": {
            "type": "boolean",
            "nullable": true
          },
          "hasMedium": {
            "type": "boolean",
            "nullable": true
          },
          "hasSmall": {
            "type": "boolean",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterProperty": {
        "type": "object",
        "properties": {
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "country": {
            "type": "integer",
            "format": "int32"
          },
          "county": {
            "type": "string",
            "nullable": true
          },
          "dateBuilt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "floorAreaSqFt": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "paon": {
            "type": "string",
            "nullable": true
          },
          "saon": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "locality": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "newBuild": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "town": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "format": "int32"
          },
          "tenure": {
            "type": "string",
            "nullable": true
          },
          "masterFeatures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterFeature"
            },
            "nullable": true
          },
          "masterMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterMedia"
            },
            "nullable": true
          },
          "masterPropertyTimelines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterPropertyTimeline"
            },
            "nullable": true
          },
          "masterPropertyActiveListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterPropertyActiveListing"
            },
            "nullable": true
          },
          "masterPropertyLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterPropertyLink"
            },
            "nullable": true
          },
          "masterPropertyNotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterPropertyNote"
            },
            "nullable": true
          },
          "hiddenMasterProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HiddenMasterProperty"
            },
            "nullable": true
          },
          "letterTemplatesLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LetterTemplateLog"
            },
            "nullable": true
          },
          "enrichmentActivityLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnrichmentActivityLog"
            },
            "nullable": true
          },
          "userPropertyMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserPropertyMedia"
            },
            "nullable": true
          },
          "userPropertySpyShots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserPropertySpyShot"
            },
            "nullable": true
          },
          "propertyStatus": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "priceQualifier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dateLastAddedToTimelines": {
            "type": "string",
            "format": "date-time"
          },
          "summary": {
            "type": "string",
            "nullable": true
          },
          "websiteLink": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "outcode": {
            "type": "integer",
            "format": "int32"
          },
          "prospectingStatus": {
            "type": "integer",
            "format": "int32"
          },
          "prospectingStatusTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "verificationStatus": {
            "type": "integer",
            "format": "int32"
          },
          "category": {
            "type": "integer",
            "format": "int32"
          },
          "isWaterside": {
            "type": "boolean",
            "nullable": true
          },
          "owningTeam": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "udprn": {
            "type": "integer",
            "format": "int32"
          },
          "searchAddress": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterPropertyActiveListing": {
        "type": "object",
        "properties": {
          "dataSource": {
            "type": "integer",
            "format": "int32"
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterPropertyLink": {
        "type": "object",
        "properties": {
          "linkedMasterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterPropertyNote": {
        "type": "object",
        "properties": {
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MasterPropertyTimeline": {
        "type": "object",
        "properties": {
          "dataSource": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "eventMessage": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "type": "integer",
            "format": "int32"
          },
          "eventValue": {
            "type": "string",
            "nullable": true
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "externalPropertyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "priceQualifier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "propertyStatus": {
            "type": "integer",
            "format": "int32"
          },
          "summary": {
            "type": "string",
            "nullable": true
          },
          "websiteLink": {
            "type": "string",
            "nullable": true
          },
          "masterAgent": {
            "$ref": "#/components/schemas/MasterAgent"
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "dateAdded": {
            "type": "string",
            "format": "date-time"
          },
          "isReduction": {
            "type": "boolean"
          },
          "previousPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "MatchAction": {
        "enum": [
          "linkViewed",
          "infoRequested",
          "viewingBooked",
          "infoRequestReceived",
          "viewingRequestReceived",
          "callbackRequested"
        ],
        "type": "string"
      },
      "MatchFollowUpStatus": {
        "enum": [
          "pending",
          "notRequired",
          "interested",
          "notInterested",
          "viewingBooked",
          "leftMessage"
        ],
        "type": "string"
      },
      "MatchSource": {
        "enum": [
          "general"
        ],
        "type": "string"
      },
      "MatchType": {
        "enum": [
          "email",
          "sMS"
        ],
        "type": "string"
      },
      "MatchingCallbackRequest": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MatchingInformationRequest": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "sendBrochure": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MatchingProperty": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "tenure": {
            "type": "string",
            "nullable": true
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateUnderOffer": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateExchanged": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "priceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "propertyAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "amlVerified": {
            "type": "string",
            "nullable": true
          },
          "isDirectViewingsEnabled": {
            "type": "boolean"
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/SalesPropertyMaterialInformation"
          }
        },
        "additionalProperties": false
      },
      "MatchingPropertySummary": {
        "required": [
          "address_DisplayAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "lifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "priceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MatchingTeamDetails": {
        "type": "object",
        "properties": {
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "webSiteHomeUrl": {
            "type": "string",
            "nullable": true
          },
          "webSiteContactUrl": {
            "type": "string",
            "nullable": true
          },
          "webSitePropertiesUrl": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "primaryDarkColor": {
            "type": "string",
            "nullable": true
          },
          "primaryLightColor": {
            "type": "string",
            "nullable": true
          },
          "secondaryDarkColor": {
            "type": "string",
            "nullable": true
          },
          "secondaryLightColor": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MatchingViewingRequest": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MediaItem": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "mimeType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MediaType": {
        "enum": [
          "unknown",
          "image",
          "floorPlan",
          "ePC",
          "brochure",
          "virtualTour",
          "video",
          "instructionLetter",
          "document",
          "windowCard",
          "documentPack",
          "libraryDocument",
          "templateDocument",
          "certificate"
        ],
        "type": "string"
      },
      "Network": {
        "required": [
          "dateCreated",
          "dateUpdated",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "administratorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "administrator": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "simplify": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "NumberResponse": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Offer": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "status": {
            "$ref": "#/components/schemas/OfferStatus"
          },
          "dateOffered": {
            "type": "string",
            "format": "date-time"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "offerMessage": {
            "type": "string",
            "nullable": true
          },
          "sellerResponse": {
            "type": "string",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "dateSentToSeller": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateClosed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "closingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "closingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "saleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "sale": {
            "$ref": "#/components/schemas/Sale"
          },
          "negotiatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "negotiatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "subjectToContract": {
            "type": "boolean"
          },
          "subjectToSurvey": {
            "type": "boolean"
          },
          "subjectToMortgage": {
            "type": "boolean"
          },
          "subjectToSaleOfOwnProperty": {
            "type": "boolean"
          },
          "specialConditions": {
            "type": "string",
            "nullable": true
          },
          "depositRequired": {
            "type": "boolean"
          },
          "depositType": {
            "type": "integer",
            "format": "int32"
          },
          "depositAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "itemsIncluded": {
            "type": "string",
            "nullable": true
          },
          "itemsExcluded": {
            "type": "string",
            "nullable": true
          },
          "sellerSolicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "sellerSolicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "buyerSolicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "buyerSolicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "OfferStatus": {
        "enum": [
          "new",
          "sentToSeller",
          "accepted",
          "rejected",
          "withdrawn",
          "fallenThrough"
        ],
        "type": "string"
      },
      "OfferSummary": {
        "required": [
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/OfferStatus"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OpeningBalanceStatus": {
        "enum": [
          "saved",
          "applied"
        ],
        "type": "string"
      },
      "OutsideSpaceType": {
        "enum": [
          "communalGarden",
          "garden",
          "largeGarden",
          "southFacingGarden",
          "balcony",
          "patio",
          "roofTerrace",
          "conservatory",
          "none",
          "courtyardGarden"
        ],
        "type": "string"
      },
      "ParkingType": {
        "enum": [
          "onStreet",
          "offStreet",
          "garage",
          "allocated",
          "doubleGarage",
          "tripleGarage",
          "carport",
          "permitParking",
          "secureGated",
          "none",
          "communal",
          "covered",
          "driveway",
          "rear",
          "private",
          "residents",
          "noPermit",
          "notAllocated",
          "eVCharging",
          "disabledParkingAvailable",
          "noDisabledParkingAvailable",
          "garageEnBloc"
        ],
        "type": "string"
      },
      "Person": {
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "title": {
            "$ref": "#/components/schemas/PersonTitle"
          },
          "titleOther": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "lastName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "gdprConsentGiven": {
            "type": "boolean"
          },
          "dateGDPRConsentGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gdprConsentRecordedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "contactNotes": {
            "type": "string",
            "nullable": true
          },
          "bankAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonBankAccount"
            },
            "nullable": true
          },
          "buyerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerProfile"
            },
            "nullable": true
          },
          "sellerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SellerProfile"
            },
            "nullable": true
          },
          "renterProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterProfile"
            },
            "nullable": true
          },
          "landlordProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandlordProfile"
            },
            "nullable": true
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonEmail"
            },
            "nullable": true
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonPhone"
            },
            "nullable": true
          },
          "gdprGeneralMarketing": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "dateGDPRGeneralMarketingGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gdprGeneralMarketingRecordedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "gdprPropertyMatching": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "dateGDPRPropertyMatchingGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gdprPropertyMatchingRecordedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "gdprThirdParties": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "dateGDPRThirdPartiesGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "gdprThirdPartiesRecordedById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "communicationCall": {
            "type": "boolean"
          },
          "communicationText": {
            "type": "boolean"
          },
          "communicationEmail": {
            "type": "boolean"
          },
          "communicationPost": {
            "type": "boolean"
          },
          "udprn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "paon": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "saon": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "street": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "locality": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "town": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "county": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "district": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "nullable": true
          },
          "source": {
            "$ref": "#/components/schemas/PersonSource"
          },
          "fullName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "formalName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "informalName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "isNRL": {
            "type": "boolean"
          },
          "nrlExemptionCode": {
            "type": "string",
            "nullable": true
          },
          "nrlAbroadFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nrlAbroadTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "crmPersonExternalUser": {
            "$ref": "#/components/schemas/PersonExternalUser"
          },
          "lettsPayOwnerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "cachePrimaryEmail": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhone": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryEmailNote": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhoneNote": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "landlordNRLDetails": {
            "$ref": "#/components/schemas/PersonLandlordNRLDetails"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonBankAccount": {
        "required": [
          "accountName"
        ],
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "isDisabled": {
            "type": "boolean"
          },
          "accountName": {
            "type": "string",
            "nullable": true
          },
          "encryptedAccountNumber": {
            "type": "string",
            "format": "byte",
            "nullable": true,
            "readOnly": true
          },
          "encryptedSortCode": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "defaultPaymentReference": {
            "type": "string",
            "nullable": true
          },
          "bankAddress": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonContactDetailType": {
        "enum": [
          "mobilePhone",
          "officePhone",
          "homePhone",
          "otherPhone",
          "workEmail",
          "homeEmail",
          "otherEmail"
        ],
        "type": "string"
      },
      "PersonEmail": {
        "required": [
          "contactValue"
        ],
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "type": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "contactValue": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "contactNote": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonExternalUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "externalUserId": {
            "type": "string",
            "format": "uuid"
          },
          "externalUser": {
            "$ref": "#/components/schemas/ExternalUser"
          },
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "additionalProperties": false
      },
      "PersonLandlordNRLDetails": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "taxableIncomeReceived": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxableExpenditurePaid": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxAlreadyPaidHMRC": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxAmountHeld": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "deprecated": true
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "deprecated": true
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "taxYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "agentUpdatedId": {
            "type": "string",
            "format": "uuid"
          },
          "agentUpdated": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonLettsPayTenantLink": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "tenancyId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "lettingsApplicationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "lettingsApplication": {
            "$ref": "#/components/schemas/LettingsApplication"
          },
          "lettsPayTenantId": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonPhone": {
        "required": [
          "contactValue"
        ],
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "type": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "contactValue": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "contactNote": {
            "maxLength": 300,
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PersonSource": {
        "enum": [
          "none",
          "canvassingLetter",
          "doorKnock",
          "google",
          "onTheMarket",
          "zoopla",
          "rightmove",
          "previousClient",
          "other",
          "saleBoard",
          "socialMedia",
          "telephone",
          "walkIn",
          "website",
          "friendsAndFamily",
          "recommendation",
          "referral",
          "reputation"
        ],
        "type": "string"
      },
      "PersonSummary": {
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "contactNotes": {
            "type": "string",
            "nullable": true
          },
          "primaryPhone": {
            "type": "string",
            "nullable": true
          },
          "primaryPhoneType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "primaryPhoneNotes": {
            "type": "string",
            "nullable": true
          },
          "primaryEmail": {
            "type": "string",
            "nullable": true
          },
          "primaryEmailType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "primaryEmailNotes": {
            "type": "string",
            "nullable": true
          },
          "gdprGeneralMarketing": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprPropertyMatching": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "gdprThirdParties": {
            "$ref": "#/components/schemas/GDPRConsentType"
          },
          "communicationCall": {
            "type": "boolean"
          },
          "communicationEmail": {
            "type": "boolean"
          },
          "communicationPost": {
            "type": "boolean"
          },
          "communicationText": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PersonTitle": {
        "enum": [
          "none",
          "mr",
          "mrs",
          "miss",
          "ms",
          "dr",
          "prof",
          "sir",
          "lord",
          "lady",
          "theHon",
          "theRev",
          "other"
        ],
        "type": "string"
      },
      "PriceQualifiers": {
        "enum": [
          "none",
          "offersOver",
          "offersInRegionOf",
          "partBuyPartRent",
          "comingSoon",
          "poa",
          "from",
          "fixedPrice",
          "priceOnRequest",
          "sharedEquity",
          "sharedOwnership",
          "guidePrice",
          "saleByTender",
          "soldPrice",
          "soldStc",
          "withdrawn"
        ],
        "type": "string"
      },
      "PriceType": {
        "enum": [
          "oneTime",
          "rentWeeks",
          "rentMonths",
          "rentYear",
          "rent4Weeks",
          "rentQuarter",
          "rentSixMonths",
          "rentYearExclusive"
        ],
        "type": "string"
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Property": {
        "type": "object",
        "properties": {
          "udprn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "paon": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "saon": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "street": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "locality": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "town": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "district": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "county": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "maxLength": 12,
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "salesLifecycles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycle"
            },
            "nullable": true
          },
          "lettingsLifecycles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsLifecycle"
            },
            "nullable": true
          },
          "searchAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "shortAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fullAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "mediumAddress": {
            "maxLength": 512,
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyAge": {
        "enum": [
          "period",
          "tudor",
          "georgian",
          "victorian",
          "edwardian",
          "preWar",
          "postWar",
          "pre1900",
          "val19601969",
          "val19701979",
          "val19801989",
          "val19901999",
          "val20002009",
          "onwards2010",
          "newBuild",
          "modern",
          "unknown"
        ],
        "type": "string"
      },
      "PropertyCharge": {
        "required": [
          "description",
          "reference"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "statementPrefix": {
            "type": "string",
            "nullable": true
          },
          "creditNoteNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullCreditNoteNumber": {
            "type": "string",
            "nullable": true
          },
          "invoicePrefix": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullInvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "payTo": {
            "$ref": "#/components/schemas/ChargePayToType"
          },
          "ledgerChargeTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "ledgerChargeType": {
            "$ref": "#/components/schemas/LedgerChargeType"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "chargeDate": {
            "type": "string",
            "format": "date-time"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "contractorAddressBookId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorAddressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "maintenanceJobId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maintenanceJob": {
            "$ref": "#/components/schemas/LettingsMaintenanceJob"
          },
          "jobNumber": {
            "type": "string",
            "nullable": true
          },
          "invoiceReference": {
            "type": "string",
            "nullable": true
          },
          "feeForChargeId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "feeForCharge": {
            "$ref": "#/components/schemas/PropertyCharge"
          },
          "voidedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "voidedAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "chargeScheduleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "chargeSchedule": {
            "$ref": "#/components/schemas/PropertyChargeSchedule"
          },
          "scheduleAuditComment": {
            "type": "string",
            "nullable": true
          },
          "allocatedReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptAllocation"
            },
            "nullable": true
          },
          "allocatedFloatOuts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutAllocation"
            },
            "nullable": true
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "vatRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "vatPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateVoid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "voidComment": {
            "type": "string",
            "nullable": true
          },
          "creditAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creditReason": {
            "type": "string",
            "nullable": true
          },
          "dateCreditAdded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "creditAddedUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creditAddedUser": {
            "$ref": "#/components/schemas/Agent"
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyChargeContractorFloatOutDisbursement": {
        "type": "object",
        "properties": {
          "propertyFloatOutAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOutAllocation": {
            "$ref": "#/components/schemas/PropertyFloatOutAllocation"
          },
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "remittanceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "remittance": {
            "$ref": "#/components/schemas/ContractorRemittance"
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyChargeContractorReceiptDisbursement": {
        "type": "object",
        "properties": {
          "propertyReceiptAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceiptAllocation": {
            "$ref": "#/components/schemas/PropertyReceiptAllocation"
          },
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "remittanceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "remittance": {
            "$ref": "#/components/schemas/ContractorRemittance"
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyChargeContractorTransferDisbursement": {
        "type": "object",
        "properties": {
          "propertyTransferToChargeAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransferToChargeAllocation": {
            "$ref": "#/components/schemas/PropertyTransferToChargeAllocation"
          },
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "remittanceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "remittance": {
            "$ref": "#/components/schemas/ContractorRemittance"
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyChargeSchedule": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "addPeriodToDescription": {
            "type": "boolean"
          },
          "frequency": {
            "$ref": "#/components/schemas/PriceType"
          },
          "endType": {
            "$ref": "#/components/schemas/ChargeScheduleEndType"
          },
          "endOccurrences": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextDueDate": {
            "type": "string",
            "format": "date-time"
          },
          "payTo": {
            "$ref": "#/components/schemas/ChargePayToType"
          },
          "ledgerChargeTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "ledgerChargeType": {
            "$ref": "#/components/schemas/LedgerChargeType"
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "vatRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "contractorAddressBookId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorAddressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyCharge"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyCondition": {
        "enum": [
          "unknown",
          "veryGood",
          "good",
          "fair",
          "workRequired"
        ],
        "type": "string"
      },
      "PropertyFloatIn": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "allocatedReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptFloatInAllocation"
            },
            "nullable": true
          },
          "allocatedFloatOuts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutFloatInAllocation"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOut": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "chargeAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutAllocation"
            },
            "nullable": true
          },
          "transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutToTransferAllocation"
            },
            "nullable": true
          },
          "floatInAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutFloatInAllocation"
            },
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutRefund"
            },
            "nullable": true
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOutAllocation": {
        "type": "object",
        "properties": {
          "propertyFloatOutId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOut": {
            "$ref": "#/components/schemas/PropertyFloatOut"
          },
          "contractorDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyChargeContractorFloatOutDisbursement"
            },
            "nullable": true
          },
          "agencyPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyFloatOutPayout"
            },
            "nullable": true
          },
          "propertyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyCharge": {
            "$ref": "#/components/schemas/PropertyCharge"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOutFloatInAllocation": {
        "type": "object",
        "properties": {
          "propertyFloatOutId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOut": {
            "$ref": "#/components/schemas/PropertyFloatOut"
          },
          "propertyFloatInId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatIn": {
            "$ref": "#/components/schemas/PropertyFloatIn"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOutLandlordPayoutAllocation": {
        "type": "object",
        "properties": {
          "propertyFloatOutId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOut": {
            "$ref": "#/components/schemas/PropertyFloatOut"
          },
          "landlordPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordPayout": {
            "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOutRefund": {
        "required": [
          "notes",
          "reference"
        ],
        "type": "object",
        "properties": {
          "propertyFloatOutId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOut": {
            "$ref": "#/components/schemas/PropertyFloatOut"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "landlordId": {
            "type": "integer",
            "format": "int64"
          },
          "landlord": {
            "$ref": "#/components/schemas/Person"
          },
          "landlordBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordBankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyFloatOutToTransferAllocation": {
        "type": "object",
        "properties": {
          "propertyFloatOutId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOut": {
            "$ref": "#/components/schemas/PropertyFloatOut"
          },
          "propertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyLedgerAgencyFloatOutPayout": {
        "type": "object",
        "properties": {
          "propertyFloatOutAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatOutAllocation": {
            "$ref": "#/components/schemas/PropertyFloatOutAllocation"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "agencyBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "agencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyLedgerAgencyReceiptPayout": {
        "type": "object",
        "properties": {
          "propertyReceiptAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceiptAllocation": {
            "$ref": "#/components/schemas/PropertyReceiptAllocation"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "agencyBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "agencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyLedgerAgencyTransferPayout": {
        "type": "object",
        "properties": {
          "propertyTransferToChargeAllocationId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransferToChargeAllocation": {
            "$ref": "#/components/schemas/PropertyTransferToChargeAllocation"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "agencyBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "agencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyListing": {
        "required": [
          "displayAddress",
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyRefId": {
            "type": "string",
            "nullable": true
          },
          "channel": {
            "$ref": "#/components/schemas/LifecycleListingChannel"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "displayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "displayAsUnderOffer": {
            "type": "boolean"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "priceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "propertyAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "marketingFlag_NewToMarket": {
            "type": "boolean"
          },
          "marketingFlag_PriceReduction": {
            "type": "boolean"
          },
          "marketingFlag_FeaturedProperty": {
            "type": "boolean"
          },
          "marketingFlag_DigitalCarousel": {
            "type": "boolean"
          },
          "marketingFlag_ChainFree": {
            "type": "boolean"
          },
          "marketingFlag_NewBuild": {
            "type": "boolean"
          },
          "marketingFlag_DevelopmentOpportunity": {
            "type": "boolean"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRoom"
            },
            "nullable": true
          },
          "tenure": {
            "type": "string",
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/SalesPropertyMaterialInformation"
          },
          "saleBy": {
            "type": "string",
            "nullable": true
          },
          "leaseExpiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "localAuthority": {
            "type": "string",
            "nullable": true
          },
          "serviceCharge": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "groundRent": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PropertyOpeningBalance": {
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "creditAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "debitAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "floatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "floatLevel": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/OpeningBalanceStatus"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateApplied": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "applyingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "applyingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyPreview": {
        "type": "object",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/LoopProperty"
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LifecycleListingChannel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PropertyReceipt": {
        "required": [
          "description",
          "reference"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "receivedFromTenancyTermId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "receivedFromTenancyTerm": {
            "$ref": "#/components/schemas/TenancyTerm"
          },
          "receivedFromPersonId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "receivedFromPerson": {
            "$ref": "#/components/schemas/Person"
          },
          "receivedFromOther": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PropertyReceiptPaymentMethodType"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "isRentalIncome": {
            "type": "boolean"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "reconciledTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reconciledTransaction": {
            "$ref": "#/components/schemas/ClientBankAccountTransaction"
          },
          "dateReconciled": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reconciledAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "reconciledAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "isVoid": {
            "type": "boolean"
          },
          "voidComment": {
            "type": "string",
            "nullable": true
          },
          "dateVoid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "voidedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "voidedAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptAllocation"
            },
            "nullable": true
          },
          "floatInAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptFloatInAllocation"
            },
            "nullable": true
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "transferAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptToTransferAllocation"
            },
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRefund"
            },
            "nullable": true
          },
          "depositMovements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepositMovement"
            },
            "nullable": true
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyReceiptAllocation": {
        "type": "object",
        "properties": {
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "contractorDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyChargeContractorReceiptDisbursement"
            },
            "nullable": true
          },
          "agencyPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyReceiptPayout"
            },
            "nullable": true
          },
          "propertyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyCharge": {
            "$ref": "#/components/schemas/PropertyCharge"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyReceiptFloatInAllocation": {
        "type": "object",
        "properties": {
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "propertyFloatInId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatIn": {
            "$ref": "#/components/schemas/PropertyFloatIn"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyReceiptLandlordPayoutAllocation": {
        "type": "object",
        "properties": {
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "landlordPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordPayout": {
            "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyReceiptPaymentMethodType": {
        "enum": [
          "rentalIncome",
          "cash",
          "card",
          "bankTransfer",
          "cheque",
          "other"
        ],
        "type": "string"
      },
      "PropertyReceiptToTransferAllocation": {
        "type": "object",
        "properties": {
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "propertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyRefund": {
        "required": [
          "notes",
          "reference"
        ],
        "type": "object",
        "properties": {
          "lettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "lettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "landlordId": {
            "type": "integer",
            "format": "int64"
          },
          "landlord": {
            "$ref": "#/components/schemas/Person"
          },
          "landlordBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordBankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyRoom": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "width": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dimensionsLabel": {
            "type": "string",
            "nullable": true
          },
          "floor": {
            "$ref": "#/components/schemas/RoomFloor"
          },
          "type": {
            "$ref": "#/components/schemas/RoomType"
          }
        },
        "additionalProperties": false
      },
      "PropertySummary": {
        "required": [
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "offerCount": {
            "type": "integer",
            "format": "int32"
          },
          "viewingCount": {
            "type": "integer",
            "format": "int32"
          },
          "publishedToPortals": {
            "type": "boolean"
          },
          "publishedToWebsite": {
            "type": "boolean"
          },
          "publishedToMatching": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransfer": {
        "required": [
          "transferReason"
        ],
        "type": "object",
        "properties": {
          "sourceLettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceLettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "destinationLettingsLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "destinationLettingsLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "sourceStatementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "destinationStatementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "transferReason": {
            "type": "string",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "landlordPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferLandlordPayoutAllocation"
            },
            "nullable": true
          },
          "chargeAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferToChargeAllocation"
            },
            "nullable": true
          },
          "floatInAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferToFloatInAllocation"
            },
            "nullable": true
          },
          "transferAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferToTransferAllocation"
            },
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferRefund"
            },
            "nullable": true
          },
          "allocatedReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyReceiptToTransferAllocation"
            },
            "nullable": true
          },
          "allocatedFloatOuts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyFloatOutToTransferAllocation"
            },
            "nullable": true
          },
          "allocatedTransfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyTransferToTransferAllocation"
            },
            "nullable": true
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransferLandlordPayoutAllocation": {
        "type": "object",
        "properties": {
          "propertyTransferInId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransferIn": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "landlordPayoutId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordPayout": {
            "$ref": "#/components/schemas/LandlordStatementLandlordPayout"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransferRefund": {
        "required": [
          "notes",
          "reference"
        ],
        "type": "object",
        "properties": {
          "statementStatus": {
            "$ref": "#/components/schemas/StatementStatus"
          },
          "propertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "landlordId": {
            "type": "integer",
            "format": "int64"
          },
          "landlord": {
            "$ref": "#/components/schemas/Person"
          },
          "landlordBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "landlordBankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransferToChargeAllocation": {
        "type": "object",
        "properties": {
          "propertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "contractorDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyChargeContractorTransferDisbursement"
            },
            "nullable": true
          },
          "agencyPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyLedgerAgencyTransferPayout"
            },
            "nullable": true
          },
          "propertyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyCharge": {
            "$ref": "#/components/schemas/PropertyCharge"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransferToFloatInAllocation": {
        "type": "object",
        "properties": {
          "propertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "propertyFloatInId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyFloatIn": {
            "$ref": "#/components/schemas/PropertyFloatIn"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyTransferToTransferAllocation": {
        "type": "object",
        "properties": {
          "sourcePropertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "sourcePropertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "destinationPropertyTransferId": {
            "type": "integer",
            "format": "int64"
          },
          "destinationPropertyTransfer": {
            "$ref": "#/components/schemas/PropertyTransfer"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "landlordStatementId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "landlordStatement": {
            "$ref": "#/components/schemas/LandlordStatement"
          },
          "isStatemented": {
            "type": "boolean",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PropertyType": {
        "enum": [
          "unknown",
          "terraced",
          "endOfTerrace",
          "semiDetached",
          "detached",
          "mewsHouse",
          "flat",
          "maisonette",
          "bungalow",
          "townHouse",
          "cottage",
          "farmOrBarn",
          "mobileOrStatic",
          "land",
          "studio",
          "blockOfFlats",
          "office",
          "countryHouse",
          "clusterHouse",
          "groundFloorFlat",
          "terracedBungalow",
          "semiDetachedBungalow",
          "linkDetachedHouse",
          "chalet",
          "villa",
          "apartment",
          "penthouse",
          "finca",
          "barnConversion",
          "servicedApartment",
          "garage",
          "shelteredHousing",
          "retirement",
          "houseShare",
          "flatShare",
          "equestrian",
          "duplexFlat",
          "triplexFlat",
          "longere",
          "gite",
          "trulli",
          "mill",
          "restaurant",
          "cafe",
          "castle",
          "plot",
          "caravan",
          "lodge",
          "logCabin",
          "manorHouse",
          "statelyHome",
          "offPlanLand",
          "semiDetachedVilla",
          "barNightclub",
          "shop",
          "riad",
          "houseBoat",
          "hotelRoom",
          "privateHalls",
          "commercialOffice",
          "businessPark",
          "servicedOffice",
          "retailPropertyHighStreet",
          "retailPropertyOutOfTown",
          "convenienceStore",
          "hairdresserBarberShop",
          "hotel",
          "petrolStation",
          "postOffice",
          "pub",
          "workshopRetailSpace",
          "distributionWarehouse",
          "factory",
          "heavyIndustrial",
          "industrialPark",
          "lightIndustrial",
          "storage",
          "showroom",
          "warehouse",
          "commercialLand",
          "commercialDevelopment",
          "industrialDevelopment",
          "residentialDevelopment",
          "commercialProperty",
          "dataCentre",
          "commercialFarm",
          "healthcareFacility",
          "marineProperty",
          "mixedUse",
          "researchDevelopmentFacility",
          "sciencePark",
          "guestHouse",
          "hospitality",
          "leisureFacility",
          "parkHome",
          "house",
          "parking",
          "barn",
          "ruins",
          "villageHouse",
          "caveHouse",
          "cortijo",
          "stoneHouse",
          "takeaway",
          "childcareFacility",
          "smallholding",
          "placeOfWorship",
          "tradeCounter",
          "coachHouse",
          "houseOfMultipleOccupation",
          "sportsFacilities",
          "spa",
          "campsiteHolidayVillage",
          "retailPropertyShoppingCentre",
          "retailPropertyPark",
          "retailPropertyPopUp",
          "characterProperty",
          "notProvided"
        ],
        "type": "string"
      },
      "ProspectingStatus": {
        "enum": [
          "none",
          "newInstruction",
          "fallThrough",
          "reduction",
          "withdrawal",
          "slowMover",
          "suspectedSold",
          "sold",
          "underOffer"
        ],
        "type": "string"
      },
      "ReceiptPaymentMethodType": {
        "enum": [
          "cash",
          "card",
          "bankTransfer",
          "cheque",
          "other"
        ],
        "type": "string"
      },
      "RentFrequency": {
        "enum": [
          "oneTime",
          "rentWeeks",
          "rentMonths",
          "rentYear",
          "rent4Weeks",
          "rentQuarter",
          "rentSixMonths",
          "rentYearExclusive"
        ],
        "type": "string"
      },
      "RentalApplicationStatus": {
        "enum": [
          "newApplication",
          "accepted",
          "progressed",
          "withdrawn",
          "rejected"
        ],
        "type": "string"
      },
      "RentalAppraisalStatus": {
        "enum": [
          "notAppraised",
          "createdAwaitingFeedback",
          "appraisalDone",
          "cancelled",
          "won",
          "lost",
          "lostDead",
          "opportunity"
        ],
        "type": "string"
      },
      "RentalBoardType": {
        "enum": [
          "notRequired",
          "toLet",
          "let",
          "letAgreed"
        ],
        "type": "string"
      },
      "RentalFurnishings": {
        "enum": [
          "notSpecified",
          "furnished",
          "furnishedOptional",
          "partFurnished",
          "unfurnished"
        ],
        "type": "string"
      },
      "RentalGroupStatus": {
        "enum": [
          "newUnqualified",
          "qualified",
          "renting",
          "archived"
        ],
        "type": "string"
      },
      "RentalKeySetCheckedOutType": {
        "enum": [
          "agent",
          "addressBookContact",
          "renter",
          "landlord"
        ],
        "type": "string"
      },
      "RentalLeaseType": {
        "enum": [
          "notSet",
          "assuredShortholdTenancy",
          "assuredTenancy",
          "longLeasehold",
          "licence",
          "periodic",
          "companyTenancy",
          "periodicOccupationalContract",
          "fixedTermOccupationalContract"
        ],
        "type": "string"
      },
      "RentalLifecycleMarketingStatus": {
        "enum": [
          "notListed",
          "toLet",
          "let",
          "letAgreed"
        ],
        "type": "string"
      },
      "RentalLifecycleStatus": {
        "enum": [
          "appraisal",
          "premarket",
          "toLet",
          "let",
          "withdrawn",
          "letAgreed"
        ],
        "type": "string"
      },
      "RentalLifecycleWithdrawalType": {
        "enum": [
          "notSet",
          "letOtherAgent",
          "letByLandlord",
          "sold",
          "offMarket"
        ],
        "type": "string"
      },
      "RentalMaintenanceJobAccessContact": {
        "enum": [
          "leadTenant",
          "agency",
          "landlord",
          "allTenants"
        ],
        "type": "string"
      },
      "RentalMaintenanceJobReportedBy": {
        "enum": [
          "tenant",
          "landlord",
          "agent",
          "thirdParty",
          "unknown"
        ],
        "type": "string"
      },
      "RentalMatchingProperty": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalPropertyStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "letPeriod": {
            "$ref": "#/components/schemas/RentalsLetPeriod"
          },
          "rentFrequency": {
            "$ref": "#/components/schemas/RentFrequency"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateFirstAvailable": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "rent": {
            "type": "number",
            "format": "double"
          },
          "isPOA": {
            "type": "boolean"
          },
          "deposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "properytAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "amlVerified": {
            "type": "string",
            "nullable": true
          },
          "hideRentOnWebsite": {
            "type": "boolean"
          },
          "furnishings": {
            "$ref": "#/components/schemas/RentalFurnishings"
          },
          "letTypeProfessional": {
            "type": "boolean"
          },
          "letTypeStudent": {
            "type": "boolean"
          },
          "letTypeMultipleOccupancy": {
            "type": "boolean"
          },
          "requirementNoSmokers": {
            "type": "boolean"
          },
          "requirementNoPets": {
            "type": "boolean"
          },
          "requirementNoChildren": {
            "type": "boolean"
          },
          "requirementNoStudents": {
            "type": "boolean"
          },
          "requirementNoSharers": {
            "type": "boolean"
          },
          "includedBillsElectricity": {
            "type": "boolean"
          },
          "includedBillsGas": {
            "type": "boolean"
          },
          "includedBillsWater": {
            "type": "boolean"
          },
          "includedTVLicense": {
            "type": "boolean"
          },
          "includedTVSubscription": {
            "type": "boolean"
          },
          "includedInternet": {
            "type": "boolean"
          },
          "includedWashingMachine": {
            "type": "boolean"
          },
          "includedDishwasher": {
            "type": "boolean"
          },
          "includedAlarm": {
            "type": "boolean"
          },
          "isAccompanied": {
            "type": "boolean"
          },
          "viewingPreference": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingArrangements": {
            "type": "string",
            "nullable": true
          },
          "accessAndAlarm": {
            "type": "string",
            "nullable": true
          },
          "keys": {
            "type": "string",
            "nullable": true
          },
          "leaseType": {
            "$ref": "#/components/schemas/LeaseType"
          },
          "marketingFlag_NewToMarket": {
            "type": "boolean"
          },
          "marketingFlag_PriceReduction": {
            "type": "boolean"
          },
          "marketingFlag_FeaturedProperty": {
            "type": "boolean"
          },
          "marketingFlag_DigitalCarousel": {
            "type": "boolean"
          },
          "marketingFlag_ImmediatelyAvailable": {
            "type": "boolean"
          },
          "marketingFlag_ComingSoon": {
            "type": "boolean"
          },
          "isDirectViewingsEnabled": {
            "type": "boolean"
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalViewingSummary"
            },
            "nullable": true
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationSummary"
            },
            "nullable": true
          },
          "marketListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingSummary"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRoom"
            },
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/RentalsPropertyMaterialInformation"
          }
        },
        "additionalProperties": false
      },
      "RentalMatchingPropertySummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "lifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalPropertyStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "leaseType": {
            "$ref": "#/components/schemas/LeaseType"
          },
          "rentFrequency": {
            "$ref": "#/components/schemas/RentFrequency"
          },
          "letPeriod": {
            "$ref": "#/components/schemas/RentalsLetPeriod"
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "rent": {
            "type": "integer",
            "format": "int32"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalParkingType": {
        "enum": [
          "any",
          "garage",
          "doubleGarage",
          "tripleGarage",
          "carPort",
          "offRoadParking",
          "onRoadParking"
        ],
        "type": "string"
      },
      "RentalProperty": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "address_DisplayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalPropertyStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateFirstAvailable": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "rent": {
            "type": "number",
            "format": "double"
          },
          "isPOA": {
            "type": "boolean"
          },
          "deposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "properytAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "amlVerified": {
            "type": "string",
            "nullable": true
          },
          "rentFrequency": {
            "type": "string",
            "nullable": true
          },
          "totalRent": {
            "type": "number",
            "format": "double"
          },
          "hideRentOnWebsite": {
            "type": "boolean"
          },
          "furnishings": {
            "$ref": "#/components/schemas/RentalFurnishings"
          },
          "letTypeProfessional": {
            "type": "boolean"
          },
          "letTypeStudent": {
            "type": "boolean"
          },
          "letTypeMultipleOccupancy": {
            "type": "boolean"
          },
          "requirementNoSmokers": {
            "type": "boolean"
          },
          "requirementNoPets": {
            "type": "boolean"
          },
          "requirementNoChildren": {
            "type": "boolean"
          },
          "requirementNoStudents": {
            "type": "boolean"
          },
          "requirementNoSharers": {
            "type": "boolean"
          },
          "includedBillsElectricity": {
            "type": "boolean"
          },
          "includedBillsGas": {
            "type": "boolean"
          },
          "includedBillsWater": {
            "type": "boolean"
          },
          "includedTVLicense": {
            "type": "boolean"
          },
          "includedTVSubscription": {
            "type": "boolean"
          },
          "includedInternet": {
            "type": "boolean"
          },
          "includedWashingMachine": {
            "type": "boolean"
          },
          "includedDishwasher": {
            "type": "boolean"
          },
          "includedAlarm": {
            "type": "boolean"
          },
          "isAccompanied": {
            "type": "boolean"
          },
          "viewingPreference": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingArrangements": {
            "type": "string",
            "nullable": true
          },
          "accessAndAlarm": {
            "type": "string",
            "nullable": true
          },
          "keys": {
            "type": "string",
            "nullable": true
          },
          "leaseType": {
            "$ref": "#/components/schemas/LeaseType"
          },
          "marketingFlag_NewToMarket": {
            "type": "boolean"
          },
          "marketingFlag_PriceReduction": {
            "type": "boolean"
          },
          "marketingFlag_FeaturedProperty": {
            "type": "boolean"
          },
          "marketingFlag_DigitalCarousel": {
            "type": "boolean"
          },
          "marketingFlag_ImmediatelyAvailable": {
            "type": "boolean"
          },
          "marketingFlag_ComingSoon": {
            "type": "boolean"
          },
          "isDirectViewingsEnabled": {
            "type": "boolean"
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalViewingSummary"
            },
            "nullable": true
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationSummary"
            },
            "nullable": true
          },
          "marketListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingSummary"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRoom"
            },
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/RentalsPropertyMaterialInformation"
          }
        },
        "additionalProperties": false
      },
      "RentalPropertyListing": {
        "required": [
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyRefId": {
            "type": "string",
            "nullable": true
          },
          "channel": {
            "$ref": "#/components/schemas/LifecycleListingChannel"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "displayAddress": {
            "type": "string",
            "nullable": true
          },
          "address_UDPRN": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "address_HouseNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_HouseSecondaryNameOrNumber": {
            "type": "string",
            "nullable": true
          },
          "address_Street": {
            "type": "string",
            "nullable": true
          },
          "address_Locality": {
            "type": "string",
            "nullable": true
          },
          "address_Town": {
            "type": "string",
            "nullable": true
          },
          "address_District": {
            "type": "string",
            "nullable": true
          },
          "address_County": {
            "type": "string",
            "nullable": true
          },
          "address_Postcode": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalPropertyStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "rent": {
            "type": "number",
            "format": "float"
          },
          "isPOA": {
            "type": "boolean"
          },
          "deposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "lettingFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "lettingFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "parking": {
            "type": "string",
            "nullable": true
          },
          "outsideSpace": {
            "type": "string",
            "nullable": true
          },
          "propertyAge": {
            "type": "string",
            "nullable": true
          },
          "propertyCondition": {
            "type": "string",
            "nullable": true
          },
          "garaging": {
            "type": "string",
            "nullable": true
          },
          "lift": {
            "type": "boolean",
            "nullable": true
          },
          "numberOfFloors": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accessibility": {
            "type": "boolean",
            "nullable": true
          },
          "glazing": {
            "type": "string",
            "nullable": true
          },
          "alarm": {
            "type": "boolean",
            "nullable": true
          },
          "listed": {
            "type": "string",
            "nullable": true
          },
          "councilTaxBand": {
            "type": "string",
            "nullable": true
          },
          "heating": {
            "type": "string",
            "nullable": true
          },
          "cellar": {
            "type": "boolean"
          },
          "floorArea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acerage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "buildYear": {
            "type": "string",
            "nullable": true
          },
          "hideRentOnWebsite": {
            "type": "boolean"
          },
          "dateFirstAvailable": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "floorPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "epc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "brochure": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            },
            "nullable": true
          },
          "virtualTourUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyRoom"
            },
            "nullable": true
          },
          "materialInformation": {
            "$ref": "#/components/schemas/RentalsPropertyMaterialInformation"
          }
        },
        "additionalProperties": false
      },
      "RentalPropertyPreview": {
        "type": "object",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/RentalProperty"
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LifecycleListingChannel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalPropertyStatus": {
        "enum": [
          "appraisal",
          "premarket",
          "toLet",
          "let",
          "withdrawn",
          "letAgreed"
        ],
        "type": "string"
      },
      "RentalPropertySummary": {
        "required": [
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalLifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "rent": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "rentFrequency": {
            "type": "string",
            "nullable": true
          },
          "totalRent": {
            "type": "number",
            "format": "double"
          },
          "isPOA": {
            "type": "boolean"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "applicationCount": {
            "type": "integer",
            "format": "int32"
          },
          "viewingCount": {
            "type": "integer",
            "format": "int32"
          },
          "publishedToPortals": {
            "type": "boolean"
          },
          "publishedToWebsite": {
            "type": "boolean"
          },
          "publishedToMatching": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "RentalRenterType": {
        "enum": [
          "none",
          "professional",
          "student",
          "multipleOccupancy"
        ],
        "type": "string"
      },
      "RentalServiceLevel": {
        "enum": [
          "notSpecified",
          "letOnly",
          "rentCollection",
          "fullyManaged",
          "directLet",
          "partManaged",
          "managedPlus"
        ],
        "type": "string"
      },
      "RentalTenancyStatus": {
        "enum": [
          "preparing",
          "active",
          "finished",
          "fallenThrough"
        ],
        "type": "string"
      },
      "RentalTenancyWithdrawalType": {
        "enum": [
          "notSet",
          "notRenting",
          "rentingElsewhere",
          "boughtHouse",
          "withdrawnByLandlord",
          "otherRenterFound"
        ],
        "type": "string"
      },
      "RentalViewing": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateBuyerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateSellerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateDone": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "renterFeedback": {
            "type": "string",
            "nullable": true
          },
          "landlordFeedback": {
            "type": "string",
            "nullable": true
          },
          "renterConfirmed": {
            "type": "boolean"
          },
          "landlordConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "property": {
            "$ref": "#/components/schemas/RentalPropertySummary"
          },
          "renter": {
            "$ref": "#/components/schemas/RenterSummary"
          },
          "landlord": {
            "$ref": "#/components/schemas/LandlordSummary"
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "teamId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalViewingCreate": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time"
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time"
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "renterConfirmed": {
            "type": "boolean"
          },
          "landlordConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "renterId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "renterTitle": {
            "$ref": "#/components/schemas/PersonTitle"
          },
          "renterFirstName": {
            "type": "string",
            "nullable": true
          },
          "renterLastName": {
            "type": "string",
            "nullable": true
          },
          "renterContactNotes": {
            "type": "string",
            "nullable": true
          },
          "renterPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "renterPhoneNumberType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "renterPhoneNumberNotes": {
            "type": "string",
            "nullable": true
          },
          "renterEmail": {
            "type": "string",
            "nullable": true
          },
          "renterEmailType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "renterEmailNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalViewingFeedback": {
        "required": [
          "propertyAddress",
          "renterGroupName"
        ],
        "type": "object",
        "properties": {
          "viewingId": {
            "type": "integer",
            "format": "int64"
          },
          "viewingDateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "viewingStatus": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "viewingType": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingRenterFeedback": {
            "type": "string",
            "nullable": true
          },
          "viewingLandlordFeedback": {
            "type": "string",
            "nullable": true
          },
          "renterId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroupName": {
            "type": "string",
            "nullable": true
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "propertyStatus": {
            "$ref": "#/components/schemas/RentalLifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "propertyRent": {
            "type": "number",
            "format": "double"
          },
          "propertyImage": {
            "type": "string",
            "nullable": true
          },
          "propertyBedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "teamClientName": {
            "type": "string",
            "nullable": true
          },
          "teamAddress1": {
            "type": "string",
            "nullable": true
          },
          "teamAddress2": {
            "type": "string",
            "nullable": true
          },
          "teamAddress3": {
            "type": "string",
            "nullable": true
          },
          "teamEmail": {
            "type": "string",
            "nullable": true
          },
          "teamPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "teamWebsiteUrl": {
            "type": "string",
            "nullable": true
          },
          "teamPrimaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "teamPrimaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "teamSecondaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "teamSecondaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "teamLogo": {
            "type": "string",
            "nullable": true
          },
          "feedbackQuestions": {
            "type": "string",
            "nullable": true
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "agentEmail": {
            "type": "string",
            "nullable": true
          },
          "agentMobilePhone": {
            "type": "string",
            "nullable": true
          },
          "agentJobTitle": {
            "type": "string",
            "nullable": true
          },
          "agentAvatar": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalViewingSummary": {
        "required": [
          "propertyAddress",
          "renterName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "renterName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RentalsLetPeriod": {
        "enum": [
          "notSet",
          "longTerm",
          "shortTerm",
          "longShortTerm"
        ],
        "type": "string"
      },
      "RentalsPropertyMaterialInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyRestrictions": {
            "type": "string",
            "nullable": true
          },
          "easementsServitudesWayleaves": {
            "type": "string",
            "nullable": true
          },
          "publicRightOfWay": {
            "type": "string",
            "nullable": true
          },
          "floodDefenses": {
            "type": "string",
            "nullable": true
          },
          "floodedLast5Years": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceRiver": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceSea": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceGroundwater": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceLake": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceReservoir": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceOther": {
            "type": "string",
            "nullable": true
          },
          "electricitySupply": {
            "$ref": "#/components/schemas/ElectricType"
          },
          "waterSupply": {
            "$ref": "#/components/schemas/WaterSupplyType"
          },
          "heating": {
            "$ref": "#/components/schemas/HeatingType"
          },
          "broadband": {
            "$ref": "#/components/schemas/BroadbandType"
          },
          "sewerage": {
            "$ref": "#/components/schemas/SewerageType"
          },
          "parking": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParkingType"
            },
            "nullable": true
          },
          "accessibility": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessibilityType"
            },
            "nullable": true
          },
          "electricitySupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ElectricType"
            },
            "nullable": true
          },
          "heatingSupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeatingType"
            },
            "nullable": true
          },
          "broadbandSupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BroadbandType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Renter": {
        "required": [
          "rentalGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "rentalGroupName": {
            "type": "string",
            "nullable": true
          },
          "renterIsGroup": {
            "type": "boolean"
          },
          "maxRent": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "minBeds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minBaths": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minRecepts": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dateRequired": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "furnished": {
            "type": "boolean",
            "nullable": true
          },
          "renterType": {
            "$ref": "#/components/schemas/RentalRenterType"
          },
          "parking": {
            "$ref": "#/components/schemas/RentalParkingType"
          },
          "requirementNotes": {
            "type": "string",
            "nullable": true
          },
          "financiallyVerified": {
            "type": "boolean",
            "nullable": true
          },
          "insuranceOffered": {
            "$ref": "#/components/schemas/BuyerInsuranceOffered"
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSummary"
            },
            "nullable": true
          },
          "propertyTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyType"
            },
            "nullable": true
          },
          "searchAreas": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RentalViewingSummary"
            },
            "nullable": true
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RenterGroup": {
        "type": "object",
        "properties": {
          "maxPrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "rentalFrequency": {
            "$ref": "#/components/schemas/PriceType"
          },
          "minBeds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minBaths": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minRecepts": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dateRequired": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "propertyTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupPropertyType"
            },
            "nullable": true
          },
          "searchAreas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupSearchArea"
            },
            "nullable": true
          },
          "matchAreas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupMatchArea"
            },
            "nullable": true
          },
          "crmRentalOutsideSpaceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupOutsideSpace"
            },
            "nullable": true
          },
          "crmRentalGroupPropertyAges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupPropertyAge"
            },
            "nullable": true
          },
          "crmRentalGroupPropertyConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupPropertyCondition"
            },
            "nullable": true
          },
          "furnished": {
            "type": "boolean",
            "nullable": true
          },
          "rentalType": {
            "$ref": "#/components/schemas/RentalRenterType"
          },
          "crmRentalParkingTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterGroupParking"
            },
            "nullable": true
          },
          "parking": {
            "$ref": "#/components/schemas/RentalParkingType"
          },
          "isSmoker": {
            "type": "boolean",
            "nullable": true
          },
          "hasPets": {
            "type": "boolean",
            "nullable": true
          },
          "hasChildren": {
            "type": "boolean",
            "nullable": true
          },
          "isStudent": {
            "type": "boolean",
            "nullable": true
          },
          "isSharer": {
            "type": "boolean",
            "nullable": true
          },
          "furnishings": {
            "$ref": "#/components/schemas/RentalFurnishings"
          },
          "requirementNotes": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RentalGroupStatus"
          },
          "financiallyVerified": {
            "type": "boolean",
            "nullable": true
          },
          "insuranceOffered": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "renterProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenterProfile"
            },
            "nullable": true
          },
          "lettingsViewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsViewing"
            },
            "nullable": true
          },
          "lettingsApplications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsApplication"
            },
            "nullable": true
          },
          "tenancies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tenancy"
            },
            "nullable": true
          },
          "nameAlias": {
            "type": "string",
            "nullable": true
          },
          "addressee": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "isArchived": {
            "type": "boolean"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "name": {
            "maxLength": 2048,
            "type": "string",
            "nullable": true
          },
          "cacheFirstDateRegistered": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cachePrimaryEmail": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "cacheCreatingAgentFullName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cacheResponsibleAgentFullName": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "cacheSearch": {
            "maxLength": 2048,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupMatchArea": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "teamMatchingAreaId": {
            "type": "integer",
            "format": "int64"
          },
          "teamMatchingArea": {
            "$ref": "#/components/schemas/TeamMatchingArea"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupOutsideSpace": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "outsideSpace": {
            "$ref": "#/components/schemas/OutsideSpaceType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupParking": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/ParkingType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupPropertyAge": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "age": {
            "$ref": "#/components/schemas/PropertyAge"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupPropertyCondition": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "condition": {
            "$ref": "#/components/schemas/PropertyCondition"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupPropertyType": {
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterGroupSearchArea": {
        "required": [
          "area"
        ],
        "type": "object",
        "properties": {
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "area": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterProfile": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "renterGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "renterGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "preferencePropertyMatch": {
            "type": "boolean"
          },
          "preferenceProperty": {
            "type": "boolean"
          },
          "preferenceViewing": {
            "type": "boolean"
          },
          "preferenceApplication": {
            "type": "boolean"
          },
          "preferenceTenancy": {
            "type": "boolean"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "guarantors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LettingsPersonGuarantor"
            },
            "nullable": true
          },
          "primaryGuarantorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "primaryGuarantor": {
            "$ref": "#/components/schemas/LettingsPersonGuarantor"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RenterSummary": {
        "required": [
          "rentalGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "rentalGroupName": {
            "type": "string",
            "nullable": true
          },
          "renterIsGroup": {
            "type": "boolean"
          },
          "maxRent": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "minBeds": {
            "type": "integer",
            "format": "int32"
          },
          "dateRequired": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "applicationCount": {
            "type": "integer",
            "format": "int32"
          },
          "tenancyCount": {
            "type": "integer",
            "format": "int32"
          },
          "isTenanted": {
            "type": "boolean"
          },
          "viewingCount": {
            "type": "integer",
            "format": "int32"
          },
          "upcomingViewingCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ResponseErrorCode": {
        "enum": [
          "generalException",
          "invalidState",
          "limitExceeded",
          "generalDatabaseError",
          "sQLTimeout",
          "entityNotCreated",
          "entityNotFound",
          "inputParametersIncorrect",
          "fileAlreadyExists",
          "emailSendFailed"
        ],
        "type": "string"
      },
      "ResponseWarningCode": {
        "enum": [
          "queryReturnedNullResult",
          "callReturnedNoResult",
          "inconsistentState",
          "subCallFailed",
          "insufficientData",
          "fileAlreadyExists",
          "emailsNotSent",
          "beaconNotSent",
          "mailchimpRegistration",
          "mailchimpDeregistration"
        ],
        "type": "string"
      },
      "Role": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "loginEnabled": {
            "type": "boolean"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "RoomFloor": {
        "enum": [
          "none",
          "basement",
          "lowerGroundFloor",
          "groundFloor",
          "firstFloor",
          "upperFloor",
          "attic",
          "outside"
        ],
        "type": "string"
      },
      "RoomType": {
        "enum": [
          "none",
          "airingCupboard",
          "balcony",
          "bathroom",
          "bedroom",
          "bedroomStudy",
          "boilerRoom",
          "carport",
          "cellar",
          "cloakroom",
          "conservatory",
          "cupboard",
          "diningHall",
          "diningRoom",
          "doubleGarage",
          "drawingRoom",
          "dressingRoom",
          "eavesStorage",
          "ensuite",
          "entranceHall",
          "familyRoom",
          "garage",
          "gardenRoom",
          "gardenStore",
          "guestBedroom",
          "hall",
          "hallway",
          "kitchen",
          "kitchenBreakfastRoom",
          "kitchenDiner",
          "landing",
          "laundry",
          "leanTo",
          "library",
          "livingRoom",
          "lobby",
          "loft",
          "loftRoom",
          "lounge",
          "loungeDiner",
          "masterBedroom",
          "nursery",
          "playRoom",
          "porch",
          "receptionHall",
          "receptionRoom",
          "roofGarden",
          "shed",
          "showerRoom",
          "sittingRoom",
          "sittingDiningRoom",
          "stairs",
          "storage",
          "store",
          "stormPorch",
          "study",
          "sunDeck",
          "sunRoom",
          "sunTerrace",
          "tripleGarage",
          "utilityRoom",
          "wardrobe",
          "wc",
          "workshop"
        ],
        "type": "string"
      },
      "Sale": {
        "type": "object",
        "properties": {
          "offerId": {
            "type": "integer",
            "format": "int64"
          },
          "offer": {
            "$ref": "#/components/schemas/Offer"
          },
          "sellerSolicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "sellerSolicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "buyerSolicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "buyerSolicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "subjectToContract": {
            "type": "boolean"
          },
          "subjectToSurvey": {
            "type": "boolean"
          },
          "subjectToMortgage": {
            "type": "boolean"
          },
          "subjectToSaleOfOwnProperty": {
            "type": "boolean"
          },
          "subjectToOther": {
            "type": "boolean"
          },
          "subjectToOtherText": {
            "type": "string",
            "nullable": true
          },
          "depositRequired": {
            "type": "boolean"
          },
          "depositType": {
            "$ref": "#/components/schemas/CommissionType"
          },
          "depositAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "itemsIncluded": {
            "type": "string",
            "nullable": true
          },
          "itemsExcluded": {
            "type": "string",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "progressingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "progressingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "saleChainId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "saleChain": {
            "$ref": "#/components/schemas/SaleChain"
          },
          "isCompleteChain": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SaleByType": {
        "enum": [
          "notSet",
          "privateTreaty",
          "auction",
          "informalTender",
          "formalTender"
        ],
        "type": "string"
      },
      "SaleChain": {
        "type": "object",
        "properties": {
          "anticipatedExchangeDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "desiredCompletionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "chainLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaleChainLink"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SaleChainLink": {
        "type": "object",
        "properties": {
          "salesChainId": {
            "type": "integer",
            "format": "int64"
          },
          "salesChain": {
            "$ref": "#/components/schemas/SaleChain"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "mortgageValuationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "surveyDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "draftContractIssuedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "searchesRequestedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "searchedReceivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "mortgageOfferReceivedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sellerSignedContractDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "buyerSignedContractDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "exchangedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "udprn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "saleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "sale": {
            "$ref": "#/components/schemas/Sale"
          },
          "salePrice": {
            "type": "string",
            "nullable": true
          },
          "sellerName": {
            "type": "string",
            "nullable": true
          },
          "sellerPhone": {
            "type": "string",
            "nullable": true
          },
          "sellerEmail": {
            "type": "string",
            "nullable": true
          },
          "solicitorName": {
            "type": "string",
            "nullable": true
          },
          "solicitorPhone": {
            "type": "string",
            "nullable": true
          },
          "solicitorEmail": {
            "type": "string",
            "nullable": true
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "agentPhone": {
            "type": "string",
            "nullable": true
          },
          "agentEmail": {
            "type": "string",
            "nullable": true
          },
          "buyerName": {
            "type": "string",
            "nullable": true
          },
          "buyerPhone": {
            "type": "string",
            "nullable": true
          },
          "buyerEmail": {
            "type": "string",
            "nullable": true
          },
          "buyerSolicitorName": {
            "type": "string",
            "nullable": true
          },
          "buyerSolicitorPhone": {
            "type": "string",
            "nullable": true
          },
          "buyerSolicitorEmail": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ChainLinkType"
          },
          "jotterNotes": {
            "type": "string",
            "nullable": true
          },
          "proceedabilityNotes": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesKeySet": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "keyNotes": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/KeySetStatus"
          },
          "numberOfKeys": {
            "type": "integer",
            "format": "int32"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateExpectedBack": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "photoURL": {
            "type": "string",
            "nullable": true
          },
          "keySetLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesKeySetLog"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesKeySetLog": {
        "type": "object",
        "properties": {
          "salesKeySetId": {
            "type": "integer",
            "format": "int64"
          },
          "salesKeySet": {
            "$ref": "#/components/schemas/SalesKeySet"
          },
          "status": {
            "$ref": "#/components/schemas/KeySetStatus"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "loggedByAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "loggedByAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "outType": {
            "$ref": "#/components/schemas/KeySetCheckedOutType"
          },
          "toAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "toAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "toAddressbookContactId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toAddressbookContact": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "toBuyerGroupId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toBuyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "toSellerGroupId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "toSellerGroup": {
            "$ref": "#/components/schemas/SellerGroup"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycle": {
        "type": "object",
        "properties": {
          "sellerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "sellerGroup": {
            "$ref": "#/components/schemas/SellerGroup"
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "dateInstructed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateLaunched": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateUnderOffer": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateExchanged": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateCompleted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "withdrawalReason": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "bathrooms": {
            "type": "integer",
            "format": "int32"
          },
          "bedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "receptionRooms": {
            "type": "integer",
            "format": "int32"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "appraisalTeamId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "appraisalTeam": {
            "$ref": "#/components/schemas/Team"
          },
          "teamMatchingAreaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "teamMatchingArea": {
            "$ref": "#/components/schemas/TeamMatchingArea"
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "fullDescription": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "commissionType": {
            "$ref": "#/components/schemas/CommissionType"
          },
          "commissionAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "property": {
            "$ref": "#/components/schemas/Property"
          },
          "localAuthorityId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "crmLocalAuthority": {
            "$ref": "#/components/schemas/LocalAuthority"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time"
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "appraisalStatus": {
            "$ref": "#/components/schemas/AppraisalStatus"
          },
          "appraisalPrice": {
            "type": "integer",
            "format": "int32"
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "isDirectBookingEnabled": {
            "type": "boolean"
          },
          "directViewingScheduleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "directViewingSchedule": {
            "$ref": "#/components/schemas/DirectViewingSchedule"
          },
          "schedulePauses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingSalesLifecyclePause"
            },
            "nullable": true
          },
          "isAccompanied": {
            "type": "boolean"
          },
          "viewingPreference": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingArrangements": {
            "maxLength": 2048,
            "type": "string",
            "nullable": true
          },
          "accessAndAlarm": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "keys": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "directions": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "nextCallDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextCallSubject": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "lowGuidePrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "highGuidePrice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "contractType": {
            "$ref": "#/components/schemas/ContractType"
          },
          "contractEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "feeStructure": {
            "$ref": "#/components/schemas/FeeStructure"
          },
          "vatAmount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "feeNotes": {
            "type": "string",
            "nullable": true
          },
          "directBookingHashCode": {
            "type": "string",
            "nullable": true
          },
          "customViewingSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectViewingSchedule"
            },
            "nullable": true
          },
          "lifecyclePropertyAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecyclePropertyAttribute"
            },
            "nullable": true
          },
          "lifecycleAppraisalQuestionAnswer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycleAppraisalQuestionAnswer"
            },
            "nullable": true
          },
          "lifecycleFeatures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycleFeature"
            },
            "nullable": true
          },
          "lifecycleMedia": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycleMedia"
            },
            "nullable": true
          },
          "lifecycleListings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycleListing"
            },
            "nullable": true
          },
          "viewings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesViewing"
            },
            "nullable": true
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Offer"
            },
            "nullable": true
          },
          "salesMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesMatch"
            },
            "nullable": true
          },
          "lifecycleRooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycleRoom"
            },
            "nullable": true
          },
          "keySets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesKeySet"
            },
            "nullable": true
          },
          "serviceCharge": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "groundRent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "leaseExpiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "saleBy": {
            "$ref": "#/components/schemas/SaleByType"
          },
          "tenure": {
            "$ref": "#/components/schemas/TenureType"
          },
          "boardType": {
            "$ref": "#/components/schemas/BoardType"
          },
          "boardContractorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "boardContractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "refId": {
            "maxLength": 30,
            "type": "string",
            "nullable": true
          },
          "portalCallbackUrl": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true
          },
          "appraisalLostReason": {
            "$ref": "#/components/schemas/AppraisalLostReason"
          },
          "agencySaleAgreementStatus": {
            "$ref": "#/components/schemas/AgencySaleAgreementStatus"
          },
          "agencySaleAgreementDocumentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycleAppraisalQuestionAnswer": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "question": {
            "maxLength": 250,
            "type": "string",
            "nullable": true
          },
          "answer": {
            "maxLength": 500,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycleFeature": {
        "required": [
          "featureText"
        ],
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "featureText": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycleListing": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "channel": {
            "$ref": "#/components/schemas/LifecycleListingChannel"
          },
          "externalListingId": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/LifecycleListingStatus"
          },
          "dateListed": {
            "type": "string",
            "format": "date-time"
          },
          "dateDelisted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "listingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "listingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "listingURL": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "enquiries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerEnquiry"
            },
            "nullable": true
          },
          "displayType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "listingStatus": {
            "$ref": "#/components/schemas/LifecycleMarketingStatus"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycleMedia": {
        "required": [
          "fileName",
          "filePath",
          "mimeType"
        ],
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "fileName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "filePath": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          },
          "mediaType": {
            "$ref": "#/components/schemas/MediaType"
          },
          "mimeType": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "collateralId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "collateral": {
            "$ref": "#/components/schemas/CustomBrochure"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecyclePropertyAttribute": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "extendedAttributeMetadataId": {
            "type": "integer",
            "format": "int32"
          },
          "extendedAttributeMetadata": {
            "$ref": "#/components/schemas/ExtendedAttributeMetadata"
          },
          "valueText": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "valueBoolean": {
            "type": "boolean",
            "nullable": true
          },
          "valueInt": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "valueDecimal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesLifecycleRoom": {
        "required": [
          "description",
          "name"
        ],
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "imageId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "image": {
            "$ref": "#/components/schemas/SalesLifecycleMedia"
          },
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 3000,
            "minLength": 1,
            "type": "string"
          },
          "width": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dimensionsLabel": {
            "type": "string",
            "nullable": true
          },
          "floor": {
            "$ref": "#/components/schemas/RoomFloor"
          },
          "type": {
            "$ref": "#/components/schemas/RoomType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesMatch": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "followUpStatus": {
            "$ref": "#/components/schemas/MatchFollowUpStatus"
          },
          "followUpNotes": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "$ref": "#/components/schemas/MatchSource"
          },
          "type": {
            "$ref": "#/components/schemas/MatchType"
          },
          "salesMatchHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesMatchHistory"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesMatchHistory": {
        "type": "object",
        "properties": {
          "salesMatchId": {
            "type": "integer",
            "format": "int64"
          },
          "salesMatch": {
            "$ref": "#/components/schemas/SalesMatch"
          },
          "action": {
            "$ref": "#/components/schemas/MatchAction"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SalesPropertyMaterialInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyRestrictions": {
            "type": "string",
            "nullable": true
          },
          "easementsServitudesWayleaves": {
            "type": "string",
            "nullable": true
          },
          "publicRightOfWay": {
            "type": "string",
            "nullable": true
          },
          "floodDefenses": {
            "type": "string",
            "nullable": true
          },
          "floodedLast5Years": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceRiver": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceSea": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceGroundwater": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceLake": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceReservoir": {
            "type": "string",
            "nullable": true
          },
          "floodingSourceOther": {
            "type": "string",
            "nullable": true
          },
          "electricitySupply": {
            "$ref": "#/components/schemas/ElectricType"
          },
          "waterSupply": {
            "$ref": "#/components/schemas/WaterSupplyType"
          },
          "heating": {
            "$ref": "#/components/schemas/HeatingType"
          },
          "broadband": {
            "$ref": "#/components/schemas/BroadbandType"
          },
          "sewerage": {
            "$ref": "#/components/schemas/SewerageType"
          },
          "parking": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParkingType"
            },
            "nullable": true
          },
          "accessibility": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessibilityType"
            },
            "nullable": true
          },
          "electricitySupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ElectricType"
            },
            "nullable": true
          },
          "heatingSupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeatingType"
            },
            "nullable": true
          },
          "broadbandSupplier": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BroadbandType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SalesViewing": {
        "type": "object",
        "properties": {
          "salesLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "salesLifecycle": {
            "$ref": "#/components/schemas/SalesLifecycle"
          },
          "sellerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "sellerGroup": {
            "$ref": "#/components/schemas/SellerGroup"
          },
          "buyerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroup": {
            "$ref": "#/components/schemas/BuyerGroup"
          },
          "status": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time"
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time"
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "dateBuyerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "buyerFeedback": {
            "type": "string",
            "nullable": true
          },
          "dateSellerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sellerFeedback": {
            "type": "string",
            "nullable": true
          },
          "buyerConfirmed": {
            "type": "boolean"
          },
          "sellerConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "dateDone": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "sendAVF": {
            "type": "boolean"
          },
          "avfDelay": {
            "type": "integer",
            "format": "int32"
          },
          "buyerOpinion": {
            "$ref": "#/components/schemas/ViewingViewerOpinion"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Seller": {
        "required": [
          "sellerGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "sellerGroupName": {
            "type": "string",
            "nullable": true
          },
          "sellerIsGroup": {
            "type": "boolean"
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSummary"
            },
            "nullable": true
          },
          "property": {
            "$ref": "#/components/schemas/PropertySummary"
          }
        },
        "additionalProperties": false
      },
      "SellerEnquiryRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reasonForMove": {
            "type": "string",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "possibleDate1": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "possibleDate2": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "possibleDate3": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "minSalesValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "salesValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maxSalesValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "minRentalValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "rentalValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maxRentalValuation": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SellerGroup": {
        "type": "object",
        "properties": {
          "sellerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SellerProfile"
            },
            "nullable": true
          },
          "salesLifecycles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesLifecycle"
            },
            "nullable": true
          },
          "nameAlias": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "addressee": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "cachePrimaryEmail": {
            "maxLength": 320,
            "type": "string",
            "nullable": true
          },
          "cachePrimaryPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "cacheSearch": {
            "type": "string",
            "nullable": true
          },
          "solicitorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "solicitor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SellerProfile": {
        "type": "object",
        "properties": {
          "personId": {
            "type": "integer",
            "format": "int64"
          },
          "person": {
            "$ref": "#/components/schemas/Person"
          },
          "sellerGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "sellerGroup": {
            "$ref": "#/components/schemas/SellerGroup"
          },
          "preferenceMarketAppraisal": {
            "type": "boolean"
          },
          "preferenceProperty": {
            "type": "boolean"
          },
          "preferenceViewing": {
            "type": "boolean"
          },
          "preferenceOffer": {
            "type": "boolean"
          },
          "preferenceSalesProgression": {
            "type": "boolean"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SellerSummary": {
        "required": [
          "propertyAddress",
          "sellerGroupName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "sellerGroupName": {
            "type": "string",
            "nullable": true
          },
          "sellerIsGroup": {
            "type": "boolean"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyStatus": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "offerCount": {
            "type": "integer",
            "format": "int32"
          },
          "acceptedOfferCount": {
            "type": "integer",
            "format": "int32"
          },
          "viewingCount": {
            "type": "integer",
            "format": "int32"
          },
          "upcomingViewingCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SewerageType": {
        "enum": [
          "mainsSupply",
          "privateSupply"
        ],
        "type": "string"
      },
      "StatementStatus": {
        "enum": [
          "unStatemented",
          "fullyStatemented",
          "partiallyStatemented"
        ],
        "type": "string"
      },
      "StringResponse": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Tag": {
        "required": [
          "creatingAgentId",
          "dateCreated",
          "dateUpdated",
          "label",
          "type",
          "updatingAgentId"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "type": {
            "$ref": "#/components/schemas/TagType"
          },
          "label": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TagType": {
        "enum": [
          "buyer",
          "seller",
          "renter",
          "landlord"
        ],
        "type": "string"
      },
      "Team": {
        "required": [
          "latitude",
          "longitude",
          "messagingCredit",
          "rentalViewingAVFDelay",
          "sendRentalViewingAVF",
          "sendViewingAVF",
          "subscriptionRadius",
          "viewingAVFDelay",
          "web2PrintCredit"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "format": "uuid"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "postCode": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "teamName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "subscriptionRadius": {
            "type": "integer",
            "format": "int32"
          },
          "dashboardStatsQualifierText": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "twitterScreenName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "priceMin": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priceMax": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Agent"
            },
            "nullable": true
          },
          "hiddenMasterProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HiddenMasterProperty"
            },
            "nullable": true
          },
          "outcodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamOutcode"
            },
            "nullable": true
          },
          "crmTeamOutcodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CRMTeamOutcode"
            },
            "nullable": true
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamChannel"
            },
            "nullable": true
          },
          "letterLadderTriggers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LetterLadderTrigger"
            },
            "nullable": true
          },
          "teamAgentRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamAgentRole"
            },
            "nullable": true
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKey"
            },
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "masterAgent": {
            "$ref": "#/components/schemas/MasterAgent"
          },
          "blacklistedAgents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BlacklistedAgent"
            },
            "nullable": true
          },
          "teamLetterLadderSettingsId": {
            "type": "integer",
            "format": "int64"
          },
          "teamLetterLadderSettings": {
            "$ref": "#/components/schemas/TeamLetterLadderSettings"
          },
          "address1": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address2": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "address3": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "websiteUrl": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "webSiteContactUrl": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "webSitePropertiesUrl": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "primaryDarkColor": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "primaryLightColor": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "secondaryDarkColor": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "secondaryLightColor": {
            "maxLength": 16,
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "web2PrintCredit": {
            "type": "integer",
            "format": "int32"
          },
          "messagingCredit": {
            "type": "integer",
            "format": "int32"
          },
          "teamDocumentSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamDocumentSettings"
            },
            "nullable": true
          },
          "teamRentalsDocumentSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamRentalsDocumentSettings"
            },
            "nullable": true
          },
          "clientAccountDocumentSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamAccountingDocumentSetting"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true
          },
          "matchingAreas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMatchingArea"
            },
            "nullable": true
          },
          "beaconForwardingSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeaconForwardingSetting"
            },
            "nullable": true
          },
          "maxTags": {
            "type": "integer",
            "format": "int32"
          },
          "jackLogicLogin": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "jackLogicPassowrd": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "teamLegalName": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "sendViewingAVF": {
            "type": "boolean"
          },
          "viewingAVFDelay": {
            "type": "integer",
            "format": "int32"
          },
          "sendRentalViewingAVF": {
            "type": "boolean"
          },
          "rentalViewingAVFDelay": {
            "type": "integer",
            "format": "int32"
          },
          "avfUrl": {
            "type": "string",
            "nullable": true
          },
          "signatureBlock": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "teamAvatar": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "primaryAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "primaryAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "displayLocation": {
            "maxLength": 28,
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "acaboomLogin": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "acaboomPassword": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "vatRegistered": {
            "type": "boolean"
          },
          "vatCode": {
            "type": "string",
            "nullable": true
          },
          "pmTrialEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "goLiveDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "emailStyle": {
            "$ref": "#/components/schemas/EmailStyle"
          },
          "logoUrl": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "TeamAccountingDocumentSetting": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "documentSettingId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "documentSetting": {
            "$ref": "#/components/schemas/TeamRentalsDocumentSettings"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamAgentRole": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agent": {
            "$ref": "#/components/schemas/Agent"
          },
          "type": {
            "$ref": "#/components/schemas/TeamAgentRoleType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamAgentRoleType": {
        "enum": [
          "eXpCorporate",
          "eXpLuxury"
        ],
        "type": "string"
      },
      "TeamAutoResponderSettings": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "introductionMessage": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "selectedPingPartnerContactName": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerContactEmail": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerDescription": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerAddress1": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerAddress2": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerAddress3": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerCounty": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerPostcode": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerLogo": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerLatitude": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerLongitude": {
            "type": "string",
            "nullable": true
          },
          "selectedPingPartnerWebsiteUrl": {
            "type": "string",
            "nullable": true
          },
          "isAutoResponderEnabled": {
            "type": "boolean"
          },
          "callToActionLink": {
            "type": "string",
            "nullable": true
          },
          "callToActionLinkText": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/EnquiryAutoResponderTeamStatus"
          }
        },
        "additionalProperties": false
      },
      "TeamChannel": {
        "required": [
          "configuration"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "channelId": {
            "type": "integer",
            "format": "int32"
          },
          "channel": {
            "$ref": "#/components/schemas/Channel"
          },
          "configuration": {
            "minLength": 1,
            "type": "string"
          },
          "comment": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "channelType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamDocumentSettings": {
        "required": [
          "documentSettingsName"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "documentSettingsName": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "firstPageTopMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageBottomMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageLeftMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageRightMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageBrandingImageUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "continuationPageTopMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationBottomMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationLeftMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationRightMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationBrandingImageUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamLetterLadderSettings": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "niWeek1TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "niWeek1Selected": {
            "type": "boolean"
          },
          "niWeek2TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "niWeek2Selected": {
            "type": "boolean"
          },
          "niWeek3TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "niWeek3Selected": {
            "type": "boolean"
          },
          "niWeek4TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "niWeek4Selected": {
            "type": "boolean"
          },
          "smMonth2TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth2Selected": {
            "type": "boolean"
          },
          "smMonth3TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth3Selected": {
            "type": "boolean"
          },
          "smMonth4TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth4Selected": {
            "type": "boolean"
          },
          "smMonth6TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth6Selected": {
            "type": "boolean"
          },
          "smMonth9TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth9Selected": {
            "type": "boolean"
          },
          "smMonth12TemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "smMonth12Selected": {
            "type": "boolean"
          },
          "reductionTemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reductionSelected": {
            "type": "boolean"
          },
          "withdrawalTemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "withdrawalSelected": {
            "type": "boolean"
          },
          "fallthroughTemplateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fallthroughSelected": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamMatchingArea": {
        "required": [
          "creatingAgentId",
          "dateCreated",
          "dateUpdated",
          "priority",
          "updatingAgentId"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "priority": {
            "maxLength": 64,
            "type": "integer",
            "format": "int32"
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TeamMember": {
        "required": [
          "email",
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "mobilePhone": {
            "type": "string",
            "nullable": true
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "signatureImageUrl": {
            "type": "string",
            "nullable": true
          },
          "avatarImage": {
            "type": "string",
            "nullable": true
          },
          "avatarMedium": {
            "type": "string",
            "nullable": true
          },
          "avatarThumbnail": {
            "type": "string",
            "nullable": true
          },
          "biography": {
            "type": "string",
            "nullable": true
          },
          "customUrl": {
            "type": "string",
            "nullable": true
          },
          "twitterUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TeamOutcode": {
        "required": [
          "outcodeText"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "outcodeText": {
            "maxLength": 4,
            "minLength": 1,
            "type": "string"
          },
          "outcodeId": {
            "type": "integer",
            "format": "int32"
          },
          "pricePerMonth": {
            "type": "number",
            "format": "double"
          },
          "discountPercentage": {
            "type": "number",
            "format": "double"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TeamRentalsDocumentSettings": {
        "required": [
          "documentSettingsName"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "documentSettingsName": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "firstPageTopMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageBottomMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageLeftMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageRightMargin": {
            "type": "number",
            "format": "double"
          },
          "firstPageBrandingImageUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "continuationPageTopMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationBottomMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationLeftMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationRightMargin": {
            "type": "number",
            "format": "double"
          },
          "continuationBrandingImageUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          },
          "isTFP": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Tenancy": {
        "type": "object",
        "properties": {
          "cacheActiveTermId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "cacheActiveTerm": {
            "$ref": "#/components/schemas/TenancyTerm"
          },
          "terms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyTerm"
            },
            "nullable": true
          },
          "crmRentalLifecycleId": {
            "type": "integer",
            "format": "int64"
          },
          "crmRentalLifecycle": {
            "$ref": "#/components/schemas/LettingsLifecycle"
          },
          "crmRentalGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "crmRentalGroup": {
            "$ref": "#/components/schemas/RenterGroup"
          },
          "status": {
            "$ref": "#/components/schemas/RentalTenancyStatus"
          },
          "renterType": {
            "$ref": "#/components/schemas/RentalRenterType"
          },
          "deposit": {
            "type": "number",
            "format": "double"
          },
          "depositScheme": {
            "$ref": "#/components/schemas/DepositScheme"
          },
          "depositHeldByLandlord": {
            "type": "boolean"
          },
          "clientDepositSchemeId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "clientDepositScheme": {
            "$ref": "#/components/schemas/ClientDepositScheme"
          },
          "depositReference": {
            "type": "string",
            "nullable": true
          },
          "holdingDeposit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "holdingDepositRequestedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "holdingDepositRequestedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "additionalOccupants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyAdditionalOccupant"
            },
            "nullable": true
          },
          "gasProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "gasReadingIn": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "gasReadingOut": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "electricProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "electricReadingIn": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "electricReadingOut": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "waterProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "waterReadingIn": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "waterReadingOut": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "telecomsProvider": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "utilityNotes": {
            "maxLength": 500,
            "type": "string",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "dateSentToSeller": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateClosed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "closingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "closingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "responsibleAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "responsibleAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateWithdrawn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "withdrawalType": {
            "$ref": "#/components/schemas/RentalTenancyWithdrawalType"
          },
          "withdrawalReason": {
            "type": "string",
            "nullable": true
          },
          "dateFinished": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "finishedReason": {
            "type": "string",
            "nullable": true
          },
          "referenceNumber": {
            "type": "integer",
            "format": "int32"
          },
          "rentAndLegalProtection": {
            "type": "boolean"
          },
          "tenantPaymentReference": {
            "type": "string",
            "nullable": true
          },
          "openingBalanceAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "openingBalanceSignOffDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openingBalanceDateSet": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openingBalanceAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "openingBalanceAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "openingBalanceNotes": {
            "type": "string",
            "nullable": true
          },
          "receipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyReceipt"
            },
            "nullable": true
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyCharge"
            },
            "nullable": true
          },
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyChargeSchedule"
            },
            "nullable": true
          },
          "lettsPayTenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonLettsPayTenantLink"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyAdditionalOccupant": {
        "required": [
          "dateOfBirth",
          "firstName",
          "lastName",
          "relationship"
        ],
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "firstName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "lastName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "relationship": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "contactDetails": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "notes": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyAgencyChargePayout": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tenancyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "agencyBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "agencyBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyCharge": {
        "required": [
          "description",
          "reference"
        ],
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "statementPrefix": {
            "type": "string",
            "nullable": true
          },
          "creditNoteNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullCreditNoteNumber": {
            "type": "string",
            "nullable": true
          },
          "invoicePrefix": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "format": "int64"
          },
          "fullInvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "payTo": {
            "$ref": "#/components/schemas/ChargePayToType"
          },
          "ledgerChargeTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "ledgerChargeType": {
            "$ref": "#/components/schemas/LedgerChargeType"
          },
          "frequency": {
            "$ref": "#/components/schemas/ChargeFrequencyType"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "chargeDate": {
            "type": "string",
            "format": "date-time"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "contractorAddressBookId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorAddressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "maintenanceJobId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maintenanceJob": {
            "$ref": "#/components/schemas/LettingsMaintenanceJob"
          },
          "jobNumber": {
            "type": "string",
            "nullable": true
          },
          "invoiceReference": {
            "type": "string",
            "nullable": true
          },
          "feeForChargeId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "feeForCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "voidedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "voidedAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "chargeScheduleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "chargeSchedule": {
            "$ref": "#/components/schemas/TenancyChargeSchedule"
          },
          "scheduleAuditComment": {
            "type": "string",
            "nullable": true
          },
          "allocatedReceipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyReceiptAllocation"
            },
            "nullable": true
          },
          "agencyPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyAgencyChargePayout"
            },
            "nullable": true
          },
          "securityDepositPayouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancySecurityDepositPayout"
            },
            "nullable": true
          },
          "propertyDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyChargePropertyDisbursement"
            },
            "nullable": true
          },
          "contractorDisbursements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyChargeContractorDisbursement"
            },
            "nullable": true
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "vatRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "vatPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateVoid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "voidComment": {
            "type": "string",
            "nullable": true
          },
          "creditAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "creditReason": {
            "type": "string",
            "nullable": true
          },
          "dateCreditAdded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "creditAddedUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creditAddedUser": {
            "$ref": "#/components/schemas/Agent"
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyChargeContractorDisbursement": {
        "type": "object",
        "properties": {
          "tenancyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "contractorId": {
            "type": "integer",
            "format": "int64"
          },
          "contractor": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "remittanceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "remittance": {
            "$ref": "#/components/schemas/ContractorRemittance"
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyChargePropertyDisbursement": {
        "type": "object",
        "properties": {
          "tenancyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "propertyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyReceipt": {
            "$ref": "#/components/schemas/PropertyReceipt"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyChargeSchedule": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "maxLength": 80,
            "type": "string",
            "nullable": true
          },
          "addPeriodToDescription": {
            "type": "boolean"
          },
          "frequency": {
            "$ref": "#/components/schemas/PriceType"
          },
          "endType": {
            "$ref": "#/components/schemas/ChargeScheduleEndType"
          },
          "endOccurrences": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "nextDueDate": {
            "type": "string",
            "format": "date-time"
          },
          "payTo": {
            "$ref": "#/components/schemas/ChargePayToType"
          },
          "ledgerChargeTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "ledgerChargeType": {
            "$ref": "#/components/schemas/LedgerChargeType"
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "vatRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "contractorAddressBookId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "contractorAddressBook": {
            "$ref": "#/components/schemas/AddressBook"
          },
          "agencyFeeType": {
            "$ref": "#/components/schemas/MaintenanceJobAgencyFeeType"
          },
          "agencyFeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "agencyFeeVATRate": {
            "$ref": "#/components/schemas/VATRate"
          },
          "includeFeesInCharge": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyCharge"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyReceipt": {
        "required": [
          "description",
          "reference"
        ],
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "receivedFromPersonId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "receivedFromPerson": {
            "$ref": "#/components/schemas/Person"
          },
          "receivedFromOther": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/ReceiptPaymentMethodType"
          },
          "dateReceived": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "netAmount": {
            "type": "number",
            "format": "double"
          },
          "isHoldingDeposit": {
            "type": "boolean"
          },
          "isOpeningBalance": {
            "type": "boolean"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "reconciledTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reconciledTransaction": {
            "$ref": "#/components/schemas/ClientBankAccountTransaction"
          },
          "dateReconciled": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reconciledAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "reconciledAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "isVoid": {
            "type": "boolean"
          },
          "voidComment": {
            "type": "string",
            "nullable": true
          },
          "dateVoid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "voidedAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "voidedAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyReceiptAllocation"
            },
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenancyRefund"
            },
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyReceiptAllocation": {
        "type": "object",
        "properties": {
          "tenancyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyReceipt": {
            "$ref": "#/components/schemas/TenancyReceipt"
          },
          "tenancyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "additionalNotes": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyRefund": {
        "required": [
          "notes",
          "reference"
        ],
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "tenancyReceiptId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyReceipt": {
            "$ref": "#/components/schemas/TenancyReceipt"
          },
          "tenantBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantBankAccount": {
            "$ref": "#/components/schemas/PersonBankAccount"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "isVoid": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancySecurityDepositPayout": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tenancyChargeId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancyCharge": {
            "$ref": "#/components/schemas/TenancyCharge"
          },
          "depositSchemeId": {
            "type": "integer",
            "format": "int64"
          },
          "depositScheme": {
            "$ref": "#/components/schemas/ClientDepositScheme"
          },
          "agencyDepositBankAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "agencyDepositBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "updatingAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "bankAccountPayoutId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bankAccountPayout": {
            "$ref": "#/components/schemas/BankAccountPayout"
          },
          "clientBankAccountId": {
            "type": "integer",
            "format": "int64"
          },
          "clientBankAccount": {
            "$ref": "#/components/schemas/ClientBankAccount"
          },
          "payoutTransactionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "payoutTransaction": {
            "$ref": "#/components/schemas/BankAccountPayoutTransaction"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyTerm": {
        "type": "object",
        "properties": {
          "tenancyId": {
            "type": "integer",
            "format": "int64"
          },
          "tenancy": {
            "$ref": "#/components/schemas/Tenancy"
          },
          "endOfTermStatus": {
            "$ref": "#/components/schemas/EndOfTenancyTermStatus"
          },
          "rentFrequency": {
            "$ref": "#/components/schemas/PriceType"
          },
          "rent": {
            "type": "number",
            "format": "double"
          },
          "leaseType": {
            "$ref": "#/components/schemas/RentalLeaseType"
          },
          "rentalServiceLevel": {
            "$ref": "#/components/schemas/RentalServiceLevel"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "earliestTerminationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "termType": {
            "$ref": "#/components/schemas/TenancyTermType"
          },
          "termDuration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "termDurationDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "renewalSent": {
            "type": "boolean"
          },
          "inspectionFrequency": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "termConditions": {
            "maxLength": 4000,
            "type": "string",
            "nullable": true
          },
          "additionalClauses": {
            "maxLength": 4000,
            "type": "string",
            "nullable": true
          },
          "managementFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "managementFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "findingFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "findingFeeType": {
            "$ref": "#/components/schemas/LettingFeeType"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TenancyTermType": {
        "enum": [
          "weeks",
          "months"
        ],
        "type": "string"
      },
      "TenantDetailsDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenureType": {
        "enum": [
          "none",
          "freehold",
          "leasehold",
          "feudal",
          "shareOfFreehold"
        ],
        "type": "string"
      },
      "UserPropertyMedia": {
        "required": [
          "fileName",
          "filePath",
          "mimeType"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          },
          "filePath": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "fileName": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "mimeType": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "agentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "agentName": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "UserPropertySpyShot": {
        "required": [
          "fileName",
          "filePath",
          "mimeType"
        ],
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "masterPropertyId": {
            "type": "integer",
            "format": "int64"
          },
          "masterProperty": {
            "$ref": "#/components/schemas/MasterProperty"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          },
          "filePath": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "fileName": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "mimeType": {
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          },
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "caption": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "agentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "agentName": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "UserType": {
        "enum": [
          "notSet",
          "privateTrFullTimeeaty",
          "partTime",
          "mannequin"
        ],
        "type": "string"
      },
      "VATRate": {
        "enum": [
          "standardRate",
          "reducedRate"
        ],
        "type": "string"
      },
      "Viewing": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateBuyerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateSellerFeedbackGiven": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateDone": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "buyerFeedback": {
            "type": "string",
            "nullable": true
          },
          "sellerFeedback": {
            "type": "string",
            "nullable": true
          },
          "buyerConfirmed": {
            "type": "boolean"
          },
          "sellerConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "property": {
            "$ref": "#/components/schemas/PropertySummary"
          },
          "buyer": {
            "$ref": "#/components/schemas/BuyerSummary"
          },
          "seller": {
            "$ref": "#/components/schemas/SellerSummary"
          },
          "attendingAgent": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "creatingAgent": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "teamId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ViewingCategory": {
        "enum": [
          "all",
          "comingUp",
          "carriedOut",
          "cancelled",
          "didntTurnUp"
        ],
        "type": "string"
      },
      "ViewingCreate": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time"
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time"
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "buyerConfirmed": {
            "type": "boolean"
          },
          "sellerConfirmed": {
            "type": "boolean"
          },
          "agentConfirmed": {
            "type": "boolean"
          },
          "buyerId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "buyerTitle": {
            "$ref": "#/components/schemas/PersonTitle"
          },
          "buyerFirstName": {
            "type": "string",
            "nullable": true
          },
          "buyerLastName": {
            "type": "string",
            "nullable": true
          },
          "buyerContactNotes": {
            "type": "string",
            "nullable": true
          },
          "buyerPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "buyerPhoneNumberType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "buyerPhoneNumberNotes": {
            "type": "string",
            "nullable": true
          },
          "buyerEmail": {
            "type": "string",
            "nullable": true
          },
          "buyerEmailType": {
            "$ref": "#/components/schemas/PersonContactDetailType"
          },
          "buyerEmailNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ViewingFeedback": {
        "required": [
          "buyerGroupName",
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "viewingId": {
            "type": "integer",
            "format": "int64"
          },
          "viewingDateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "viewingStatus": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "viewingType": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "viewingBuyerFeedback": {
            "type": "string",
            "nullable": true
          },
          "viewingSellerFeedback": {
            "type": "string",
            "nullable": true
          },
          "buyerId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerGroupName": {
            "type": "string",
            "nullable": true
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "propertyStatus": {
            "$ref": "#/components/schemas/LifecycleStatus"
          },
          "propertyType": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "propertyPrice": {
            "type": "integer",
            "format": "int32"
          },
          "propertyPriceQualifier": {
            "$ref": "#/components/schemas/PriceQualifiers"
          },
          "propertyImage": {
            "type": "string",
            "nullable": true
          },
          "propertyBedrooms": {
            "type": "integer",
            "format": "int32"
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "teamId": {
            "type": "string",
            "format": "uuid"
          },
          "teamClientName": {
            "type": "string",
            "nullable": true
          },
          "teamAddress1": {
            "type": "string",
            "nullable": true
          },
          "teamAddress2": {
            "type": "string",
            "nullable": true
          },
          "teamAddress3": {
            "type": "string",
            "nullable": true
          },
          "teamEmail": {
            "type": "string",
            "nullable": true
          },
          "teamPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "teamWebsiteUrl": {
            "type": "string",
            "nullable": true
          },
          "teamPrimaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "teamPrimaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "teamSecondaryDarkColour": {
            "type": "string",
            "nullable": true
          },
          "teamSecondaryLightColour": {
            "type": "string",
            "nullable": true
          },
          "masterAgentId": {
            "type": "integer",
            "format": "int32"
          },
          "teamLogo": {
            "type": "string",
            "nullable": true
          },
          "feedbackQuestions": {
            "type": "string",
            "nullable": true
          },
          "agentId": {
            "type": "string",
            "format": "uuid"
          },
          "agentName": {
            "type": "string",
            "nullable": true
          },
          "agentEmail": {
            "type": "string",
            "nullable": true
          },
          "agentMobilePhone": {
            "type": "string",
            "nullable": true
          },
          "agentJobTitle": {
            "type": "string",
            "nullable": true
          },
          "agentAvatar": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ViewingLettingsStatus": {
        "enum": [
          "comingUp",
          "cancelled",
          "carriedOut",
          "done",
          "didntTurnUp"
        ],
        "type": "string"
      },
      "ViewingRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "phoneDaytime": {
            "type": "string",
            "nullable": true
          },
          "phoneEvening": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "possibleDate1": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "possibleDate2": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "possibleDate3": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateMoving": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reasonForMove": {
            "type": "string",
            "nullable": true
          },
          "propertyToSell": {
            "type": "boolean"
          },
          "propertyToRent": {
            "type": "boolean"
          },
          "financialAdvice": {
            "type": "boolean"
          },
          "partExchange": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ViewingStatus": {
        "enum": [
          "comingUp",
          "confirmed",
          "awaitingBuyerFeedback",
          "cancelled",
          "carriedOut",
          "done",
          "didntTurnUp"
        ],
        "type": "string"
      },
      "ViewingSummary": {
        "required": [
          "buyerName",
          "propertyAddress"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64"
          },
          "propertyAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ViewingStatus"
          },
          "dateOfAppointment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfAppointmentEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attendingAgentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatingAgentId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/ViewingType"
          },
          "buyerName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ViewingType": {
        "enum": [
          "accompanied",
          "unaccompanied",
          "virtual"
        ],
        "type": "string"
      },
      "ViewingViewerOpinion": {
        "enum": [
          "unknown",
          "interested",
          "uninterested"
        ],
        "type": "string"
      },
      "WaterSupplyType": {
        "enum": [
          "mainsSupply",
          "privateSupply"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "x-api-key": {
        "type": "apiKey",
        "description": "API Key Authentication",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "x-api-key": [ ]
    }
  ]
}