diff --git a/specification/fairSyncApi.yml b/specification/fairSyncApi.yml index 0bc0f780593314a2553df26730fabd0fd6fcebf9..973ffa207d233e2228f7cb0b4b2461d7c884250d 100644 --- a/specification/fairSyncApi.yml +++ b/specification/fairSyncApi.yml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: - title: FairSync API Organisations/Places - description: FairSync API for synchronizing Organisations/Places between maps and platforms. See also https://nlnet.nl/project/FairSync + title: FairSync API PointOfInterest + description: FairSync API for synchronizing PointOfInterest between maps and platforms. See also https://nlnet.nl/project/FairSync version: 0.0.1 contact: name: FairSync API @@ -13,9 +13,9 @@ security: - basicAuth: [] - bearerAuth: [] paths: - /places: + /poi: get: - summary: Search for places + summary: Search for POIs tags: - Places parameters: @@ -91,56 +91,76 @@ components: type: string description: "Country code according to ISO 3166-1 Alpha-2" Contact: + type: object + properties: + emailaddress: + $ref: "#/components/schemas/Emailaddress" + phoneNumber: + $ref: "#/components/schemas/PhoneNumber" + website: + $ref: "#/components/schemas/Website" + Emailaddress: type: object required: - - emailAddresses + - email properties: - emailAddresses: - type: array - items: - type: object - required: - - primary - - email - properties: - primary: - type: boolean - description: - type: string - email: - type: string - format: email - phoneNumbers: - type: array - items: - type: object - required: - - primary - - phone - properties: - primary: - type: boolean - description: - type: string - phone: - type: string - format: phone - websites: - type: array - items: - type: object - required: - - primary - - url - properties: - primary: - type: boolean - description: - type: string - url: - type: string - format: url - Place: + description: + type: string + email: + type: string + format: email + PhoneNumber: + type: object + required: + - phone + properties: + description: + type: string + phone: + type: string + format: phone + Website: + type: object + required: + - url + properties: + description: + type: string + url: + type: string + format: url + Owner: + type: object + description: The owner of a POI. This is not a plattform, its more a person or a organisation, that is responsible for a concrete entry. + required: + - contacturl + properties: + contact: + $ref: '#/components/schemas/Contact' + Plattform: + type: object + description: The plattform that owns a POI. + required: + - url + properties: + url: + type: string + format: url + VerifiedTag: + type: object + description: Tags that are verified by the maintainer (a.k.a. plattform). Some platforms have service employees who validate entries and check whether tags have been allocated correctly. + required: + - url + properties: + tag: + type: string + verified: + type: string + enum: [verified, rejected] + verifiedBy: + $ref: '#/components/schemas/Contact' + + PointOfInterest: required: - address - contact @@ -148,7 +168,6 @@ components: - language - license - source -# - status - title properties: id: @@ -158,10 +177,26 @@ components: example: 'https://kartevonmorgen.org/#/?entry=e58b14c1aa4e446bb1700b03dcac3069' version: type: integer - createdAt: - $ref: '#/components/schemas/DateTime' language: $ref: '#/components/schemas/Language' + createdAt: + $ref: '#/components/schemas/DateTime' + deleted: + type: boolean + description: If true, this POI was deleted on the plattform you requested POIs + license: + type: string + source: + type: object + description: Origin of the dataset + required: + - providerId + - entryId + properties: + owner: + $ref: '#/components/schemas/Owner' + plattform: + $ref: '#/components/schemas/Plattform' title: type: string description: @@ -170,6 +205,10 @@ components: type: array items: type: string + verifiedTags: + type: array + items: + $ref: '#/components/schemas/VerifiedTag' images: type: array items: @@ -184,8 +223,11 @@ components: address: # This is the Place adress. It may be the same as the legalAddress. This address is mandatory. $ref: '#/components/schemas/Address' - contact: - $ref: '#/components/schemas/Contact' + contacts: + type: array + items: + $ref: '#/components/schemas/Contact' + openingHours: type: object description: | @@ -228,26 +270,15 @@ components: oneOf: - type: number - type: string - license: - type: string - source: - type: object - description: Origin of the dataset - required: - - providerId - - entryId - properties: - providerId: - type: string - entryId: - type: string - description: Original id of the entry - url: - type: string - format: url - #status: - #To be discussed. Fredy is not happy with providing a kind of process! - #$ref: '#/components/schemas/PublicationStatus' + additionalProperties: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string parameters: BoundingBox: name: boundingBox