diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index f6e4a62..3fbec93 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -8,8 +8,7 @@ servers: paths: /notificationsubscriptions: get: - summary: Get all notification subscriptions - operationId: getAllNotificationSubscriptions + summary: Find one or more notification subscriptions tags: - Notification Subscriptions parameters: @@ -116,6 +115,7 @@ paths: emptyNotificationSubscriptionResponse: value: notificationSubscriptions: [] + href: null minimalNotificationSubscriptionResponse: value: notificationSubscriptions: @@ -140,6 +140,13 @@ paths: createdAt: '2025-10-01T12:00:00Z' createdBy: system isActive: true + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd eventTypeChannel: eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 @@ -161,6 +168,14 @@ paths: createdAt: '2025-09-15T08:30:00Z' createdBy: system isActive: false + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE + href: null fullNotificationSubscriptionResponse: value: notificationSubscriptions: @@ -190,6 +205,13 @@ paths: updatedAt: '2025-10-02T12:00:00Z' updatedBy: user isActive: true + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd eventTypeChannel: eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 @@ -216,6 +238,14 @@ paths: updatedAt: '2025-09-16T09:45:00Z' updatedBy: user isActive: false + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE + href: null '400': description: Bad request content: @@ -246,7 +276,6 @@ paths: $ref: '#/components/schemas/500Response' post: summary: Create a new notification subscription - operationId: createNotificationSubscription tags: - Notification Subscriptions requestBody: @@ -472,7 +501,6 @@ paths: $ref: '#/components/schemas/500Response' delete: summary: Delete a notification subscription by ID - operationId: deleteNotificationSubscription tags: - Notification Subscriptions parameters: @@ -514,6 +542,388 @@ paths: schema: type: object $ref: '#/components/schemas/500Response' + /eventorigins: + get: + summary: Get all event origins + tags: + - References + responses: + '200': + description: A list of event origins + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventOriginsResponse' + examples: + eventOriginsResponse: + value: + eventOrigins: + - eventOriginId: 1 + name: GBO + description: Events originated at GBO + - eventOriginId: 2 + name: Website + description: Events originated at the website + - eventOriginId: 3 + name: Payt + description: Events originated at Payt + - eventOriginId: 4 + name: Twikey + description: Events originated at Twikey + - eventOriginId: 5 + name: TapConnect + description: Events originated at TapConnect + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /channels: + get: + summary: Get all channels + tags: + - References + responses: + '200': + description: A list of channels + content: + application/json: + schema: + $ref: '#/components/schemas/GetChannelsResponse' + examples: + channelsResponse: + value: + channels: + - channelId: 1 + name: push + - channelId: 2 + name: email + - channelId: 3 + name: sms + - channelId: 4 + name: mail + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /notificationcategories: + get: + summary: Get all notification categories + tags: + - References + responses: + '200': + description: A list of notification categories + content: + application/json: + schema: + $ref: '#/components/schemas/GetNotificationCategoriesResponse' + examples: + notificationCategoriesResponse: + value: + notificationCategories: + - notifcationCategoryId: 1 + name: Mijn Reizen + - notifcationCategoryId: 2 + name: Mijn Passen + - notifcationCategoryId: 3 + name: Service Alerts + - notifcationCategoryId: 4 + name: Service Berichten + - notifcationCategoryId: 5 + name: Mijn Betalingen + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypes: + get: + summary: Get all event types + tags: + - References + responses: + '200': + description: A list of event types + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypesResponse' + examples: + eventTypesResponse: + value: + eventTypes: + - eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + - eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + - eventTypeId: 25 + eventOrigin: + eventOriginId: 3 + name: Payt + description: Events originated at Payt + name: Payment + subname: Failed Payment + prettyName: Betaling mislukt + optInRequired: false + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypecategories: + get: + summary: Get all event type categories + tags: + - References + responses: + '200': + description: A list of event type categories + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypeCategoriesResponse' + examples: + eventTypeCategoriesResponse: + value: + eventTypeCategories: + - eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + notificationCategory: + notifcationCategoryId: 1 + name: Mijn Reizen + - eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + notificationCategory: + notifcationCategoryId: 1 + name: Mijn Reizen + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypechannels: + get: + summary: Get all event type channels + tags: + - References + responses: + '200': + description: A list of event type channels + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypeChannelResponse' + examples: + eventTypeChannelsResponse: + value: + eventTypeChannels: + - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' components: schemas: GetNotificationSubscriptionsResponse: @@ -523,8 +933,11 @@ components: type: array items: $ref: '#/components/schemas/NotificationSubscription' + href: + type: string required: - notificationSubscriptions + - href NotificationSubscription: type: object properties: @@ -615,6 +1028,53 @@ components: example: false PatchNotificationSubscriptionResponse: $ref: '#/components/schemas/NotificationSubscription' + GetEventOriginsResponse: + type: object + properties: + eventOrigins: + type: array + items: + $ref: '#/components/schemas/EventOrigin' + GetChannelsResponse: + type: object + properties: + channels: + type: array + items: + $ref: '#/components/schemas/Channel' + GetNotificationCategoriesResponse: + type: object + properties: + notificationCategories: + type: array + items: + $ref: '#/components/schemas/NotificationCategory' + GetEventTypesResponse: + type: object + properties: + eventTypes: + type: array + items: + $ref: '#/components/schemas/EventType' + GetEventTypeCategoriesResponse: + type: object + properties: + eventTypeCategories: + type: array + items: + type: object + properties: + eventType: + $ref: '#/components/schemas/EventType' + notificationCategory: + $ref: '#/components/schemas/NotificationCategory' + GetEventTypeChannelResponse: + type: object + properties: + eventTypeChannels: + type: array + items: + $ref: '#/components/schemas/EventTypeChannel' EventTypeChannel: type: object properties: @@ -691,6 +1151,18 @@ components: required: - channelId - name + NotificationCategory: + type: object + properties: + notifcationCategoryId: + type: integer + example: 1 + name: + type: string + example: Mijn Reizen + required: + - notifcationCategoryId + - name 400Response: type: object properties: