openapi: 3.2.0 info: title: Vaultre Feedback API contact: name: VaultRE url: https://www.vaultre.com.au email: api@vaultre.com.au version: '1.0' description: 'Operations tagged feedback across 3 of this provider''s published API definitions: vaultre-api-v1-1-openapi.yml, vaultre-api-v1-2-openapi.yml, vaultre-api-v1-3-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1 - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.2 - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.3 tags: - name: feedback description: Operations related to property feedback paths: /properties/{id}/{salelease}/{lifeid}/feedback: get: tags: - feedback summary: Retrieve a list of property feedback attached to this life description: Retrieve a list of property feedback attached to this life operationId: getPropertyFeedbackLife parameters: - name: id in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 - name: feedbackAfter in: query description: Filter feedback occurring on or after this date schema: type: string format: date - name: feedbackBefore in: query description: Filter feedback occurring before this date schema: type: string format: date - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - name: sort in: query description: Field by which to sort the results. schema: type: string enum: - inserted - feedbackDate - $ref: '#/components/parameters/sortOrder' responses: 200: description: Property feedback retrieved content: {} security: - Api-Key: [] Bearer: [] post: tags: - feedback summary: Attach feedback to this property life description: Attach feedback to this property life operationId: attachFeedbackToPropertyLife parameters: - name: id in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 requestBody: description: Property Feedback object content: application/json: schema: $ref: '#/components/schemas/AddPropertyFeedback' required: true responses: 201: description: Feedback attached content: application/json: schema: $ref: '#/components/schemas/PropertyFeedback' 400: description: Invalid data content: application/json: schema: $ref: '#/components/schemas/SuccessOrError' security: - Api-Key: [] Bearer: [] x-codegen-request-body-name: body servers: - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1 /properties/{propertyid}/{salelease}/{lifeid}/feedback/{id}: get: tags: - feedback summary: Retrieve a property feedback item attached to this life description: Retrieve a property feedback item attached to this life operationId: getSinglePropertyFeedbackLife parameters: - name: propertyid in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 - name: id in: path description: ID of the feedback required: true schema: type: integer format: int64 responses: 200: description: Property feedback retrieved content: application/json: schema: $ref: '#/components/schemas/PropertyFeedback' security: - Api-Key: [] Bearer: [] put: tags: - feedback summary: Update a feedback item description: Update a feedback item operationId: updateFeedback parameters: - name: propertyid in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 - name: id in: path description: ID of the feedback required: true schema: type: integer format: int64 requestBody: description: Property Feedback object content: application/json: schema: $ref: '#/components/schemas/UpdatePropertyFeedback' required: true responses: 200: description: Feedback updated content: application/json: schema: $ref: '#/components/schemas/PropertyFeedback' 400: description: Invalid data content: application/json: schema: $ref: '#/components/schemas/SuccessOrError' security: - Api-Key: [] Bearer: [] x-codegen-request-body-name: body delete: tags: - feedback summary: Delete a property feedback item description: Delete a property feedback item operationId: deletePropertyFeedback parameters: - name: propertyid in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 - name: id in: path description: ID of the feedback required: true schema: type: integer format: int64 responses: 204: description: Feedback deleted content: {} 400: description: Invalid data content: '*/*': schema: $ref: '#/components/schemas/SuccessOrError' security: - Api-Key: [] Bearer: [] servers: - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.1 /properties/{id}/{salelease}/{lifeid}/feedback/summary: get: tags: - feedback summary: Retrieve a summary of property feedback feedback attached to this life description: Retrieve a summary showing how many times each contact has provided feedback/interacted with this property life operationId: getPropertyFeedbackLifeSummary parameters: - name: id in: path description: ID of the property required: true schema: type: integer format: int64 - name: salelease in: path description: Sale or lease life record required: true schema: type: string enum: - sale - lease - name: lifeid in: path description: ID of the property life required: true schema: type: integer format: int64 - name: feedbackAfter in: query description: Filter feedback occurring on or after this date schema: type: string format: date - name: feedbackBefore in: query description: Filter feedback occurring before this date schema: type: string format: date - $ref: '#/components/parameters/modifiedSince' - $ref: '#/components/parameters/modifiedBefore' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - name: sort in: query description: Field by which to sort the results. schema: type: string enum: - count - $ref: '#/components/parameters/sortOrder' responses: 200: description: Property feedback summary retrieved content: {} security: - Api-Key: [] Bearer: [] servers: - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.2 components: schemas: ContactNoteTypePurpose: type: object properties: id: type: integer format: int64 name: type: string ID: type: object properties: id: type: integer format: int64 State: type: object properties: id: type: integer format: int64 name: type: string abbreviation: type: string UpdateContactNote: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' UpdatePropertyFeedback: type: object properties: note: $ref: '#/components/schemas/UpdateContactNote' contact: $ref: '#/components/schemas/ID' feedbackDate: type: string format: date-time priceOpinion: type: number format: float Country: type: object properties: id: type: integer format: int64 name: type: string isocode: type: string gstRate: type: number format: float ContactNoteType: type: object properties: id: type: integer format: int64 name: type: string colour: type: string defaultReadOnly: type: boolean purpose: $ref: '#/components/schemas/ContactNoteTypePurpose' AddPropertyFeedback: type: object properties: note: $ref: '#/components/schemas/AddContactNote' contact: $ref: '#/components/schemas/ID' feedbackDate: type: string format: date-time priceOpinion: type: number format: float AddContactNote: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' inserted: type: string format: date-time ContactNoteReminder: type: object properties: date: type: string format: date-time user: $ref: '#/components/schemas/User' ContactNote: type: object properties: id: type: integer format: int64 inserted: type: string format: date-time modified: type: string format: date-time body: type: string readOnly: type: boolean insertedBy: $ref: '#/components/schemas/User' type: $ref: '#/components/schemas/ContactNoteType' reminder: $ref: '#/components/schemas/ContactNoteReminder' User: type: object properties: id: type: integer format: int64 firstName: type: string lastName: type: string username: type: string email: type: string format: email adminAccess: type: boolean position: type: string role: type: string enum: - commercialSalesAndLeasing - residentialSales - propertyManagement photo: $ref: '#/components/schemas/UserPhoto' lastLogin: type: string format: date-time phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber' profile: type: string permissions: type: object properties: settings: type: boolean canLogin: type: boolean deleteContacts: type: boolean globalActionListsReadWrite: type: boolean globalContactsReadWrite: type: boolean globalNotesRead: type: boolean globalNotesReadWrite: type: boolean globalPropertiesRead: type: boolean globalPropertiesReadWrite: type: boolean globalTasksReadWrite: type: boolean sendSMS: type: boolean PhoneNumber: type: object properties: number: type: string typeCode: type: string enum: - H - W - M - F - D type: type: string enum: - Home - Work - Mobile - Facsimile - Direct Address: type: object properties: level: type: string unitNumber: type: string streetNumber: type: string street: type: string suburb: $ref: '#/components/schemas/Suburb' state: $ref: '#/components/schemas/State' country: $ref: '#/components/schemas/Country' PropertyFeedback: type: object properties: id: type: integer format: int64 note: $ref: '#/components/schemas/ContactNote' contact: $ref: '#/components/schemas/Contact' feedbackDate: type: string format: date-time priceOpinion: type: number format: float Suburb: type: object properties: id: type: integer format: int64 name: type: string postcode: type: string state: $ref: '#/components/schemas/State' Contact: type: object properties: id: type: integer format: int64 title: type: string firstName: type: string lastName: type: string greeting: type: string displayName: type: string partnerTitle: type: string partnerFirstName: type: string partnerLastName: type: string company: type: string position: type: string address: $ref: '#/components/schemas/Address' postalAddress: $ref: '#/components/schemas/Address' onDoNotCallList: type: boolean inserted: type: string format: date-time modified: type: string format: date-time touched: type: string format: date-time remoteId: type: string unsubscribe: $ref: '#/components/schemas/Unsubscribe' emails: type: array items: type: string format: email phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber' legalDescription: type: string Unsubscribe: type: object properties: email: type: boolean sms: type: boolean letters: type: boolean UserPhoto: type: object properties: original: type: string thumb_360: type: string SuccessOrError: type: object properties: success: type: boolean msg: type: string code: type: string AddContactNoteReminder: type: object properties: date: type: string format: date-time user: $ref: '#/components/schemas/ID' UpdateContactNote_2: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' accessBy: type: array items: $ref: '#/components/schemas/ID' UpdatePropertyFeedback_2: type: object properties: note: $ref: '#/components/schemas/UpdateContactNoteWithFeedback' UpdateContactNoteWithFeedback: allOf: - $ref: '#/components/schemas/UpdateContactNote_2' - type: object properties: propertyFeedback: $ref: '#/components/schemas/AddUpdatePropertyFeedback' ContactNoteType_2: type: object properties: id: type: integer format: int64 name: type: string colour: type: string defaultReadOnly: type: boolean pinned: type: boolean purpose: $ref: '#/components/schemas/ContactNoteTypePurpose' EntityType: type: object properties: id: type: number format: int64 name: type: string EnquirySource: type: object properties: id: type: number format: int64 name: type: string AddUpdatePropertyFeedback: type: object properties: priceOpinion: type: number format: float feedbackDate: type: string format: date-time contractRequested: type: boolean contractSent: type: string format: date-time AddPropertyFeedback_2: type: object properties: contact: $ref: '#/components/schemas/ID' note: $ref: '#/components/schemas/AddContactNoteWithFeedback' AddContactNote_2: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' inserted: type: string format: date-time accessBy: type: array items: $ref: '#/components/schemas/ID' User_2: type: object properties: id: type: integer format: int64 firstName: type: string lastName: type: string username: type: string email: type: string format: email adminAccess: type: boolean position: type: string role: type: string enum: - commercialSalesAndLeasing - residentialSales - propertyManagement photo: $ref: '#/components/schemas/UserPhoto' lastLogin: type: string format: date-time phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber_2' profile: type: string permissions: type: object properties: settings: type: boolean accessPropertyManagement: type: boolean accessSales: type: boolean canLogin: type: boolean deleteContacts: type: boolean globalActionListsReadWrite: type: boolean globalContactsReadWrite: type: boolean globalNotesRead: type: boolean globalNotesReadWrite: type: boolean globalPropertiesRead: type: boolean globalPropertiesReadWrite: type: boolean globalTasksReadWrite: type: boolean sendSMS: type: boolean websiteUrl: type: string ContactNote_2: type: object properties: id: type: integer format: int64 inserted: type: string format: date-time modified: type: string format: date-time body: type: string readOnly: type: boolean contact: $ref: '#/components/schemas/ID' insertedBy: $ref: '#/components/schemas/User_2' type: $ref: '#/components/schemas/ContactNoteType_2' reminder: $ref: '#/components/schemas/ContactNoteReminder' propertyFeedback: $ref: '#/components/schemas/PropertyFeedback_2' PhoneNumber_2: type: object properties: number: type: string typeCode: type: string enum: - H - W - M - F - D type: type: string enum: - Home - Work - Mobile - Facsimile - Direct comment: type: string PropertyClass: type: object properties: id: type: integer format: int64 name: type: string internalName: type: string PropertyFeedback_2: type: object properties: id: type: integer format: int64 property: type: object properties: id: type: number format: int64 displayAddress: type: string saleLifeId: type: number format: int64 leaseLifeId: type: number format: int64 class: $ref: '#/components/schemas/PropertyClass' feedbackDate: type: string format: date-time priceOpinion: type: number format: float saleLifeId: type: number format: int64 leaseLifeId: type: number format: int64 contractRequested: type: boolean contractSent: type: string format: date-time ContactExtended: allOf: - $ref: '#/components/schemas/Contact_2' - type: object properties: accessBy: type: array items: $ref: '#/components/schemas/Access' sourceOfEnquiry: $ref: '#/components/schemas/EnquirySource' Contact_2: type: object properties: id: type: integer format: int64 title: type: string firstName: type: string lastName: type: string greeting: type: string displayName: type: string partnerTitle: type: string partnerFirstName: type: string partnerLastName: type: string company: type: string position: type: string address: $ref: '#/components/schemas/Address' postalAddress: $ref: '#/components/schemas/Address' onDoNotCallList: type: boolean archived: type: boolean inserted: type: string format: date-time modified: type: string format: date-time touched: type: string format: date-time remoteId: type: string unsubscribe: $ref: '#/components/schemas/Unsubscribe' entityType: $ref: '#/components/schemas/EntityType' emails: type: array items: type: string format: email phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber_2' legalDescription: type: string marketingUsers: type: array items: $ref: '#/components/schemas/MarketingUser' MarketingUser: type: object properties: id: type: integer format: int64 user: $ref: '#/components/schemas/Access' ContactNoteExtended: allOf: - $ref: '#/components/schemas/ContactNote_2' - type: object properties: accessBy: type: array items: $ref: '#/components/schemas/Access' AddContactNoteWithFeedback: allOf: - $ref: '#/components/schemas/AddContactNote_2' - type: object properties: propertyFeedback: $ref: '#/components/schemas/AddUpdatePropertyFeedback' Access: type: object properties: id: type: integer format: int64 name: type: string photo: $ref: '#/components/schemas/UserPhoto' ContactNoteAndContactExtended: type: object properties: note: $ref: '#/components/schemas/ContactNoteExtended' contact: $ref: '#/components/schemas/ContactExtended' UpdateContactNote_3: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' accessBy: type: array items: $ref: '#/components/schemas/ID' UpdatePropertyFeedback_3: type: object properties: note: $ref: '#/components/schemas/UpdateContactNoteWithFeedback_2' Region: type: object properties: id: type: integer format: int64 name: type: string UpdateContactNoteWithFeedback_2: allOf: - $ref: '#/components/schemas/UpdateContactNote_3' - type: object properties: propertyFeedback: $ref: '#/components/schemas/AddUpdatePropertyFeedback' ContactNoteType_3: type: object properties: id: type: integer format: int64 name: type: string colour: type: string defaultReadOnly: type: boolean pinned: type: boolean purpose: $ref: '#/components/schemas/ContactNoteTypePurpose' AddPropertyFeedback_3: type: object properties: contact: $ref: '#/components/schemas/ID' note: $ref: '#/components/schemas/AddContactNoteWithFeedback_2' UnsubscribeType: type: object properties: id: type: integer format: int64 name: type: string AddContactNote_3: type: object properties: body: type: string readOnly: type: boolean type: $ref: '#/components/schemas/ID' reminder: $ref: '#/components/schemas/AddContactNoteReminder' inserted: type: string format: date-time accessBy: type: array items: $ref: '#/components/schemas/ID' insertedBy: $ref: '#/components/schemas/ID' User_3: type: object properties: id: type: integer format: int64 firstName: type: string lastName: type: string username: type: string email: type: string format: email adminAccess: type: boolean position: type: string role: type: string enum: - commercialSalesAndLeasing - residentialSales - propertyManagement photo: $ref: '#/components/schemas/UserPhoto' lastLogin: type: string format: date-time phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber_3' profile: type: string permissions: type: object properties: settings: type: boolean accessPropertyManagement: type: boolean accessSales: type: boolean canLogin: type: boolean deleteContacts: type: boolean deleteProperties: type: boolean globalActionListsReadWrite: type: boolean globalContactsReadWrite: type: boolean globalNotesRead: type: boolean globalNotesReadWrite: type: boolean globalPropertiesRead: type: boolean globalPropertiesReadWrite: type: boolean globalTasksReadWrite: type: boolean sendSMS: type: boolean accessPropertyFinancials: type: boolean accessAlarmDetails: type: boolean modifyWebsiteContent: type: boolean editMarketingContact: type: boolean websiteUrl: type: string showOnWeb: type: boolean externalReference: type: string ssoIdentifier: type: string signature: type: string account: type: object properties: id: type: integer format: int64 name: type: string hideMobileFromPortal: type: boolean ContactNote_3: type: object properties: id: type: integer format: int64 inserted: type: string format: date-time modified: type: string format: date-time body: type: string readOnly: type: boolean contact: $ref: '#/components/schemas/ID' insertedBy: $ref: '#/components/schemas/User_3' type: $ref: '#/components/schemas/ContactNoteType_3' reminder: $ref: '#/components/schemas/ContactNoteReminder' propertyFeedback: $ref: '#/components/schemas/PropertyFeedback_3' PhoneNumber_3: type: object properties: number: type: string typeCode: type: string enum: - H - W - M - F - D type: type: string enum: - Home - Work - Mobile - Facsimile - Direct comment: type: string CustomAddress: type: object properties: address1: type: string address2: type: string postTown: type: string postcode: type: string Address_2: type: object properties: level: type: string unitNumber: type: string streetNumber: type: string street: type: string suburb: $ref: '#/components/schemas/Suburb_2' state: $ref: '#/components/schemas/State' country: $ref: '#/components/schemas/Country' royalMail: $ref: '#/components/schemas/RoyalMail' customAddress: $ref: '#/components/schemas/CustomAddress' PropertyFeedback_3: type: object properties: id: type: integer format: int64 property: type: object properties: id: type: number format: int64 displayAddress: type: string saleLifeId: type: number format: int64 leaseLifeId: type: number format: int64 class: $ref: '#/components/schemas/PropertyClass' feedbackDate: type: string format: date-time priceOpinion: type: number format: float saleLifeId: type: number format: int64 leaseLifeId: type: number format: int64 contractRequested: type: boolean contractSent: type: string format: date-time Suburb_2: type: object properties: id: type: integer format: int64 name: type: string postcode: type: string state: $ref: '#/components/schemas/State' nzDistrict: $ref: '#/components/schemas/District' isPoBox: type: boolean District: type: object properties: id: type: integer format: int64 name: type: string region: $ref: '#/components/schemas/Region' RoyalMail: type: object properties: buildingName: type: string buildingNumber: type: string department: type: string locality: type: string locality2: type: string organisation: type: string postTown: type: string postcode: type: string subbuildingName: type: string subbuildingNumber: type: string thoroughfare: type: string thoroughfare2: type: string udprn: type: integer format: int64 ContactExtended_2: allOf: - $ref: '#/components/schemas/Contact_3' - type: object properties: accessBy: type: array items: $ref: '#/components/schemas/Access_2' sourceOfEnquiry: $ref: '#/components/schemas/EnquirySource' Contact_3: type: object properties: id: type: integer format: int64 title: type: string firstName: type: string lastName: type: string greeting: type: string displayName: type: string partnerTitle: type: string partnerFirstName: type: string partnerLastName: type: string company: type: string position: type: string address: $ref: '#/components/schemas/Address_2' postalAddress: $ref: '#/components/schemas/Address_2' onDoNotCallList: type: boolean archived: type: boolean inserted: type: string format: date-time modified: type: string format: date-time touched: type: string format: date-time remoteId: type: string unsubscribe: $ref: '#/components/schemas/Unsubscribe' entityType: $ref: '#/components/schemas/EntityType' emails: type: array items: type: string format: email phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber_3' legalDescription: type: string abn: type: string description: Australian Business Number (ABN). For New Zealand customers, this field represents the GST registration number. acn: type: string description: Australian Company Number (ACN). marketingUsers: type: array items: $ref: '#/components/schemas/MarketingUser' smsUnsubscribeUrl: type: string customUnsubscribe: type: array items: $ref: '#/components/schemas/UnsubscribeType' ContactNoteExtended_2: allOf: - $ref: '#/components/schemas/ContactNote_3' - type: object properties: accessBy: type: array items: $ref: '#/components/schemas/Access_2' AddContactNoteWithFeedback_2: allOf: - $ref: '#/components/schemas/AddContactNote_3' - type: object properties: propertyFeedback: $ref: '#/components/schemas/AddUpdatePropertyFeedback' Access_2: type: object properties: id: type: integer format: int64 name: type: string photo: $ref: '#/components/schemas/UserPhoto' account: type: object properties: id: type: integer format: int64 name: type: string parameters: pagesize: name: pagesize in: query description: Number of records to be returned in each page. schema: type: integer format: int64 default: 50 page: name: page in: query description: Page number of results schema: type: integer format: int64 sortOrder: name: sortOrder in: query description: Order by which to sort the results. Used in conjunction with sort parameter. schema: type: string enum: - asc - desc modifiedSince: name: modifiedSince in: query description: Filter results modified since this datetime schema: type: string format: date-time modifiedBefore: name: modifiedBefore in: query description: Filter results modified before this datetime schema: type: string format: date-time securitySchemes: Api-Key: type: apiKey name: X-Api-Key in: header Bearer: type: apiKey description: Use format 'Bearer [token]' name: Authorization in: header x-refined-from: - vaultre-api-v1-1-openapi.yml - vaultre-api-v1-2-openapi.yml - vaultre-api-v1-3-openapi.yml