openapi: 3.0.1 info: title: Purplebricks Property API 1.0 - Platform description: '### All Ex Uber Property related controllers are here. ### [Purplebricks Property API Git Repository](https://dev.azure.com/purplebricks/BackEnd/_git/property-api)' version: '1.0' servers: - url: https://api.purplebricks.co.uk/property-api paths: /v1/activeproperty/{id}: get: tags: - ActiveProperty parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivePropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivePropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivePropertyViewModel' /v1/activitydashboard/getactivitydocument: get: tags: - ActivityDashboard responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.ActivityDashboardDocument' application/json: schema: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.ActivityDashboardDocument' text/json: schema: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.ActivityDashboardDocument' /v1/activitydashboard/getpropertiesbyuserid: get: tags: - ActivityDashboard responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyModel' /v1/activitydashboard/getpropertynotificationcount: get: tags: - ActivityDashboard responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardTotalsModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardTotalsModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardTotalsModel' /v1/address/createaddress: post: tags: - Address requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.AddressInputModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.AddressInputModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.AddressInputModel' responses: '200': description: Success content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 /v1/bland/property/{propertyId}: get: tags: - Bland parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/bland/property: post: tags: - Bland requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Api.Controllers.V1.BlandController+BlandPropertyRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Api.Controllers.V1.BlandController+BlandPropertyRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Api.Controllers.V1.BlandController+BlandPropertyRequest' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/countrywide/jobresult: post: tags: - Countrywide parameters: - name: Authorization in: header schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.Countrywide.JobResultRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.Countrywide.JobResultRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.Countrywide.JobResultRequest' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Countrywide.JobResultResponse' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Countrywide.JobResultResponse' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Countrywide.JobResultResponse' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/dashboard: get: tags: - Dashboard responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Dashboard.MyPropertiesViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Dashboard.MyPropertiesViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Dashboard.MyPropertiesViewModel' /v1/dashboard/externallinks: get: tags: - Dashboard parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyExternalLinksViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyExternalLinksViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyExternalLinksViewModel' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/exposurereport/{propertyId}: get: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/exposurereport/{propertyId}/history: get: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportSummary' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportSummary' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportSummary' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/exposurereport/{propertyId}/{reportId}: get: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: reportId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/exposurereport/{propertyId}/week-{weekNumber}: get: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: weekNumber in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportResponse' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/exposurereport/{propertyId}/market: get: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.MarketData' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.MarketData' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.MarketData' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/exposurereport/{propertyId}/generate: post: tags: - ExposureReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '202': description: Success '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/gotomarket/{propertyId}/progress: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.GoToMarketViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.GoToMarketViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.GoToMarketViewModel' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/boardandkeysafepreference: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.BoardAndKeySafePreferenceRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.BoardAndKeySafePreferenceRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.BoardAndKeySafePreferenceRequest' responses: '200': description: Success '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/propertytaxband: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.TaxBandCreationRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.TaxBandCreationRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.TaxBandCreationRequest' responses: '200': description: Success '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/getimageuploaddetails: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: imageCount in: query schema: type: integer format: int32 default: 0 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ImageUploadViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ImageUploadViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ImageUploadViewModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/saveimagedetails: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SaveImageDetailsRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SaveImageDetailsRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SaveImageDetailsRequest' responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/marketprice: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/marketprice/reject: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.MarketPriceRejectionRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.MarketPriceRejectionRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.MarketPriceRejectionRequest' responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/marketprice/accept: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/ownershipreview: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/ownershipreview/accept: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/ownershipreview/reject: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.OwnershipReviewRejectRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.OwnershipReviewRejectRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.OwnershipReviewRejectRequest' responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/floorplan: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/propertydescription: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/propertykeyfeatures: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/approveall: post: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/gotomarket/{propertyId}/advertsummary: get: tags: - GoToMarket parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/inactiveproperty/{id}: get: tags: - InactiveProperty parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InactivePropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InactivePropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InactivePropertyViewModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error post: tags: - InactiveProperty parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '204': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/instantinstruct: post: tags: - InstantInstruct requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyDetailsWithTenancyInfoInputModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyDetailsWithTenancyInfoInputModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyDetailsWithTenancyInfoInputModel' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InstantInstructPropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InstantInstructPropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InstantInstructPropertyViewModel' /v1/performancereport/internal/{propertyId}: get: tags: - InternalPerformanceReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalPropertyReportViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalPropertyReportViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalPropertyReportViewModel' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/performancereport/internal/getadvertperformance/{propertyId}: get: tags: - InternalPerformanceReport parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalAdvertPerformanceViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalAdvertPerformanceViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalAdvertPerformanceViewModel' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/performancereport/internal/getadvertperformance: get: tags: - InternalPerformanceReport parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/performancereport/internal/properties: get: tags: - InternalPerformanceReport responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ReportableProperty' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ReportableProperty' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ReportableProperty' /v1/performancereport/internal/propertiesbyexpert: get: tags: - InternalPerformanceReport parameters: - name: expertIds in: query schema: type: string responses: '200': description: Success content: text/plain: schema: type: array items: type: integer format: int32 application/json: schema: type: array items: type: integer format: int32 text/json: schema: type: array items: type: integer format: int32 /v1/landregistry/transactions: get: tags: - LandRegistry summary: "Gets property transaction records from the UK Land Registry.\r\nThis endpoint is publicly\ \ accessible without authentication." parameters: - name: town in: query description: Town name to filter by (required, e.g., "WOKING", "WARRINGTON") schema: type: string - name: pageSize in: query description: Number of records per page (optional, defaults to 25) schema: type: integer format: int32 default: 25 - name: sort in: query description: Sort field and direction (optional, defaults to "-transactionDate") schema: type: string default: -transactionDate responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LandRegistryResponse' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LandRegistryResponse' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LandRegistryResponse' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/owners/additional-sellers: get: tags: - Owners parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/owners/additional-buyers: get: tags: - Owners parameters: - name: offerId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/performancereport/{id}: get: tags: - PerformanceReport parameters: - name: id in: path required: true schema: type: integer format: int32 - name: userId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' /v1/performancereport/getadvertperformance: get: tags: - PerformanceReport parameters: - name: propertyId in: query schema: type: integer format: int32 - name: from in: query schema: type: string format: date-time - name: to in: query schema: type: string format: date-time responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/preactive/{id}: get: tags: - Preactive parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PreactiveViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PreactiveViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PreactiveViewModel' /v1/property/create: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.PropertyDetails' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.PropertyDetails' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.PropertyDetails' responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '201': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' '404': description: Not Found content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '400': description: Bad Request content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/relistproperty: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.RelistPropertyRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.RelistPropertyRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Contract.RelistPropertyRequest' responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '201': description: Success content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '404': description: Not Found content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 /v1/property/getpropertylist: get: tags: - Property responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' /v1/property/getproperty: get: tags: - Property parameters: - name: id in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' /v1/property/getowners: get: tags: - Property parameters: - name: id in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnersViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnersViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnersViewModel' /v1/property/marketingprice: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SellingPriceInputModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SellingPriceInputModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.SellingPriceInputModel' responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/addpropertymediadata: put: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '201': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyMediaData' '404': description: Not Found content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 /v1/property/{propertyId}: get: tags: - Property parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/{propertyId}/address: get: tags: - Property parameters: - name: propertyId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyAddressRequest' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyAddressRequest' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyAddressRequest' responses: '200': description: Success content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '405': description: Method Not Allowed content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '400': description: Bad Request content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 /v1/property/rentalprice: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.RentalPriceInputModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.RentalPriceInputModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.RentalPriceInputModel' responses: '200': description: Success /v1/property/getagentforproperty: get: tags: - Property parameters: - name: id in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExpertContactViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExpertContactViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExpertContactViewModel' /v1/property/getsalesaddonavailability: get: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LocationGroupSalesAddOnAvailabilityViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LocationGroupSalesAddOnAvailabilityViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LocationGroupSalesAddOnAvailabilityViewModel' /v1/property/hasboardordered: get: tags: - Property parameters: - name: id in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean /v1/property/getpropertyhistory: get: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.HistoryEventModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.HistoryEventModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.HistoryEventModel' /v1/property/getuserproperties: get: tags: - Property parameters: - name: userId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.UserPropertyModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.UserPropertyModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.UserPropertyModel' /v1/property/getportalenquiries: get: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyEnquiryModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyEnquiryModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyEnquiryModel' /v1/property/getpropertytracks: get: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyTrackModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyTrackModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.PropertyTrackModel' /v1/property/registertrackedrecord: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' responses: '201': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/withdrawtrackedrecord: delete: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/registernoteofinterest: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyTrackedInput' responses: '201': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/withdrawnoteofinterest: delete: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/getpropertyactions: get: tags: - Property parameters: - name: propertyId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAction' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAction' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAction' /v1/property/createproperty: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.CreatePropertyInput' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.CreatePropertyInput' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.CreatePropertyInput' responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '201': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.CreatePropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.CreatePropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.CreatePropertyViewModel' '400': description: Bad Request content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error default: description: Error content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/resetproperty/{propertyId}/{userId}: post: tags: - Property parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: userId in: path required: true schema: type: integer format: int32 responses: '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '201': description: Success '400': description: Bad Request content: text/plain: schema: type: integer format: int32 application/json: schema: type: integer format: int32 text/json: schema: type: integer format: int32 '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error default: description: Error content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/property/sendinstantinstructcontactrequest: post: tags: - Property requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.ContactRequestInputModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.ContactRequestInputModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.ContactRequestInputModel' responses: '200': description: Success '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/creatio/properties/{propertyId}: get: tags: - Property parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/creatio/properties/{propertyId}/notes: get: tags: - Property parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyNotesViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyNotesViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyNotesViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/propertybox/{propertyId}/propertyboxorderstatus: get: tags: - PropertyBox parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxOrderStatusViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxOrderStatusViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxOrderStatusViewModel' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/propertybox/{propertyId}/propertyboxdeeplink: get: tags: - PropertyBox parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxDeepLinkViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxDeepLinkViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyBoxDeepLinkViewModel' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/propertyquestionnaireform/{id}: get: tags: - PropertyQuestionnaireForm parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertyQuestionnaireFormModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertyQuestionnaireFormModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertyQuestionnaireFormModel' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/propertysearchhits/{id}: get: tags: - PropertySearchHits parameters: - name: id in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertySearchHits' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertySearchHits' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertySearchHits' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/railwaystations/{postcode}: get: tags: - RailwayStations parameters: - name: postcode in: path required: true schema: type: string responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RailwayStationViewModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RailwayStationViewModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RailwayStationViewModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/trackedproperties: get: tags: - TrackedProperties parameters: - name: trackType in: query schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PropertyTrackType' - name: limit in: query schema: type: integer format: int32 default: 50 - name: cursor in: query schema: type: string - name: page in: query schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.CursorPaginationType' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.TrackedPropertiesListModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.TrackedPropertiesListModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.TrackedPropertiesListModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/trackedproperties/{propertyId}: post: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' delete: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/trackedproperties/{propertyId}/tracked: get: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/trackedproperties/{propertyId}/note-of-interest: post: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' delete: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '409': description: Conflict content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' get: tags: - TrackedProperties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/creatio/users/{userId}/properties: get: tags: - Users parameters: - name: userId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioUserPropertiesViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioUserPropertiesViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioUserPropertiesViewModel' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/withdraw: post: tags: - Withdraw requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/request: post: tags: - Withdraw requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.RequestWithdrawProperty' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.RequestWithdrawProperty' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.RequestWithdrawProperty' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/cancelrequest: post: tags: - Withdraw requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.CancelRequestWithdrawProperty' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.CancelRequestWithdrawProperty' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.CancelRequestWithdrawProperty' responses: '200': description: Success '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error /v1/creatio/withdraw: post: tags: - Withdraw requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error components: schemas: Microsoft.AspNetCore.Mvc.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: {} Purplebricks.CosmosDb.Documents.ActivityDashboard.ActivityDashboardDocument: type: object properties: offers: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardOfferDocument' viewings: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardViewingDocument' diary: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardDiaryDocument' messages: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardMessageDocument' feedback: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardFeedbackDocument' additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardDiaryDocument: type: object properties: id: type: string nullable: true lastUpdated: type: string format: date-time appointmentInDiary: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationDiaryModel' nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardFeedbackDocument: type: object properties: id: type: string nullable: true lastUpdated: type: string format: date-time provideFeedback: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationFeedbackModel' nullable: true feedbackToReview: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationFeedbackModel' nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardMessageDocument: type: object properties: id: type: string nullable: true lastUpdated: type: string format: date-time unreadMessage: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationMessageModel' nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardOfferDocument: type: object properties: id: type: string nullable: true lastUpdated: type: string format: date-time offerToReview: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel' nullable: true updateToOffer: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel' nullable: true lawyerDetailsRequired: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel' nullable: true payReferencingFee: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel' nullable: true submitReferencing: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel' nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.Collections.ActivityDashboardViewingDocument: type: object properties: id: type: string nullable: true lastUpdated: type: string format: date-time outcomeOfViewing: type: array items: $ref: '#/components/schemas/Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationViewingModel' nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationDiaryModel: type: object properties: appointmentId: type: integer format: int32 propertyId: type: integer format: int32 appointmentDateTime: type: string format: date-time additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationFeedbackModel: type: object properties: feedbackId: type: integer format: int32 propertyId: type: integer format: int32 propertyAddress: type: string nullable: true from: type: string nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationMessageModel: type: object properties: messageId: type: integer format: int32 propertyId: type: integer format: int32 from: type: string nullable: true additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationOfferModel: type: object properties: offerId: type: integer format: int32 propertyId: type: integer format: int32 toLet: type: boolean propertyAddress: type: string nullable: true buyerName: type: string nullable: true propertyRegionType: $ref: '#/components/schemas/Purplebricks.CosmosDb.Enums.RegionType' additionalProperties: false Purplebricks.CosmosDb.Documents.ActivityDashboard.SubModels.NotificationViewingModel: type: object properties: viewingId: type: integer format: int32 propertyId: type: integer format: int32 propertyAddress: type: string nullable: true additionalProperties: false Purplebricks.CosmosDb.Enums.RegionType: enum: - England - Scotland - Wales - NorthernIreland - Queensland - Victoria - NewSouthWales - WesternAustralia - SouthAustralia - California - NewYork - Connecticut - NewJersey - Pennsylvania type: string Purplebricks.Property.Api.Controllers.V1.BlandController+BlandPropertyRequest: required: - propertyId type: object properties: propertyId: maximum: 2147483647 minimum: 1 type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.InputModels.AddressInputModel: required: - line1 - postcode - town type: object properties: line1: type: string line2: type: string nullable: true town: type: string county: type: string nullable: true postcode: type: string country: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.BoardAndKeySafePreferenceRequest: type: object properties: requiresStandingBoard: type: boolean shouldBoardBeDeliveredLater: type: boolean requiresKeySafe: type: boolean keySafeNotes: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.ContactRequestInputModel: type: object properties: propertyId: type: integer format: int32 fullName: type: string nullable: true phone: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.Countrywide.JobResultRequest: type: object properties: property_external_ref: type: string nullable: true Cws_property_id: type: string nullable: true Job_external_ref: type: string nullable: true CWS_job_number: type: string nullable: true job_result: type: string nullable: true job_notes: type: string nullable: true image: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.CreatePropertyInput: type: object properties: addressId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.InputModels.ImageDetails: type: object properties: url: type: string nullable: true title: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.MarketPriceRejectionRequest: type: object properties: userMarketPrice: type: number format: double additionalProperties: false Purplebricks.Property.Business.InputModels.OwnershipReviewRejectRequest: type: object properties: feedback: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.PropertyAddressRequest: type: object properties: propertyId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.InputModels.PropertyDetails: type: object properties: id: type: integer format: int32 userId: type: integer format: int32 expertId: type: integer format: int32 line1: maxLength: 200 type: string nullable: true line2: maxLength: 200 type: string nullable: true unitNumber: maxLength: 50 type: string nullable: true town: maxLength: 200 type: string nullable: true county: maxLength: 200 type: string nullable: true state: maxLength: 50 type: string nullable: true postcode: maxLength: 10 type: string nullable: true country: maxLength: 200 type: string nullable: true bedrooms: type: integer format: int32 nullable: true receptions: type: integer format: int32 nullable: true bathrooms: type: integer format: int32 nullable: true garage: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garage' parking: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Parking' garden: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garden' doubleGlazing: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Glazing' centralHeating: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Heating' tenure: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Tenure' lease: type: integer format: int32 nullable: true propertyToLet: type: boolean isPbEmployee: type: boolean isDiy: type: boolean latitude: type: number format: double nullable: true longitude: type: number format: double nullable: true locationGroupId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.InputModels.PropertyDetailsWithTenancyInfoInputModel: type: object properties: propertyDetails: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.PropertyDetails' tenancyData: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.TenancyDataInputModel' additionalProperties: false Purplebricks.Property.Business.InputModels.PropertyMediaData: type: object properties: propertyId: type: integer format: int32 imageUrls: type: array items: type: string nullable: true floorPlanUrl: type: string nullable: true matterportUrl: type: string nullable: true epcUrl: type: string nullable: true elevatedImageUrls: type: array items: type: string nullable: true showcaseUrls: type: array items: type: string nullable: true droneImageUrls: type: array items: type: string nullable: true portalVideoUrls: type: array items: type: string nullable: true virtualTourUrl: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.PropertyTrackedInput: type: object properties: propertyId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.InputModels.RentalPriceInputModel: type: object properties: propertyId: type: integer format: int32 rent: type: number format: double priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' additionalProperties: false Purplebricks.Property.Business.InputModels.SaveImageDetailsRequest: type: object properties: images: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.InputModels.ImageDetails' nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.SellingPriceInputModel: type: object properties: propertyId: type: integer format: int32 price: type: number format: double nullable: true priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' additionalProperties: false Purplebricks.Property.Business.InputModels.TaxBandCreationRequest: type: object properties: taxBand: type: string nullable: true exemptReason: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.InputModels.TenancyDataInputModel: type: object properties: propertyId: type: integer format: int32 lettingTerms: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LettingTerms' availableFrom: type: string nullable: true depositRequired: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Deposit' additionalDeposit: type: integer format: int32 furnished: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Furnished' studentLet: type: boolean shared: type: boolean taxBand: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.TaxBand' dhsPermitted: type: boolean petsPermitted: type: boolean smokersPermitted: type: boolean dhsBlocked: type: boolean petsBlocked: type: boolean smokersBlocked: type: boolean rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' serviceLevel: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LettingServiceLevel' additionalProperties: false Purplebricks.Property.Business.ViewModels.ActivePropertyViewModel: type: object properties: id: type: integer format: int32 listingId: type: string nullable: true userId: type: integer format: int32 address: type: string nullable: true published: type: string format: date-time nullable: true price: type: number format: double nullable: true priceText: type: string nullable: true minPrice: type: number format: double nullable: true maxPrice: type: number format: double nullable: true rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' images: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ImageViewModel' nullable: true toLet: type: boolean hasOtherProperties: type: boolean priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' closingDate: type: string format: date-time nullable: true valuationPrice: type: number format: double nullable: true hasMarketingReport: type: boolean hasBoardOrdered: type: boolean isScottishSaleProperty: type: boolean instructedDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel: type: object properties: propertyId: type: integer format: int32 numOfItems: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyModel: type: object properties: propertyId: type: integer format: int32 address: type: string nullable: true appointmentDate: type: string format: date-time nullable: true isLive: type: boolean lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' imageUrl: type: string nullable: true propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' additionalProperties: false Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardTotalsModel: type: object properties: diaryNotification: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel' nullable: true viewingNotification: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel' nullable: true offersNotification: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel' nullable: true messagesNotification: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel' nullable: true feedbackNotification: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ActivityDashboard.ActivityDashboardPropertyCountModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.AdditionalUserAddressViewModel: type: object properties: line1: type: string nullable: true line2: type: string nullable: true town: type: string nullable: true postcode: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.AdditionalUserDetailsViewModel: type: object properties: userId: type: integer format: int32 email: type: string nullable: true forename: type: string nullable: true surname: type: string nullable: true dateOfBirth: type: string format: date-time nullable: true title: type: string nullable: true phone: type: string nullable: true address: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AdditionalUserAddressViewModel' additionalProperties: false Purplebricks.Property.Business.ViewModels.AverageFeedbackStatistics: type: object properties: count: type: integer format: int32 presentation: type: integer format: int32 suitability: type: integer format: int32 price: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.BaseRateInfo: type: object properties: rate: type: number format: double effectiveDate: type: string format: date-time additionalProperties: false Purplebricks.Property.Business.ViewModels.Bland.BlandProperty: type: object properties: propertyId: type: integer format: int32 listingId: type: string nullable: true price: type: number format: double publishDate: type: string format: date-time nullable: true propertyDescription: type: string nullable: true propertyKeyFeatures: type: array items: type: string nullable: true postcode: type: string nullable: true line1: type: string nullable: true line2: type: string nullable: true unitNumber: type: string nullable: true state: type: string nullable: true town: type: string nullable: true county: type: string nullable: true country: type: string nullable: true address: type: string nullable: true propertyType: type: integer format: int32 nullable: true propertyTypeName: type: string nullable: true propertyStyle: type: integer format: int32 nullable: true propertyStyleName: type: string nullable: true bedrooms: type: integer format: int32 bathrooms: type: integer format: int32 toilets: type: integer format: int32 nullable: true receptions: type: integer format: int32 tenure: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Tenure' lease: type: integer format: int32 nullable: true councilTaxBand: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.TaxBand' parking: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Parking' garage: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garage' doubleGlazing: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Glazing' garden: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garden' centralHeating: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Heating' occupied: type: boolean nullable: true toLet: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.Bland.BlandPropertyViewModel: type: object properties: property: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Bland.BlandProperty' additionalProperties: false Purplebricks.Property.Business.ViewModels.BlockedViewing: type: object properties: userId: type: integer format: int32 name: type: string nullable: true email: type: string nullable: true attemptDate: type: string format: date-time blockedForPets: type: boolean blockedForSmoker: type: boolean blockedForDhs: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.BuyerData: type: object properties: moveTimeframe: type: string nullable: true timeOnMarket: type: string nullable: true viewingPurpose: type: string nullable: true hasPortfolio: type: string nullable: true propertyToSell: type: string nullable: true saleProgression: type: string nullable: true mortgageRequired: type: string nullable: true mortgageStatus: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Countrywide.JobResultResponse: type: object properties: CWS_job_number: type: string nullable: true Success: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.CreatePropertyViewModel: type: object properties: propertyId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.Address: type: object properties: line1: type: string nullable: true line2: type: string nullable: true town: type: string nullable: true county: type: string nullable: true postcode: type: string nullable: true country: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.CreatioExpert: type: object properties: fullName: type: string nullable: true email: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.CreatioProperty: type: object properties: propertyId: type: integer format: int32 address: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.Address' status: type: string nullable: true isSales: type: boolean isLettings: type: boolean lpp: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioExpert' accountManager: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioExpert' negotiationExpert: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioExpert' salesProgressor: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioExpert' additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyNotesViewModel: type: object properties: propertyNotes: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.PropertyNote' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.CreatioPropertyViewModel: type: object properties: property: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioProperty' additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.CreatioUserPropertiesViewModel: type: object properties: total: type: integer format: int32 properties: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.CreatioProperty' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Creatio.PropertyNote: type: object properties: id: type: integer format: int32 noteType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.HistoryEventType' address: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Creatio.Address' subject: type: string nullable: true createdDate: type: string format: date-time note: type: string nullable: true isPinned: type: boolean creatorName: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.Dashboard.DashboardPropertyViewModel: type: object properties: id: type: integer format: int32 listingId: type: string nullable: true address: type: string nullable: true addressLine1: type: string nullable: true addressLine2: type: string nullable: true addressTown: type: string nullable: true addressCounty: type: string nullable: true addressCountry: type: string nullable: true addressPostcode: type: string nullable: true lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' marketPrice: type: number format: double bookAgentDate: type: string format: date-time nullable: true bookAgentDatePropertyLocalised: type: string format: date-time nullable: true scheduledPublishDate: type: string format: date-time nullable: true contractsExchangedDate: type: string format: date-time nullable: true publishDate: type: string format: date-time nullable: true lastActionDate: type: string format: date-time epcIsValid: type: boolean nullable: true appointmentId: type: integer format: int32 nullable: true toLet: type: boolean nullable: true regulatoryCertificateType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegulatoryCertificateType' primaryImageUrl: type: string nullable: true primaryImageThumbnailUrl: type: string nullable: true priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' acceptedOfferAmount: type: number format: double nullable: true tenancyStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OfferTenancyStatus' rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' regulatoryCertificateIsBeingValidated: type: boolean regionType: type: string nullable: true hasMarketingReport: type: boolean hasPendingPurplebricksDeferredPaymentTransfer: type: boolean hasAuctionDate: type: boolean hasContract: type: boolean isCompliant: type: boolean marketPriceFormatted: type: string nullable: true propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' isInstantInstruct: type: boolean minAdvertPrice: type: integer format: int32 maxAdvertPrice: type: integer format: int32 comingSoon: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.Dashboard.MyPropertiesViewModel: type: object properties: primiaryZone: type: string nullable: true isUserValidated: type: boolean properties: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Dashboard.DashboardPropertyViewModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.EstateType: type: object properties: _about: type: string nullable: true prefLabel: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LabelValue' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExpertContactViewModel: type: object properties: id: type: integer format: int32 name: type: string nullable: true phoneNumber: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExpertSidebarDetailsViewModel: type: object properties: forename: type: string nullable: true surname: type: string nullable: true imageUrl: type: string nullable: true phoneNumber: type: string nullable: true agentId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureAdvertDayData: type: object properties: date: type: string format: date-time searches: type: integer format: int32 views: type: integer format: int32 viewings: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureAiAction: type: object properties: title: type: string nullable: true timing: type: string nullable: true impact: type: string nullable: true detail: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureAiAnalysis: type: object properties: schemaVersion: type: integer format: int32 healthScore: type: integer format: int32 healthGrade: type: string nullable: true headline: type: string nullable: true narrative: type: string nullable: true sections: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureAiSections' insights: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureAiInsight' nullable: true actions: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureAiAction' nullable: true highlights: type: array items: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureAiInsight: type: object properties: title: type: string nullable: true tag: type: string nullable: true detail: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureAiSections: type: object properties: advertViews: type: string nullable: true buyerFunnel: type: string nullable: true viewingsFeedback: type: string nullable: true keyInsightsIntro: type: string nullable: true actionPlanIntro: type: string nullable: true highlightsIntro: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureBenchmarkData: type: object properties: postcodeDistrict: type: string nullable: true sampleSize: type: integer format: int32 avgDaysOnMarket: type: number format: double avgWeekOneViews: type: number format: double avgPropertySaves: type: number format: double avgViewingsPerWeek: type: number format: double avgOffersPerViewing: type: number format: double avgSearchAppearances: type: number format: double avgListingViews: type: number format: double additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureOfferData: type: object properties: received: type: integer format: int32 negotiating: type: integer format: int32 declined: type: integer format: int32 activeOffersCount: type: integer format: int32 offerList: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureOfferItem' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureOfferItem: type: object properties: amount: type: number format: double date: type: string format: date-time status: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposurePhaseInfo: type: object properties: title: type: string nullable: true description: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposurePortalStats: type: object properties: pbViewsAllTime: type: integer format: int32 pbViewsThisWeek: type: integer format: int32 rightmoveSearchHits: type: integer format: int32 rightmoveListingViews: type: integer format: int32 rightmoveEnquiries: type: integer format: int32 numberTracking: type: integer format: int32 notesOfInterest: type: integer format: int32 contractDownloads: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposurePreviousWeekSummary: type: object properties: weekNumber: type: integer format: int32 pbViewsThisWeek: type: integer format: int32 rightmoveSearchHits: type: integer format: int32 rightmoveListingViews: type: integer format: int32 attended: type: integer format: int32 offers: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureReportData: type: object properties: propertyId: type: integer format: int32 address: type: string nullable: true postcode: type: string nullable: true propertyType: type: string nullable: true isToLet: type: boolean listingPrice: type: number format: double priceText: type: string nullable: true imageUrl: type: string nullable: true publishDate: type: string format: date-time reportDate: type: string format: date-time weekNumber: type: integer format: int32 daysOnMarket: type: integer format: int32 triggerType: type: string nullable: true phase: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposurePhaseInfo' portalStats: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposurePortalStats' viewings: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureViewingData' offers: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureOfferData' advertTrend: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureAdvertDayData' nullable: true benchmarks: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureBenchmarkData' previousWeekSummary: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposurePreviousWeekSummary' additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureReportResponse: type: object properties: reportId: type: integer format: int32 propertyId: type: integer format: int32 weekNumber: type: integer format: int32 generatedAt: type: string format: date-time triggerType: type: string nullable: true healthScore: type: integer format: int32 nullable: true reportData: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportData' aiAnalysis: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureAiAnalysis' previousReport: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureReportData' primaryImageUrl: type: string nullable: true primaryImageThumbnailUrl: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureReportSummary: type: object properties: reportId: type: integer format: int32 weekNumber: type: integer format: int32 generatedAt: type: string format: date-time healthScore: type: integer format: int32 nullable: true pbViewsThisWeek: type: integer format: int32 attended: type: integer format: int32 offers: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureViewingData: type: object properties: attended: type: integer format: int32 upcoming: type: integer format: int32 cancelled: type: integer format: int32 awaitingFeedback: type: integer format: int32 totalFeedbackCount: type: integer format: int32 averageFeedbackPresentation: type: number format: double nullable: true averageFeedbackSuitability: type: number format: double nullable: true averageFeedbackPrice: type: number format: double nullable: true viewingList: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExposureViewingItem' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ExposureViewingItem: type: object properties: date: type: string format: date-time isAttended: type: boolean isConfirmed: type: boolean isCancelled: type: boolean feedbackPresentation: type: integer format: int32 nullable: true feedbackSuitability: type: integer format: int32 nullable: true feedbackPrice: type: integer format: int32 nullable: true feedbackComments: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.GoToMarketViewModel: type: object properties: hasCompletedComplianceQuestions: type: boolean hasSelectedBoard: type: boolean hasSelectedTaxBand: type: boolean complianceQuestionsProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' saleBoardProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' taxBandProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' photoUploadProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' epcProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' advertProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressAdvertViewModel' accessDetailsProgress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ProgressViewModel' additionalProperties: false Purplebricks.Property.Business.ViewModels.HomeOwnerAssociationViewModel: type: object properties: associationName: type: string nullable: true associationFee: type: number format: double nullable: true associationFeeFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AssociationFeeFrequency' homeOwnerAssociation: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.HousePriceInfo: type: object properties: localAuthority: type: string nullable: true averagePrice: type: number format: double yearOnYearChangePercent: type: number format: double period: type: string format: date-time additionalProperties: false Purplebricks.Property.Business.ViewModels.ImageUploadItem: type: object properties: fileName: type: string nullable: true uploadUrl: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ImageUploadViewModel: type: object properties: images: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ImageUploadItem' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ImageViewModel: type: object properties: id: type: integer format: int32 url: type: string nullable: true thumbnailUrl: type: string nullable: true title: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.InactivePropertyViewModel: type: object properties: id: type: integer format: int32 address: type: string nullable: true imageUrl: type: string nullable: true lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' publishDate: type: string format: date-time nullable: true scheduledPublishDate: type: string format: date-time nullable: true withdrawDate: type: string format: date-time nullable: true latestMarketingBreakDate: type: string format: date-time nullable: true toLet: type: boolean price: type: string nullable: true rentFrequency: type: string nullable: true hasDeferredPayment: type: boolean deferredPaymentMethod: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PaymentMethod' withdrawReason: type: string nullable: true closingDate: type: string format: date-time nullable: true hasActivePurplebricksPlus: type: boolean methodOfSale: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.MethodOfSale' hasBoardOrdered: type: boolean isFromImpersonator: type: boolean listingId: type: string nullable: true isScottishSaleProperty: type: boolean regulatoryCertificateIsOrdered: type: boolean homeReportExpiryDate: type: string format: date-time readOnly: true isRelistRequestEnabled: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.InstantInstructPropertyViewModel: type: object properties: propertyId: type: integer format: int32 hideNavigation: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalAdvertDayViewModel: type: object properties: date: $ref: '#/components/schemas/System.DateOnly' searches: type: integer format: int32 views: type: integer format: int32 viewings: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalAdvertPerformanceViewModel: type: object properties: rightmoveSearchHits: type: integer format: int32 rightmoveListingViews: type: integer format: int32 rightmoveEnquiries: type: integer format: int32 dailyTrend: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalAdvertDayViewModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalOfferItemViewModel: type: object properties: amount: type: number format: double date: type: string format: date-time status: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalOffersViewModel: type: object properties: received: type: integer format: int32 negotiating: type: integer format: int32 declined: type: integer format: int32 activeOffersCount: type: integer format: int32 offerList: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalOfferItemViewModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalPropertyReportViewModel: type: object properties: propertyId: type: integer format: int32 address: type: string nullable: true postcode: type: string nullable: true propertyType: type: string nullable: true isToLet: type: boolean listingPrice: type: number format: double priceText: type: string nullable: true imageUrl: type: string nullable: true publishDate: type: string format: date-time daysOnMarket: type: integer format: int32 pbViewsAllTime: type: integer format: int32 pbViewsThisWeek: type: integer format: int32 numberTracking: type: integer format: int32 notesOfInterest: type: integer format: int32 contractDownloads: type: integer format: int32 negotiatingOffersCount: type: integer format: int32 viewings: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalViewingsViewModel' offers: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalOffersViewModel' additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalViewingItemViewModel: type: object properties: date: type: string format: date-time isAttended: type: boolean isConfirmed: type: boolean isCancelled: type: boolean feedbackPresentation: type: integer format: int32 nullable: true feedbackSuitability: type: integer format: int32 nullable: true feedbackPrice: type: integer format: int32 nullable: true feedbackComments: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.InternalViewingsViewModel: type: object properties: attended: type: integer format: int32 upcoming: type: integer format: int32 cancelled: type: integer format: int32 awaitingFeedback: type: integer format: int32 averageFeedbackPresentation: type: number format: double nullable: true averageFeedbackSuitability: type: number format: double nullable: true averageFeedbackPrice: type: number format: double nullable: true viewingList: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.InternalViewingItemViewModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.LabelValue: type: object properties: _value: type: string nullable: true _lang: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.LandRegistryResponse: type: object properties: format: type: string nullable: true version: type: string nullable: true result: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LandRegistryResult' additionalProperties: false Purplebricks.Property.Business.ViewModels.LandRegistryResult: type: object properties: _about: type: string nullable: true items: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.TransactionItem' nullable: true itemsPerPage: type: integer format: int32 page: type: integer format: int32 next: type: string nullable: true startIndex: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.LocationGroupSalesAddOnAvailabilityViewModel: type: object properties: canSelectPurplebricksPlus: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.MarketData: type: object properties: district: type: string nullable: true baseRate: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.BaseRateInfo' housePrice: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.HousePriceInfo' news: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.MarketNewsItem' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.MarketNewsItem: type: object properties: title: type: string nullable: true link: type: string nullable: true published: type: string format: date-time nullable: true source: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.NotesOfInterest: type: object properties: name: type: string nullable: true phoneNumber: type: string nullable: true email: type: string nullable: true userId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.Offer: type: object properties: date: type: string format: date-time nullable: true name: type: string nullable: true email: type: string nullable: true userId: type: integer format: int32 nullable: true price: type: number format: double status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OfferStatus' additionalProperties: false Purplebricks.Property.Business.ViewModels.OwnerIdCheckViewModel: type: object properties: id: type: integer format: int32 type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdUploadType' state: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdStatus' active: type: boolean nullable: true fileType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdUploadFileType' fileName: maxLength: 100 type: string nullable: true downloadFileName: maxLength: 256 type: string nullable: true createdDate: type: string format: date-time complianceDocumentType: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.OwnersViewModel: type: object properties: propertyId: type: integer format: int32 user: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnerViewModel' additionalOwners: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnerViewModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.OwnerViewModel: required: - forename - surname type: object properties: id: type: integer format: int32 nullable: true title: maxLength: 50 type: string nullable: true forename: maxLength: 50 type: string middlename: maxLength: 50 type: string nullable: true surname: maxLength: 50 type: string number: maxLength: 200 type: string nullable: true street: maxLength: 200 type: string nullable: true town: maxLength: 200 type: string nullable: true county: maxLength: 200 type: string nullable: true postcode: maxLength: 10 type: string nullable: true dob: type: string format: date-time nullable: true email: maxLength: 254 type: string format: email nullable: true contactNumber: maxLength: 20 type: string nullable: true isPbEmployee: type: boolean idChecks: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.OwnerIdCheckViewModel' nullable: true sellerOwnership: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.SellerOwnership' sellerOwnershipText: type: string nullable: true metInPerson: type: boolean nullable: true isLandlord: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertModel: type: object properties: date: type: string format: date-time searches: type: integer format: int32 views: type: integer format: int32 viewings: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult: type: object properties: earlierDataAvailable: type: boolean laterDataAvailable: type: boolean dates: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertModel' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PerformanceReportResult: type: object properties: propertyDetails: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Property' daysOnMarket: type: integer format: int32 numberTracking: type: integer format: int32 numberOfNotesOfInterest: type: integer format: int32 upcomingViewingsCount: type: integer format: int32 attendedViewingsCount: type: integer format: int32 upcomingOrAttendedViewingsCount: type: integer format: int32 viewingsAwaitingConfirmationCount: type: integer format: int32 viewingsCancelledCount: type: integer format: int32 unattendedViewingsCount: type: integer format: int32 unconfirmedViewingsCancelledCount: type: integer format: int32 offersReceivedCount: type: integer format: int32 newOffersCount: type: integer format: int32 negotiatingOffersCount: type: integer format: int32 declinedOffersCount: type: integer format: int32 activeOffersCount: type: integer format: int32 timesViewed: type: integer format: int32 timesViewedLastSeven: type: integer format: int32 contractDownloadsCount: type: integer format: int32 awaitingFeedbackCount: type: integer format: int32 averageFeedback: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AverageFeedbackStatistics' offers: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Offer' nullable: true viewings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true blockedViewings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.BlockedViewing' nullable: true rightmovePerformance: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RightmoveAdvertPerformance' notesOfInterestDetails: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.NotesOfInterest' nullable: true upcomingOrAttendedViewings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true viewingsAwaitingConfirmation: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true viewingsCancelled: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true unconfirmedViewingsCancelled: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true unattendedViewings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' nullable: true propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' additionalProperties: false Purplebricks.Property.Business.ViewModels.PreactiveDiyViewModel: type: object properties: titleDeedValidated: type: boolean idValidated: type: boolean advertPhotosValidated: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.PreactiveViewModel: type: object properties: id: type: integer format: int32 expert: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ExpertSidebarDetailsViewModel' address: type: string nullable: true valuationId: type: integer format: int32 nullable: true hasValuation: type: boolean initialBoardOrdered: type: boolean bookExpertDate: type: string format: date-time nullable: true bookingId: type: integer format: int32 nullable: true bookingIsConfirmed: type: boolean instructDate: type: string format: date-time nullable: true publishDate: type: string format: date-time nullable: true scheduledMarketingDate: type: string format: date-time nullable: true lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' toLet: type: boolean shoppingCart: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ShoppingCartViewModel' propertiesCount: type: integer format: int32 approveListingCurrentStep: type: integer format: int32 isDiy: type: boolean diyViewModel: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PreactiveDiyViewModel' regulatoryCertificateType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegulatoryCertificateType' regulatoryCertificateIsOrdered: type: boolean regulatoryCertificateIsBeingValidated: type: boolean isSalesContractAvailable: type: boolean pageToDisplay: type: string nullable: true propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' isInstantInstruct: type: boolean comingSoon: type: boolean isDeferred: type: boolean marketingFee: type: number format: double paymentMethod: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PaymentMethod' paymentDateTime: type: string format: date-time nullable: true hasOwnershipStatus: type: boolean paymentSwitchAvailable: type: boolean isScottishSaleProperty: type: boolean homeReportExpiryDate: type: string format: date-time nullable: true freePackageOrdered: type: boolean orderedBcProductIds: type: array items: type: integer format: int32 nullable: true instantValuationConfidenceLevel: type: string nullable: true eventType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.EventType' customerCanUploadPhotos: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.ProgressAdvertViewModel: type: object properties: requirement: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RequirementStatus' isCompleted: type: boolean canReview: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.ProgressViewModel: type: object properties: requirement: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RequirementStatus' isCompleted: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.Property: type: object properties: address: type: string nullable: true isRegionScotland: type: boolean toLet: type: boolean publishDate: type: string format: date-time nullable: true marketDate: type: string format: date-time nullable: true imageUrl: type: string nullable: true marketPrice: type: number format: double nullable: true minAdvertPrice: type: integer format: int32 nullable: true maxAdvertPrice: type: integer format: int32 nullable: true priceText: type: string nullable: true lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' isAuction: type: boolean postcode: type: string nullable: true propertyTypeName: type: string nullable: true latitude: type: number format: double nullable: true longitude: type: number format: double nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyAddress: type: object properties: _about: type: string nullable: true paon: type: string nullable: true saon: 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 additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyBoxDeepLinkViewModel: type: object properties: propertyBoxDeepLink: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyBoxOrderStatusViewModel: type: object properties: status: type: string nullable: true changeDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyDetailsViewModel: type: object properties: id: type: integer format: int32 listingId: type: string nullable: true postcode: type: string nullable: true line1: type: string nullable: true line2: type: string nullable: true unitNumber: type: string nullable: true state: type: string nullable: true town: type: string nullable: true county: type: string nullable: true country: type: string nullable: true propertyType: type: integer format: int32 nullable: true propertyTypeName: type: string nullable: true propertyStyle: type: integer format: int32 nullable: true propertyStyleName: type: string nullable: true bedrooms: type: integer format: int32 bathrooms: type: integer format: int32 receptions: type: integer format: int32 toilets: type: integer format: int32 nullable: true ensuites: type: integer format: int32 nullable: true parking: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Parking' garage: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garage' doubleGlazing: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Glazing' garden: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garden' centralHeating: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Heating' tenure: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Tenure' rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' occupied: type: boolean nullable: true lease: type: integer format: int32 nullable: true marketPrice: type: number format: double valuation: type: number format: double nullable: true agentId: type: integer format: int32 toLet: type: boolean address: type: string nullable: true updatedDate: type: string nullable: true isPbEmployee: type: boolean reviewAdvertStep: type: integer format: int32 activeOffersCount: type: integer format: int32 lastActionCompleted: type: string nullable: true lastActionCompletedId: type: integer format: int32 cbCreditReferenceId: type: string nullable: true cbStatus: type: string nullable: true cbStatusDate: type: string nullable: true priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' orderAmount: type: number format: double instructionSource: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.InstructionSourceType' buildingAreaSquareMetres: type: number format: double nullable: true landAreaValue: type: number format: double nullable: true landAreaUnit: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LandAreaUnit' ruralCategory: type: string nullable: true latitude: type: number format: double nullable: true longitude: type: number format: double nullable: true hasAccompaniedViewings: type: boolean isLive: type: boolean propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' publishDate: type: string format: date-time nullable: true instructedDate: type: string format: date-time nullable: true newHome: type: boolean nullable: true newConstruction: type: boolean waterFrontProperty: type: boolean yearbuilt: type: integer format: int32 nullable: true homeOwnerAssociation: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.HomeOwnerAssociationViewModel' virtualTourURL: type: string nullable: true ownerId: type: integer format: int32 accompaniedViewingExpertId: type: integer format: int32 nullable: true addressId: type: integer format: int32 expertId: type: integer format: int32 accompaniedViewing: type: boolean isInstantInstruct: type: boolean primaryImageUrl: type: string nullable: true comingSoon: type: boolean daysOnMarket: type: integer format: int32 readOnly: true assistantId: type: integer format: int32 nullable: true regionType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegionType' strikePropertyReference: type: integer format: int32 nullable: true lppName: type: string nullable: true lppEmail: type: string nullable: true readOnly: true accountManagerName: type: string nullable: true accountManagerEmail: type: string nullable: true readOnly: true negotiationExpertName: type: string nullable: true negotiationExpertEmail: type: string nullable: true readOnly: true salesProgressorName: type: string nullable: true salesProgressorEmail: type: string nullable: true readOnly: true ppsReferenceId: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyExternalLinksViewModel: type: object properties: rightMoveAdvertUrl: type: string nullable: true zooplaAdvertUrl: type: string nullable: true onTheMarketAdvertUrl: type: string nullable: true purplebricksPropertyUrlPath: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.PropertyType: type: object properties: _about: type: string nullable: true prefLabel: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LabelValue' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.RailwayStationViewModel: type: object properties: title: type: string nullable: true postcode: type: string nullable: true longitude: type: number format: double nullable: true latitude: type: number format: double nullable: true distance: type: number format: double nullable: true distanceText: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ReportableProperty: type: object properties: propertyId: type: integer format: int32 ownerUserId: type: integer format: int32 ownerEmail: type: string nullable: true publishDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.RequirementStatus: enum: - Required - Optional - NotApplicable type: string Purplebricks.Property.Business.ViewModels.RightmoveAdvertPerformance: type: object properties: totalViews: type: integer format: int32 viewsInLast7Days: type: integer format: int32 totalSearchHits: type: integer format: int32 searchHitsInLast7Days: type: integer format: int32 totalEnquiries: type: integer format: int32 rightmoveEnquiries: type: integer format: int32 searchHitsAndViewsLastUpdatedDate: type: string format: date-time nullable: true enquiriesLastUpdatedDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.ShoppingCartItemViewModel: type: object properties: itemId: type: integer format: int32 shoppingCartId: type: integer format: int32 addOnId: type: integer format: int32 nullable: true description: type: string nullable: true value: type: number format: double quantity: type: integer format: int32 zeroValueText: type: string nullable: true type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AddOnType' isVatExcluded: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.ShoppingCartViewModel: type: object properties: id: type: integer format: int32 vatRate: type: number format: double vatTotal: type: number format: double total: type: number format: double voucherDiscount: type: number format: double itemCount: type: integer format: int32 items: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ShoppingCartItemViewModel' nullable: true voucher: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.ShoppingCartVoucherViewModel' payAtSettlementTotal: type: number format: double payNowTotal: type: number format: double isInstruction: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.ShoppingCartVoucherViewModel: type: object properties: id: type: integer format: int32 shoppingCartId: type: integer format: int32 voucherId: type: integer format: int32 amount: type: number format: double code: type: string nullable: true voucherType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.VoucherType' addOnIds: type: array items: type: integer format: int32 nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.TenantData: type: object properties: lettingTerms: type: string nullable: true employmentStatus: type: string nullable: true poorCreditHistory: type: string nullable: true havePets: type: string nullable: true otherPets: type: string nullable: true isSmoker: type: string nullable: true moveTimeframe: type: string nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.TransactionCategory: type: object properties: _about: type: string nullable: true prefLabel: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.LabelValue' nullable: true additionalProperties: false Purplebricks.Property.Business.ViewModels.TransactionItem: type: object properties: _about: type: string nullable: true transactionId: type: string nullable: true pricePaid: type: number format: double transactionDate: type: string nullable: true propertyAddress: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyAddress' propertyType: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PropertyType' estateType: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.EstateType' newBuild: type: boolean transactionCategory: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.TransactionCategory' additionalProperties: false Purplebricks.Property.Business.ViewModels.Viewing: type: object properties: appointmentReference: type: string format: uuid nullable: true dateBooked: type: string format: date-time dateViewed: type: string format: date-time viewerName: type: string nullable: true email: type: string nullable: true viewerId: type: integer format: int32 nullable: true primaryContactNumber: type: string nullable: true isCancelled: type: boolean isRearranged: type: boolean isConfirmed: type: boolean isAttended: type: boolean nullable: true buyerAdditionalData: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.BuyerData' tenantAdditionalData: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.TenantData' whoNeedsToConfirm: type: string nullable: true bookingId: type: integer format: int32 rearrangedBookingId: type: integer format: int32 nullable: true feedbackPresentation: type: integer format: int32 nullable: true feedbackSuitability: type: integer format: int32 nullable: true feedbackPrice: type: integer format: int32 nullable: true additionalProperties: false Purplebricks.Property.Contract.Enums.Garage: enum: - OneCar - TwoOrMoreCars - None type: string Purplebricks.Property.Contract.Enums.Garden: enum: - None - Garden - PrivateGarden type: string Purplebricks.Property.Contract.Enums.Glazing: enum: - Full - Part - None type: string Purplebricks.Property.Contract.Enums.Heating: enum: - None - AirConditioning - Central - Electric - GasCentral - Oil - Solar - UnderFloor type: string Purplebricks.Property.Contract.Enums.Parking: enum: - None - Allocated - Communal - Covered - Driveway - Gated - OffStreet - OnStreet type: string Purplebricks.Property.Contract.Enums.Tenure: enum: - Freehold - Leasehold - ShareOfFreehold - SharedOwnership type: string Purplebricks.Property.Contract.PropertyDetails: type: object properties: id: type: integer format: int32 userId: type: integer format: int32 expertId: type: integer format: int32 line1: maxLength: 200 type: string nullable: true line2: maxLength: 200 type: string nullable: true unitNumber: maxLength: 50 type: string nullable: true town: maxLength: 200 type: string nullable: true county: maxLength: 200 type: string nullable: true state: maxLength: 50 type: string nullable: true postcode: maxLength: 10 type: string nullable: true country: maxLength: 200 type: string nullable: true bedrooms: type: integer format: int32 nullable: true receptions: type: integer format: int32 nullable: true bathrooms: type: integer format: int32 nullable: true garage: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Garage' parking: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Parking' garden: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Garden' doubleGlazing: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Glazing' centralHeating: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Heating' tenure: $ref: '#/components/schemas/Purplebricks.Property.Contract.Enums.Tenure' lease: type: integer format: int32 nullable: true propertyToLet: type: boolean isPbEmployee: type: boolean isDiy: type: boolean latitude: type: number format: double nullable: true longitude: type: number format: double nullable: true locationGroupId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Contract.RelistPropertyRequest: required: - propertyId - userId type: object properties: propertyId: type: integer format: int32 userId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Entities.AdditionalOwner: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 title: type: string nullable: true forename: type: string nullable: true middlename: type: string nullable: true surname: type: string nullable: true addressId: type: integer format: int32 address: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' dateOfBirth: type: string format: date-time email: type: string nullable: true phone: type: string nullable: true idChecks: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.IdCheck' nullable: true metInPerson: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.AddOn: type: object properties: id: type: integer format: int32 description: type: string nullable: true type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AddOnType' zone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.UserType' active: type: boolean addOnPrices: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AddOnPrice' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.AddOnPrice: type: object properties: id: type: integer format: int32 addOnId: type: integer format: int32 addOn: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AddOn' serviceCharge: type: number format: double zeroValueText: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.Address: type: object properties: id: type: integer format: int32 addressType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AddressType' line1: type: string nullable: true line2: type: string nullable: true district: type: string nullable: true town: type: string nullable: true county: type: string nullable: true postcode: type: string nullable: true country: type: string nullable: true user: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PurpleBricksUser' userId: type: integer format: int32 nullable: true latitude: type: number format: double nullable: true longitude: type: number format: double nullable: true addressText: type: string nullable: true unitNumber: maxLength: 15 minLength: 0 type: string nullable: true state: maxLength: 5 minLength: 0 type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.BlockedViewing: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 userId: type: integer format: int32 attemptMade: type: string format: date-time blockedForSmoker: type: boolean blockedForPets: type: boolean blockedForDhs: type: boolean propertyTenancy: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyTenancy' customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' additionalProperties: false Purplebricks.Property.Domain.Entities.BookingDiary: type: object properties: id: type: integer format: int32 start: type: string format: date-time isToConfirm: type: boolean propertyId: type: integer format: int32 nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' isByCancelled: type: boolean isToCancelled: type: boolean rearrangedById: type: integer format: int32 nullable: true eventType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.EventType' feedback: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Feedback' attended: type: boolean nullable: true comments: type: string nullable: true appointmentReference: type: string format: uuid nullable: true createdDate: type: string format: date-time rearrangedBookingId: type: integer format: int32 nullable: true userTo: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PurpleBricksUser' userBy: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PurpleBricksUser' userIdBy: type: integer format: int32 userIdTo: type: integer format: int32 bookingProcess: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.BookingProcess' additionalProperties: false Purplebricks.Property.Domain.Entities.BuyerAdditionalData: type: object properties: id: type: integer format: int32 buyerId: type: integer format: int32 propertyId: type: integer format: int32 moveTimeframe: type: string format: date-time nullable: true timeOnMarket: type: string format: date-time nullable: true propertyToSell: type: boolean nullable: true saleProgression: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.SaleProgressOption' mortgageRequired: type: boolean nullable: true mortgageStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.MortgageAgreementStatus' viewingPurpose: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.ViewingPurpose' hasPropertyPortfolio: type: boolean nullable: true buyer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' isInChain: type: boolean nullable: true chainTimeFrameAgreed: type: boolean nullable: true cashSource: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.CashSource' isPbConnected: type: boolean nullable: true investmentConsented: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.Customer: type: object properties: userId: type: integer format: int32 surname: type: string nullable: true forename: type: string nullable: true publicUserId: type: string format: uuid title: maxLength: 10 minLength: 0 type: string nullable: true email: type: string nullable: true fullName: type: string nullable: true active: type: boolean password: type: string nullable: true registrationComplete: type: boolean emailConfirmationToken: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.EmailConfirmationToken' userDiscriminator: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.UserDiscriminator' dateOfBirth: type: string format: date-time nullable: true eventsForMe: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true createdEvents: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true phone: type: string nullable: true appointmentsMadeBy: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true appointmentsMadeWith: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true addresses: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' nullable: true middlename: maxLength: 50 minLength: 0 type: string nullable: true properties: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' nullable: true primaryZone: type: string nullable: true buyerAdditionalData: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BuyerAdditionalData' nullable: true tenantAdditionalData: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.TenantAdditionalData' nullable: true blockedViewings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BlockedViewing' nullable: true propertiesTracked: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyTrack' nullable: true additionalData: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.CustomerAdditionalData' additionalProperties: false Purplebricks.Property.Domain.Entities.CustomerAdditionalData: type: object properties: customerId: type: integer format: int32 customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' propertyToSell: type: boolean nullable: true propertyToLet: type: boolean nullable: true sellStatusUpdatedByUserId: type: integer format: int32 sellStatusUpdatedOn: type: string format: date-time letStatusUpdatedByUserId: type: integer format: int32 letStatusUpdatedOn: type: string format: date-time metInPerson: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.EmailConfirmationToken: type: object properties: id: type: integer format: int32 value: type: string nullable: true user: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.User' additionalProperties: false Purplebricks.Property.Domain.Entities.Feedback: type: object properties: id: type: integer format: int32 booking: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' userId: type: integer format: int32 user: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PurpleBricksUser' presentation: type: integer format: int32 nullable: true suitability: type: integer format: int32 nullable: true price: type: integer format: int32 nullable: true comments: type: string nullable: true declinedToLeaveFeedback: type: boolean isRead: type: boolean additionalProperties: false Purplebricks.Property.Domain.Entities.FloorPlan: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 title: type: string nullable: true url: type: string nullable: true approved: type: boolean nullable: true feedback: type: string nullable: true lastUpdated: type: string format: date-time property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' createdDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.HistoryEvent: type: object properties: id: type: integer format: int32 eventType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.HistoryEventType' createUserId: type: integer format: int32 nullable: true createPublicUserId: type: string format: uuid nullable: true userId: type: integer format: int32 nullable: true publicUserId: type: string format: uuid nullable: true propertyId: type: integer format: int32 nullable: true listingId: maxLength: 10 type: string nullable: true when: type: string format: date-time action: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.HistoryEventAction' subject: type: string nullable: true body: type: string nullable: true linkLabel: type: string nullable: true linkLabel2: type: string nullable: true link: type: string nullable: true link2: type: string nullable: true isPinned: type: boolean property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' createdByUser: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.User' forUser: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.User' additionalProperties: false Purplebricks.Property.Domain.Entities.IdCheck: type: object properties: id: type: integer format: int32 type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdUploadType' state: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdStatus' active: type: boolean uploadFileType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IdUploadFileType' fileName: type: string nullable: true fileUrl: type: string nullable: true createdDate: type: string format: date-time propertyId: type: integer format: int32 nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalOwnerId: type: integer format: int32 nullable: true additionalOwner: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AdditionalOwner' additionalProperties: false Purplebricks.Property.Domain.Entities.ImageDetail: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 ordinal: type: integer format: int32 dateUploaded: type: string format: date-time category: type: string nullable: true title: type: string nullable: true fullSizeURL: type: string nullable: true largeSizeURL: type: string nullable: true mediumSizeURL: type: string nullable: true smallSizeURL: type: string nullable: true tinySizeURL: type: string nullable: true sourceUrl: type: string nullable: true backgroundColour: maxLength: 6 minLength: 0 type: string nullable: true status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.ImageStatus' additionalProperties: false Purplebricks.Property.Domain.Entities.LocalPropertyExpert: type: object properties: userId: type: integer format: int32 surname: type: string nullable: true forename: type: string nullable: true publicUserId: type: string format: uuid title: maxLength: 10 minLength: 0 type: string nullable: true email: type: string nullable: true fullName: type: string nullable: true active: type: boolean password: type: string nullable: true registrationComplete: type: boolean emailConfirmationToken: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.EmailConfirmationToken' userDiscriminator: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.UserDiscriminator' dateOfBirth: type: string format: date-time nullable: true eventsForMe: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true createdEvents: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true phone: type: string nullable: true appointmentsMadeBy: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true appointmentsMadeWith: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true addresses: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' nullable: true agentPhotoFilename: type: string nullable: true agentPhotoStandardRes: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.LocationGroup: type: object properties: id: type: integer format: int32 regionType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegionType' addOnPrices: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.LocationGroupAddOnPrice' nullable: true groupType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.ExpertType' name: type: string nullable: true expertId: type: integer format: int32 nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.LocationGroupAddOnPrice: type: object properties: id: type: integer format: int32 locationGroupId: type: integer format: int32 locationGroup: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.LocationGroup' addOnPrice: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AddOnPrice' additionalProperties: false Purplebricks.Property.Domain.Entities.MarketingPriceStatus: enum: - Unknown - InReview - Approved - Rejected type: string Purplebricks.Property.Domain.Entities.MarketPriceDetail: type: object properties: propertyId: type: integer format: int32 userMarketPrice: type: number format: double status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.MarketingPriceStatus' createdDateTimeUtc: type: string format: date-time modifiedDateTimeUtc: type: string format: date-time nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalProperties: false Purplebricks.Property.Domain.Entities.Offer: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 customerId: type: integer format: int32 nullable: true status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OfferStatus' date: type: string format: date-time amount: type: number format: double updatedDate: type: string format: date-time nullable: true offererLawyerId: type: integer format: int32 nullable: true offereeLawyerId: type: integer format: int32 nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' offererLawyerReference: type: string nullable: true offereeLawyerReference: type: string nullable: true offerTenancy: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.OfferTenancy' hasUnlockedEzieLawyer: type: boolean finalTerms: maxLength: 3000 type: string nullable: true canBuyerEnterLawyerDetails: type: boolean nullable: true expertNegotiating: type: boolean buyerAgentId: type: integer format: int32 nullable: true buyerAgentPublicId: type: string format: uuid nullable: true offerMadeById: type: integer format: int32 nullable: true sendBaNotificationsToLpe: type: boolean nullable: true offerBuyers: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.OfferBuyer' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.OfferBuyer: required: - fullName type: object properties: id: type: integer format: int32 offerId: type: integer format: int32 offer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Offer' userId: type: integer format: int32 nullable: true customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' fullName: maxLength: 100 minLength: 0 type: string email: maxLength: 100 minLength: 0 type: string nullable: true phone: maxLength: 20 minLength: 0 type: string nullable: true addressId: type: integer format: int32 nullable: true address: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' isMainBuyer: type: boolean additionalProperties: false Purplebricks.Property.Domain.Entities.OfferTenancy: type: object properties: offerId: type: integer format: int32 moveInDate: type: string format: date-time nullable: true status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OfferTenancyStatus' offer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Offer' deposit: type: integer format: int32 nullable: true term: type: integer format: int32 nullable: true breakClause: type: integer format: int32 nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.Order: type: object properties: id: type: integer format: int32 type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OrderType' orderLines: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.OrderLine' nullable: true addressId: type: integer format: int32 address: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' userId: type: integer format: int32 status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OrderStatus' createdDate: type: string format: date-time paymentAmount: type: number format: double payAtSettlementTotal: type: number format: double propertyId: type: integer format: int32 paymentTransactions: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PaymentTransaction' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.OrderLine: type: object properties: id: type: integer format: int32 addonId: type: integer format: int32 description: type: string nullable: true unitPrice: type: number format: double quantity: type: integer format: int32 active: type: boolean addOnReferenceId: type: string format: uuid nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PaymentTransaction: type: object properties: id: type: integer format: int32 paymentMethod: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PaymentMethod' paymentStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PaymentStatus' createdDate: type: string format: date-time additionalProperties: false Purplebricks.Property.Domain.Entities.PortalEnquiry: required: - name type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' enquiryDate: type: string format: date-time portal: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PortalType' name: maxLength: 200 minLength: 0 type: string phone: maxLength: 200 minLength: 0 type: string nullable: true hasPropertyText: maxLength: 200 minLength: 0 type: string nullable: true wouldLikeValuationText: maxLength: 200 minLength: 0 type: string nullable: true email: maxLength: 200 minLength: 0 type: string nullable: true address: type: string nullable: true comments: type: string nullable: true propertyToSell: type: boolean nullable: true saleProgression: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.SaleProgressOption' additionalProperties: false Purplebricks.Property.Domain.Entities.Property: type: object properties: id: type: integer format: int32 expertId: type: integer format: int32 expert: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.LocalPropertyExpert' userId: type: integer format: int32 customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' toLet: type: boolean propertyAttributes: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAttribute' nullable: true negotiationExpertId: type: integer format: int32 nullable: true accountManagerExpertId: type: integer format: int32 nullable: true salesProgressorExpertId: type: integer format: int32 nullable: true closingDate: type: string format: date-time nullable: true listingId: maxLength: 20 minLength: 0 type: string nullable: true contractsExchangedDate: type: string format: date-time nullable: true withdrawPropertyReason: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WithdrawPropertyReason' addressId: type: integer format: int32 nullable: true address: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' locationGroupId: type: integer format: int32 nullable: true locationGroup: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.LocationGroup' locationOwnerExpertId: type: integer format: int32 nullable: true lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' floorPlan: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.FloorPlan' regulatoryCertificate: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.RegulatoryCertificate' titleDeed: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyTitleDeed' propertyTenancy: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyTenancy' propertyMasterId: type: integer format: int32 nullable: true propertyMaster: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyMaster' imageDetails: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ImageDetail' nullable: true propertyActions: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAction' nullable: true idChecks: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.IdCheck' nullable: true additionalOwners: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AdditionalOwner' nullable: true hasAccompaniedViewing: type: boolean orders: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Order' nullable: true accompaniedViewingExpertId: type: integer format: int32 nullable: true accompaniedViewingExpert: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.LocalPropertyExpert' approveListingCurrentStep: type: integer format: int32 bedrooms: type: integer format: int32 nullable: true receptions: type: integer format: int32 nullable: true bathrooms: type: integer format: int32 nullable: true carSpaces: type: integer format: int32 nullable: true tenure: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Tenure' garden: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garden' parking: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Parking' garage: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Garage' doubleGlazing: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Glazing' centralHeating: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Heating' priceQualifier: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PriceQualifier' instructionSource: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.InstructionSourceType' isPbEmployee: type: boolean isDIY: type: boolean isInstantInstruct: type: boolean marketPrice: type: number format: double nullable: true createListingCurrentStep: type: integer format: int32 currentValuation: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Valuation' minSearchPrice: type: integer format: int32 nullable: true maxSearchPrice: type: integer format: int32 nullable: true minAdvertPrice: type: integer format: int32 nullable: true maxAdvertPrice: type: integer format: int32 nullable: true occupied: type: boolean nullable: true showSoldPriceOnListing: type: boolean createdDate: type: string format: date-time nullable: true priceText: type: string nullable: true type: type: integer format: int32 nullable: true style: type: integer format: int32 nullable: true isOpenDayAvailable: type: boolean hasDeferredPayment: type: boolean ownershipStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.SellerOwnership' scheduledMarketingDate: type: string format: date-time nullable: true publishDate: type: string format: date-time nullable: true auctionDate: type: string format: date-time nullable: true timeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' methodOfSale: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.MethodOfSale' comingSoon: type: boolean shoppingCarts: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ShoppingCart' nullable: true propertyBoardProvider: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyBoardProvider' bookings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true offers: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Offer' nullable: true propertyContract: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyContract' isCompliant: type: boolean propertyVieweds: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyViewed' nullable: true rightmoveAdvertPerformances: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.RightmoveAdvertPerformance' nullable: true portalEnquiries: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PortalEnquiry' nullable: true propertySpecifics: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertySpecifics' lease: type: integer format: int32 nullable: true reviewAdvertStep: type: integer format: int32 newHome: type: boolean nullable: true purplebricksPlus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PurplebricksPlus' addressDisplay: type: boolean nullable: true streetViewData: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.StreetViewData' domesticId: type: string nullable: true strikePropertyReference: type: integer format: int32 nullable: true propertyBoardAction: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyBoardAction' propertyCompliance: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyCompliance' listingHistory: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyListingHistory' nullable: true isRelistRequestEnabled: type: boolean default: true isArchived: type: boolean pbProtectApplicable: type: boolean nullable: true marketPriceDetail: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.MarketPriceDetail' tenureDetails: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyTenureDetails' isWithdrawRequested: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyAction: type: object properties: id: type: integer format: int32 action: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' actionDate: type: string format: date-time userId: type: integer format: int32 nullable: true impersonatorUserId: type: integer format: int32 nullable: true propertyId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyAttribute: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 title: type: string nullable: true isStarPoint: type: boolean description: type: string nullable: true expertProvidedDescription: type: string nullable: true ordinalPosition: type: integer format: int32 nullable: true approved: type: boolean nullable: true feedback: type: string nullable: true finalFeedback: type: string nullable: true isSuggested: type: boolean isComplete: type: boolean amendments: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAttributeDescriptionAmendment' nullable: true isRemovable: type: boolean default: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyAttributeDescriptionAmendment: type: object properties: id: type: integer format: int32 descriptionAmendment: maxLength: 4000 type: string nullable: true status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AmendmentStatus' propertyAttributeId: type: integer format: int32 propertyAttribute: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAttribute' createdDate: type: string format: date-time createdBy: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyBoardAction: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 boardProviderType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.BoardProviderType' jobType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.JobType' processStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.BoardProcessingStatus' externalPropertyReference: type: string nullable: true jobReference: type: string nullable: true expectedJobDate: type: string format: date-time nullable: true boardInstalled: type: string format: date-time nullable: true boardRemoved: type: string format: date-time nullable: true created: type: string format: date-time lastModified: type: string format: date-time nullable: true notes: type: string nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyBoardProvider: type: object properties: propertyId: type: integer format: int32 boardProvider: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.BoardProviderType' currentJobType: type: integer format: int32 nullable: true processStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.BoardProcessingStatus' externalPropertyReference: type: string nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyCompliance: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.ComplianceStatus' updatedByUserId: type: integer format: int32 updatedDateTime: type: string format: date-time property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyContract: type: object properties: propertyId: type: integer format: int32 fileName: type: string nullable: true uploadedFileName: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyListingHistory: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' datePublished: type: string format: date-time dateRemoved: type: string format: date-time nullable: true reasonRemoved: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PropertyListingRemovalReason' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyMaster: type: object properties: id: type: integer format: int32 address: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' propertyListings: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertySpecifics: type: object properties: propertyId: type: integer format: int32 buildingAreaSquareMetres: type: number format: double nullable: true landAreaValue: type: number format: double nullable: true landAreaUnit: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LandAreaUnit' ruralCategory: maxLength: 50 minLength: 0 type: string nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' toilets: type: integer format: int32 nullable: true ensuite: type: integer format: int32 nullable: true headline: maxLength: 250 minLength: 0 type: string nullable: true homeOwnerAssociation: type: boolean associationName: maxLength: 100 minLength: 0 type: string nullable: true associationFee: type: number format: double nullable: true associationFeeFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.AssociationFeeFrequency' yearBuilt: type: integer format: int32 nullable: true newConstruction: type: boolean waterFrontProperty: type: boolean virtualTourURL: maxLength: 200 minLength: 0 type: string nullable: true virtualTourCaption: maxLength: 20 minLength: 0 type: string nullable: true quarterBaths: type: integer format: int32 nullable: true threeQuarterBaths: type: integer format: int32 nullable: true halfBaths: type: integer format: int32 nullable: true garages: type: integer format: int32 nullable: true carPorts: type: integer format: int32 nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyTenancy: type: object properties: propertyId: type: integer format: int32 terms: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LettingTerms' availableFrom: type: string format: date-time nullable: true deposit: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Deposit' additionalDeposit: type: integer format: int32 furnished: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.Furnished' taxBand: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.TaxBand' dhsPermitted: type: boolean petsPermitted: type: boolean otherPets: type: string nullable: true smokersPermitted: type: boolean dhsBlocked: type: boolean nullable: true petsBlocked: type: boolean nullable: true smokersBlocked: type: boolean nullable: true rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' gasCertificateRequired: type: boolean gasCertificateExpiry: type: string format: date-time nullable: true rentReviewDate: type: string format: date-time nullable: true tenancyStartDate: type: string format: date-time nullable: true rentDueDay: type: integer format: int32 nullable: true studentLet: type: boolean shared: type: boolean lettingServiceLevel: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LettingServiceLevel' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyTenureDetails: type: object properties: propertyId: type: integer format: int32 taxBand: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.TaxBand' councilTaxRateAnnualAmount: type: number format: double nullable: true serviceChargeAnnualAmount: type: number format: double nullable: true serviceChargeReviewPeriodYears: type: integer format: int32 nullable: true groundRentAnnualAmount: type: number format: double nullable: true groundRentReviewPeriodYears: type: integer format: int32 nullable: true leaseEndDate: type: string format: date-time nullable: true sharedOwnershipPercentage: type: integer format: int32 nullable: true sharedOwnershipMonthlyPayment: type: number format: double nullable: true taxExemptReason: type: string nullable: true ownershipReviewStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OwnershipReviewStatus' ownershipReviewFeedback: type: string nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyTitleDeed: type: object properties: propertyId: type: integer format: int32 filename: type: string nullable: true uploadedFilename: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyTrack: type: object properties: id: type: integer format: int32 userId: type: integer format: int32 propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' dateTracked: type: string format: date-time customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' notificationOfInterest: type: boolean dateOfInterest: type: string format: date-time nullable: true emailAlertFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.EmailAlertFrequency' additionalProperties: false Purplebricks.Property.Domain.Entities.PropertyViewed: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' userId: type: integer format: int32 nullable: true dateViewed: type: string format: date-time customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' additionalProperties: false Purplebricks.Property.Domain.Entities.PurplebricksPlus: type: object properties: propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' createdDate: type: string format: date-time dateClaimed: type: string format: date-time nullable: true claimedByUserId: type: integer format: int32 nullable: true isActive: type: boolean additionalProperties: false Purplebricks.Property.Domain.Entities.PurpleBricksUser: type: object properties: userId: type: integer format: int32 surname: type: string nullable: true forename: type: string nullable: true publicUserId: type: string format: uuid title: maxLength: 10 minLength: 0 type: string nullable: true email: type: string nullable: true fullName: type: string nullable: true active: type: boolean password: type: string nullable: true registrationComplete: type: boolean emailConfirmationToken: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.EmailConfirmationToken' userDiscriminator: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.UserDiscriminator' dateOfBirth: type: string format: date-time nullable: true eventsForMe: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true createdEvents: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true phone: type: string nullable: true appointmentsMadeBy: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true appointmentsMadeWith: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.BookingDiary' nullable: true addresses: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Address' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.RegulatoryCertificate: type: object properties: propertyId: type: integer format: int32 filename: type: string nullable: true status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegulatoryCertificateStatus' uploadedFilename: type: string nullable: true type: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RegulatoryCertificateType' energyEfficiencyCurrentScore: type: integer format: int32 nullable: true energyEfficiencyPotentialScore: type: integer format: int32 nullable: true environmentalImpactCurrentScore: type: integer format: int32 nullable: true environmentalImpactPotentialScore: type: integer format: int32 nullable: true certificateDate: type: string format: date-time nullable: true rrn: type: string nullable: true copyUrl: type: string nullable: true automaticEPCHandling: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.RightmoveAdvertPerformance: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 dateViewed: type: string format: date-time summaryViews: type: integer format: int32 detailedViews: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Entities.ShoppingCart: type: object properties: id: type: integer format: int32 total: type: number format: double vatRate: type: number format: double vatTotal: type: number format: double voucherDiscount: type: number format: double propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' shoppingCartItems: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ShoppingCartItem' nullable: true shoppingCartVoucher: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ShoppingCartVoucher' userId: type: integer format: int32 customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' additionalProperties: false Purplebricks.Property.Domain.Entities.ShoppingCartItem: type: object properties: id: type: integer format: int32 quantity: type: integer format: int32 value: type: number format: double netValue: type: number format: double shoppingCartId: type: integer format: int32 shoppingCart: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ShoppingCart' addOnId: type: integer format: int32 nullable: true addOn: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.AddOn' title: type: string nullable: true isVatExcluded: type: boolean additionalProperties: false Purplebricks.Property.Domain.Entities.ShoppingCartVoucher: type: object properties: id: type: integer format: int32 voucherId: type: integer format: int32 amount: type: number format: double code: type: string nullable: true voucherType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.VoucherType' voucher: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Voucher' shoppingCartId: type: integer format: int32 shoppingCart: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.ShoppingCart' additionalProperties: false Purplebricks.Property.Domain.Entities.StreetViewData: required: - heading - hideStreetview - latitude - longitude - mapLatitude - mapLongitude - pitch - zoom type: object properties: propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' latitude: type: number format: double longitude: type: number format: double heading: type: number format: double pitch: type: number format: double zoom: type: number format: double mapLatitude: type: number format: double mapLongitude: type: number format: double hideStreetview: type: boolean additionalProperties: false Purplebricks.Property.Domain.Entities.TenantAdditionalData: type: object properties: id: type: integer format: int32 userId: type: integer format: int32 customer: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Customer' propertyId: type: integer format: int32 nullable: true property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' moveInDate: type: string format: date-time nullable: true terms: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.TenantTerms' lettingTerms: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.LettingTerms' employmentStatus: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.EmploymentStatus' poorCreditHistory: type: boolean nullable: true havePets: type: boolean nullable: true otherPets: type: string nullable: true isSmoker: type: boolean isPbConnected: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.User: type: object properties: userId: type: integer format: int32 surname: type: string nullable: true forename: type: string nullable: true publicUserId: type: string format: uuid title: maxLength: 10 minLength: 0 type: string nullable: true email: type: string nullable: true fullName: type: string nullable: true active: type: boolean password: type: string nullable: true registrationComplete: type: boolean emailConfirmationToken: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.EmailConfirmationToken' userDiscriminator: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.UserDiscriminator' dateOfBirth: type: string format: date-time nullable: true eventsForMe: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true createdEvents: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.HistoryEvent' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.Valuation: type: object properties: id: type: integer format: int32 propertyId: type: integer format: int32 property: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.Property' valuationDate: type: string format: date-time listPrice: type: number format: double additionalProperties: false Purplebricks.Property.Domain.Entities.Voucher: type: object properties: id: type: integer format: int32 forAddOns: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.VoucherAddOnType' nullable: true additionalProperties: false Purplebricks.Property.Domain.Entities.VoucherAddOnType: type: object properties: id: type: integer format: int32 voucherId: type: integer format: int32 addOnId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Enums.AddOnType: enum: - PropertyListing - InitialForSaleBoard - AccompaniedViewings - Epc - InitialForRentBoard - PremiumListing - NegotiationService - ProfessionalPhotos - VirtualTours - PropertyPresentation - PremiumSalesParticulars - DiyListing - AdditionalForSaleBoard - AdditionalForRentBoard - StandardReference - DetailedReference - Guarantor - TenancyAgreement - Inventory1To3Rooms - InventoryCheckIn - InventoryCheckInCheckOut - Inventory4PlusRooms - AdditionalStandardReference - StudentReference - HomeReport - PurplebricksPlusListing - Auction - AuctionPropertyListing - AccompaniedViewingsFree - DomainAuPriorityListing - RealEstateAuFeatureListing - RealEstateAuHighlightListing - DomainAuPremiumListing - DomainAuPremiumListing6Week - DomainAuPremiumListing3Week - DomainAuPriorityListing6Week - AuctionUpgrade - UnlockFixedLawyer - RightMoveFeaturedProperty - RightMoveFeaturedPremiumBundle - DomainAuPlatinumListing6Week - DomainAuPlatinumListing10Week - DomainAuPlatinumListing14Week - DomainAuPlatinumListing90Day - DomainAuPremiumListing90Day - DomainAuPremiumListing45Day - REAAuHighlightListing45 - REAAuPremiereListing45 - REAAuPremiereDiscountListing45 - ProfessionalFloorplan - PurplebricksPremierListing - PurplebricksFeaturedProperty - HoldingDeposit - HomeReportRefresh - AdvancedConveyancingServices - InitialMarketingFee - Interactive3DTour - MoneyBackGuarantee type: string Purplebricks.Property.Domain.Enums.AddressType: enum: - Home - Business - Company - Property - Order - Lead - BookValuationAttempt - Billing type: string Purplebricks.Property.Domain.Enums.AmendmentStatus: enum: - Approved - Rejected - Pending type: string Purplebricks.Property.Domain.Enums.AssociationFeeFrequency: enum: - Weekly - Monthly - Quarterly - Annually - Biannually type: string Purplebricks.Property.Domain.Enums.BoardProcessingStatus: enum: - Processing - Processed - Failed - AwaitingHomeReport - AwaitingPublish type: string Purplebricks.Property.Domain.Enums.BoardProviderType: enum: - Countrywide - AgencyExpress - BoardsOnline type: string Purplebricks.Property.Domain.Enums.BookingProcess: enum: - SellerBookValuation - BuyerBookViewing - CallCentreBookValuation - CallCentreBookViewing - SellerRearrange - BuyerRearrange - LpeRearrange - LpeBookViewing - BuyingAgentBookViewing type: string Purplebricks.Property.Domain.Enums.CashSource: enum: - Savings - Sale type: string Purplebricks.Property.Domain.Enums.ComplianceStatus: enum: - Passed - Failed - Reset - AwaitingCompliance - NotApplicable type: string Purplebricks.Property.Domain.Enums.CursorPaginationType: enum: - Previous - Next type: string Purplebricks.Property.Domain.Enums.Deposit: enum: - OneMonth - OneAndHalfMonths - TwoMonths type: string Purplebricks.Property.Domain.Enums.EmailAlertFrequency: enum: - None - Instant - Daily - Weekly type: string Purplebricks.Property.Domain.Enums.EmploymentStatus: enum: - Employed - SelfEmployed - Retired - Student - DSS - Unemployed type: string Purplebricks.Property.Domain.Enums.EventType: enum: - Valuation - Viewing - OpenDay - Busy - VirtualValuation type: string Purplebricks.Property.Domain.Enums.ExpertType: enum: - Selling - Letting - Buying type: string Purplebricks.Property.Domain.Enums.Furnished: enum: - Furnished - PartFurnished - Unfurnished type: string Purplebricks.Property.Domain.Enums.Garage: enum: - OneCar - TwoOrMoreCars - None type: string Purplebricks.Property.Domain.Enums.Garden: enum: - None - Garden - PrivateGarden type: string Purplebricks.Property.Domain.Enums.Glazing: enum: - Full - Part - None type: string Purplebricks.Property.Domain.Enums.Heating: enum: - None - AirConditioning - Central - Electric - GasCentral - Oil - Solar - UnderFloor type: string Purplebricks.Property.Domain.Enums.HistoryEventAction: enum: - None - Note - CallIn - CallOut - CallOutMarketingReport type: string Purplebricks.Property.Domain.Enums.HistoryEventType: enum: - AgentNote - AgentNoteCallIn - AgentNoteCallOut - CheckoutComplete - ClientCardAccess - ExtraAdded - ExtraExpired - ExtraRemoved - FailedLogIn - FeedbackDeclined - FeedbackRequested - FeedbackSubmitted - Instructed - LivePhotoUpdate - NewOfferSubmitted - OfferUpdate - PhotoDeleted - PriceChanged - StatusUpdate - UserLoggedIn - ValuationArranged - ValuationCancelled - ViewingArranged - ViewingCancelled - ViewingRequestCancelled - ViewingRequest - ExtraUpdated - HomeserveFeedAdded - HomeserveFeedDeleted - EnabledAccount - DisabledAccount - ViewingRearranged - ValuationRearranged - LockLawyer - UnlockLawyer - ArchiveProperty - UnarchiveProperty - PropertyTransferred - AccompaniedViewingExpertChanged - UserRegisteredByCpe - PropertyAuctionToPrivateTreaty - LpeDetailsModified - SalesDatesDetailsModified type: string Purplebricks.Property.Domain.Enums.IanaTimeZone: enum: - Not Set - Europe/London - Australia/Perth - Australia/Eucla - Australia/Adelaide - Australia/Broken_Hill - Australia/Darwin - Australia/Brisbane - Australia/Currie - Australia/Hobart - Australia/Lindeman - Australia/Melbourne - Australia/Sydney - Australia/Lord_Howe - Antarctica/Macquarie - America/Los_Angeles - America/New_York - America/Detroit - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Indiana/Indianapolis - America/Indiana/Vincennes - America/Indiana/Winamac - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Vevay - America/Chicago - America/Indiana/Tell_City - America/Indiana/Knox - America/Menominee - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/North_Dakota/Beulah - America/Boise - America/Phoenix - America/Anchorage - America/Juneau - America/Sitka - America/Yakutat - America/Nome - America/Adak - America/Metlakatla - Pacific/Honolulu - America/Denver - Pacific/Auckland type: string Purplebricks.Property.Domain.Enums.IdStatus: enum: - Pass - Fail - Refer type: string Purplebricks.Property.Domain.Enums.IdUploadFileType: enum: - AgentPdfCertificate - AgentPhotoId - AgentResidentialId - ComplianceDocument type: string Purplebricks.Property.Domain.Enums.IdUploadType: enum: - Manual - Online type: string Purplebricks.Property.Domain.Enums.ImageStatus: enum: - AwaitingApprovalActive - AwaitingApprovalInactive - ApprovedActive - ApprovedInactive type: string Purplebricks.Property.Domain.Enums.InstructionSourceType: enum: - Other - Radio - GoogleSearch - BoardAtProperty - FriendFamilyRecommendation - PressAdvert - Tv - OnlineBannerAdverts - UsedUsBefore - Leaflets type: string Purplebricks.Property.Domain.Enums.JobType: enum: - ErectForSale - ErectSSTC - ErectToLet - ChangeToSSTC - ChangeToSaleAgreed - ChangeBackToForSale - ChangeToLetBy - ChangeBackToLet - CollectBoard - Delete - ChangeToSold - InstallKeySafe - MiscellaneousTask - ErectForSaleBoardAndKeySafe - DeliverForSaleWindowBoard type: string Purplebricks.Property.Domain.Enums.LandAreaUnit: enum: - Squares - SquareMetres - SquareFeet - SquareYards - SquareMiles - SquareKm - Acres - Hectares type: string Purplebricks.Property.Domain.Enums.LettingServiceLevel: enum: - TenantFind - RentCollect - FullyManaged type: string Purplebricks.Property.Domain.Enums.LettingTerms: enum: - SixMonths - OneYearOrMore type: string Purplebricks.Property.Domain.Enums.MethodOfSale: enum: - Auction - PrivateTreaty type: string Purplebricks.Property.Domain.Enums.MortgageAgreementStatus: enum: - NotYetArranged - AgreedInPrinciple - PreQualified - PreApproved type: string Purplebricks.Property.Domain.Enums.OfferStatus: enum: - OfferMade - Acceptable - Declined - CounterOfferMade - WithdrawOffer - Aborted - OfferUpdated - WithdrawAcceptance - WithdrawCounterOffer - Accepted - ExpertNegotiating - ExpertNotNegotiating - RenegotiationOfferMade - RenegotiationCounterOfferMade - RenegotiationOfferWithdrawn - RenegotiationCounterOfferWithdrawn type: string Purplebricks.Property.Domain.Enums.OfferTenancyStatus: enum: - ConfirmGas - AgreeMoveInDate - TenantAgreeMoveInDate - LandlordAgreeMoveInDate - InitialReferencing - ReferencingOrdered - ReferencingApplicationPrepared - ReferencingInProgress - ReferencingGreen - ReferencingBlue - ReferencingRedDeclined - ReferencingRedDelayed - InitialGuarantor - GuarantorOrdered - GuarantorApplicationPrepared - GuarantorInProgress - GuarantorGreen - GuarantorRedDeclined - GuarantorRedDelayed - TenancyUpgrades - WaitingOnTenantsContribution - ConfirmTenancyAgreement - FinaliseTenancyAgreement - Complete type: string Purplebricks.Property.Domain.Enums.OrderStatus: enum: - New - PaymentComplete - Cancelled - Completed type: string Purplebricks.Property.Domain.Enums.OrderType: enum: - Instruct - RegulatoryCertificate - OrderBoard - Referencing - Guarantor type: string Purplebricks.Property.Domain.Enums.OwnershipReviewStatus: enum: - Unknown - InReview - Approved - Rejected type: string Purplebricks.Property.Domain.Enums.Parking: enum: - None - Allocated - Communal - Covered - Driveway - Gated - OffStreet - OnStreet type: string Purplebricks.Property.Domain.Enums.PaymentMethod: enum: - Card - Pay4Later - RateSetter - CommBankCard - RealexCard - PurplebricksDeferredPayment - Duologi - GlobalPayDeferredPayment - BraintreeCard - PayPal - PayPalCredit type: string Purplebricks.Property.Domain.Enums.PaymentStatus: enum: - New - ThreeDSecure - Success - Cancelled type: string Purplebricks.Property.Domain.Enums.PortalType: enum: - Rightmove - Zoopla - Globrix - PrimeLocation - PropertyPal - PropertyNews - S1Homes - Domain - RealEstate - TradeMe type: string Purplebricks.Property.Domain.Enums.PriceQualifier: enum: - Default - Poa - GuidePrice - FixedPrice - OffersInExcessOf - Oiro - SaleByTender - From - SharedOwnership - OffersOver - PartBuyPartRent - SharedEquity type: string Purplebricks.Property.Domain.Enums.PropertyListingRemovalReason: enum: - WithdrawNoLongerSelling - WithdrawNoLongerLetting - WithdrawMarketingBreak - WithdrawSoldSTC_OtherAgent - WithdrawSoldSTC_PrivateSale - WithdrawLetSTC_OtherAgent - WithdrawLetSTC_PrivateSale - SoldByUs - LetByUs type: string Purplebricks.Property.Domain.Enums.PropertyTrackType: enum: - Tracked - NoteOfInterest type: string Purplebricks.Property.Domain.Enums.RegionType: enum: - England - Scotland - Wales - NorthernIreland - Queensland - Victoria - NewSouthWales - WesternAustralia - SouthAustralia - California - NewYork - Connecticut - NewJersey - Pennsylvania - Arizona - Nevada - NewZealand - Florida type: string Purplebricks.Property.Domain.Enums.RegulatoryCertificateStatus: enum: - NotSet - Set - UrlOrRrnProvided - Ordered - Uploaded - Validated - Processed type: string Purplebricks.Property.Domain.Enums.RegulatoryCertificateType: enum: - Epc - Hmo - HomeReport type: string Purplebricks.Property.Domain.Enums.RentFrequency: enum: - Yearly - Quarterly - Monthly - Weekly - Daily type: string Purplebricks.Property.Domain.Enums.SaleProgressOption: enum: - NotOnTheMarket - OnTheMarket - SSTC - Pending type: string Purplebricks.Property.Domain.Enums.SellerOwnership: enum: - OwnerOccupier - Landlord - Inherited - Investor - HolidayHomeOwner - Executor - PowerOfAttorney - NonUKResident - Company - Trust - Partnership - Other - OverseasCompany type: string Purplebricks.Property.Domain.Enums.TaxBand: enum: - A - B - C - D - E - F - G - H - I - TBC - Exempt type: string Purplebricks.Property.Domain.Enums.TenantTerms: enum: - SixMonths - TwelveMonths - EighteenMonths - TwentyFourMonths type: string Purplebricks.Property.Domain.Enums.Tenure: enum: - Freehold - Leasehold - ShareOfFreehold - SharedOwnership - Commonhold type: string Purplebricks.Property.Domain.Enums.UserDiscriminator: enum: - Customer - Lpe - Cpe - BuyerAgent type: string Purplebricks.Property.Domain.Enums.UserType: enum: - Seller - Landlord - Buyer - Tenant - Admin - Service - CallCentre - BuyerAgent type: string Purplebricks.Property.Domain.Enums.ViewingPurpose: enum: - ToOccupy - DevelopmentOpportunity - BtlInvestment type: string Purplebricks.Property.Domain.Enums.VoucherType: enum: - Percent - Amount type: string Purplebricks.Property.Domain.Enums.WithdrawPropertyReason: enum: - NoLongerSelling - NoLongerLetting - MarketingBreak - SoldSTC_OtherAgent - SoldSTC_PrivateSale - LetSTC_OtherAgent - LetSTC_PrivateSale - SoldWithPurplebricks - LetWithPurplebricks type: string Purplebricks.Property.Domain.Enums.WorkflowStepType: enum: - Create - BookValuation - Valuation - Instruct - CreateAdvert - RejectAdvert - AmendAdvert - ApproveAdvert - SchedulePendingRegCert - Schedule - PublishPendingRegCert - Publish - Withdraw - Suspend - SuspendByUser - SuspendAccount - UnderOffer - SoldSubjectToContract - DiyAdvertStarted - LetSubjectToContract - DeclineOffer - UpdateProperty - AcceptableOffer - ApplicationReceived - AcceptableOfferNotMarketed - WithdrawOffer - UpdateAdvert - DiyAdvertCreated - DiyAdvertRejected - ApprovePhoto - ContractsExchanged - Completion - DiyAdvertAmended - DiyAdvertRejectAmendments - SchedulePendingContract - PublishPendingContract - UpdatePropertyDiary - ContractsExchangedCoolingOffPeriod - ForceSold - ForceSoldSubjectToContract - ForceContractsExchanged - ForceCompletion - SoldSubjectToEscrow - PendingEscrow - Closing - ForceAcceptableOffer - ForceAcceptableOfferNotMarketed - ForceContractsExchangedCoolingOffPeriod - InstantValuation - FakeValuation - Cancelled type: string Purplebricks.Property.Domain.Model.ExpertModel: type: object properties: expertId: type: integer format: int32 name: type: string nullable: true email: type: string nullable: true phone: type: string nullable: true agentPhotoUrl: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Model.HistoryEventModel: type: object properties: propertyId: type: integer format: int32 nullable: true eventId: type: integer format: int32 eventType: type: string nullable: true actionedUser: type: integer format: int32 nullable: true actionedUserName: type: string nullable: true eventDate: type: string format: date-time body: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Model.PropertyEnquiryModel: type: object properties: propertyEnquiryId: type: integer format: int32 propertyId: type: integer format: int32 portalType: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.PortalType' email: type: string nullable: true enquiryDate: type: string format: date-time name: type: string nullable: true phone: type: string nullable: true propertyToSell: type: boolean nullable: true additionalProperties: false Purplebricks.Property.Domain.Model.PropertyTrackModel: type: object properties: id: type: integer format: int32 fullName: type: string nullable: true trackingUserId: type: integer format: int32 dateTracked: type: string format: date-time notificationOfInterest: type: boolean additionalProperties: false Purplebricks.Property.Domain.Model.UserPropertyModel: type: object properties: propertyId: type: integer format: int32 address: type: string nullable: true lastActionCompleted: type: string nullable: true propertyActions: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Entities.PropertyAction' nullable: true lpe: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.ExpertModel' avLpe: $ref: '#/components/schemas/Purplebricks.Property.Domain.Model.ExpertModel' marketPrice: type: number format: double nullable: true listedDate: type: string format: date-time nullable: true saleOrLet: type: string nullable: true valuationDate: type: string format: date-time nullable: true scheduledMarketingDate: type: string format: date-time nullable: true additionalProperties: false Purplebricks.Property.Domain.Models.CancelRequestWithdrawProperty: type: object properties: propertyId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Models.PageInfoResponseModel: type: object properties: requestedPageSize: type: integer format: int32 totalItemCount: type: integer format: int32 hasNextPage: type: boolean hasPreviousPage: type: boolean additionalProperties: false Purplebricks.Property.Domain.Models.PropertyQuestionnaireFormModel: type: object properties: id: type: integer format: int32 fileUrl: type: string nullable: true propertyId: type: integer format: int32 uploadedBy: type: string nullable: true uploadedById: type: integer format: int32 uploaded: type: string format: date-time deletedBy: type: string nullable: true deletedById: type: integer format: int32 nullable: true deleted: type: string format: date-time nullable: true filename: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Models.PropertySearchHits: type: object properties: total: type: integer format: int32 lastSevenDays: type: integer format: int32 totalIncludingOtherPortals: type: integer format: int32 lastSevenDaysIncludingOtherPortals: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Models.PropertyTrackedModel: type: object properties: id: type: integer format: int32 userId: type: integer format: int32 propertyId: type: integer format: int32 notificationOfInterest: type: boolean dateTracked: type: string format: date-time dateOfInterest: type: string format: date-time nullable: true closingDate: type: string format: date-time nullable: true cursor: type: string nullable: true additionalProperties: false Purplebricks.Property.Domain.Models.RequestWithdrawProperty: type: object properties: propertyId: type: integer format: int32 withdrawPropertyReason: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WithdrawPropertyReason' additionalProperties: false Purplebricks.Property.Domain.Models.TrackedPropertiesListModel: type: object properties: trackedProperties: type: array items: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PropertyTrackedModel' nullable: true pageInfo: $ref: '#/components/schemas/Purplebricks.Property.Domain.Models.PageInfoResponseModel' additionalProperties: false Purplebricks.Property.Domain.Models.WithdrawPropertyRequestModel: type: object properties: propertyId: type: integer format: int32 withdrawalReason: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WithdrawPropertyReason' user: $ref: '#/components/schemas/Purplebricks.Security.Auth.AuthUser' collectBoard: type: boolean ipAddress: type: string nullable: true forceAdvertWithdrawal: type: boolean additionalProperties: false Purplebricks.Property.Domain.Models.WithdrawPropertyResponseModel: type: object properties: propertyId: type: integer format: int32 propertyWithdrawn: type: boolean nonWithdrawalReason: type: string nullable: true additionalProperties: false Purplebricks.Security.Auth.AuthUser: type: object properties: userId: type: integer format: int32 readOnly: true publicUserId: type: string format: uuid nullable: true readOnly: true impersonatorUserId: type: integer format: int32 readOnly: true impersonatorPublicUserId: type: string format: uuid nullable: true readOnly: true additionalProperties: false System.DateOnly: type: object properties: year: type: integer format: int32 readOnly: true month: type: integer format: int32 readOnly: true day: type: integer format: int32 readOnly: true dayOfWeek: $ref: '#/components/schemas/System.DayOfWeek' dayOfYear: type: integer format: int32 readOnly: true dayNumber: type: integer format: int32 readOnly: true additionalProperties: false System.DayOfWeek: enum: - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday type: string securitySchemes: Bearer: type: apiKey description: Authorization header using Bearer scheme name: Authorization in: header security: - Bearer: []