openapi: 3.2.0 info: title: VaultRE Property Offer API description: Please ensure all API requests use HTTP/1.1. See https://github.com/VaultGroup/api-samples for code samples. contact: name: VaultRE url: https://www.vaultre.com.au email: api@vaultre.com.au version: '1.3' servers: - url: https://ap-southeast-2.api.vaultre.com.au/api/v1.3 tags: - name: propertyOffer description: Operations related to property offers paths: /propertyOffers: get: tags: - propertyOffer summary: Retrieve a list of property offers for this account description: Retrieve a list of property offers for this account operationId: getPropertyOffers parameters: - name: type in: query description: Filter by offer type. Currently only "sale" is supported required: true schema: enum: - sale - name: saleLifeId in: query description: Filter by offers for this sale life required: false schema: type: integer format: int64 - name: leaseLifeId in: query description: Filter by offers for this lease life required: false schema: type: integer format: int64 - name: contactId in: query description: Filter by offers for this contact required: false schema: type: integer format: int64 - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - name: sort in: query description: Sort items by field schema: type: string enum: - offerDate - $ref: '#/components/parameters/sortOrder' responses: 200: description: Offers retrieved content: application/json: schema: type: object properties: items: type: array items: $ref: '#/components/schemas/PropertyOffer' totalItems: type: integer format: int64 totalPages: type: integer format: int64 urls: $ref: '#/components/schemas/Urls' security: - Api-Key: [] Bearer: [] post: tags: - propertyOffer summary: Add a property offer description: Add a property offer. Sale or lease life must be provided, but not both. operationId: addPropertyOffer requestBody: content: application/json: schema: $ref: '#/components/schemas/AddPropertyOffer' required: true responses: 201: description: Property offer added content: application/json: schema: $ref: '#/components/schemas/PropertyOffer' 400: description: Invalid data content: application/json: schema: $ref: '#/components/schemas/SuccessOrError' security: - Api-Key: [] Bearer: [] /propertyOffers/{id}: get: tags: - propertyOffer summary: Retrieve a single property offer description: Retrieve a single property offer operationId: getPropertyOffer parameters: - name: id in: path description: ID of the property offer required: true schema: type: integer format: int64 responses: 200: description: Offer retrieved content: application/json: schema: $ref: '#/components/schemas/PropertyOffer' security: - Api-Key: [] Bearer: [] put: tags: - propertyOffer summary: Update a property offer description: Update a property offer operationId: updatePropertyOffer parameters: - name: id in: path description: ID of the property offer required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePropertyOffer' required: true responses: 200: description: Property offer updated content: application/json: schema: type: array items: $ref: '#/components/schemas/PropertyOffer' 400: description: Invalid data content: application/json: schema: $ref: '#/components/schemas/SuccessOrError' security: - Api-Key: [] Bearer: [] components: schemas: ContactMinimal: type: object properties: id: type: integer format: int64 displayName: type: string inserted: type: string format: date-time modified: type: string format: date-time emails: type: array items: type: string format: email phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber' PropertyOfferStatus: type: object properties: id: type: number format: int64 name: type: string ID: type: object properties: id: type: integer format: int64 UpdatePropertyOffer: type: object properties: id: type: number format: int64 contact: $ref: '#/components/schemas/ID' details: type: string offerDate: type: string format: date-time offerPrice: type: number format: float status: $ref: '#/components/schemas/ID' 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 comment: type: string SuccessOrError: type: object properties: success: type: boolean msg: type: string code: type: string PropertyOffer: type: object properties: id: type: number format: int64 contact: $ref: '#/components/schemas/ContactMinimal' details: type: string leaseLifeId: type: integer format: int64 saleLifeId: type: integer format: int64 offerDate: type: string format: date-time offerPrice: type: number format: float status: $ref: '#/components/schemas/PropertyOfferStatus' AddPropertyOffer: type: object properties: contact: $ref: '#/components/schemas/ID' details: type: string leaseLifeId: type: integer format: int64 saleLifeId: type: integer format: int64 offerDate: type: string format: date-time offerPrice: type: number format: float status: $ref: '#/components/schemas/ID' Urls: type: object properties: previous: type: string next: type: string self: 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 securitySchemes: Api-Key: type: apiKey name: X-Api-Key in: header Bearer: type: http scheme: bearer