openapi: 3.2.0 info: title: EVEDEX - Notifications Distribution API version: 1.0.0 servers: - url: https://notifications-api.evedex.com tags: - name: Distribution paths: /api/notification/send-email-list: post: tags: - Distribution security: - AccessToken: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendEmailListBody' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/SendEmailListResponse' '401': description: 401 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: 403 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: 404 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: 409 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: 500 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/notification/send: post: tags: - Distribution security: - InternalKey: [] requestBody: required: true content: application/json: schema: type: object properties: event: type: string authId: anyOf: - type: string - type: string enum: - all - registred - unregistred - type: 'null' data: type: object additionalProperties: {} default: {} source: type: string enum: - exchange - exchange-demo - partner - academy - game - group-manager - unknown - bridge - bridge-demo - backoffice - auth - trading-platform - watcher default: unknown appearance: type: string enum: - constantly - once - persistent default: once deliveryTime: type: string endTime: type: string channels: type: array items: type: string enum: - web - webActivity - mobilePush - browserPush - email - telegram - telegramChannel - slack - discord minItems: 1 required: - event - authId responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/EmptyResponse' /api/notification: get: tags: - Distribution security: - InternalKey: [] parameters: - in: query name: authId schema: anyOf: - type: string - type: string enum: - all - registred - unregistred - in: query name: appearance schema: type: string enum: - constantly - once - persistent - in: query name: createdAfter schema: type: string - in: query name: limit schema: $ref: '#/components/schemas/PageLimitParam' - in: query name: offset schema: $ref: '#/components/schemas/PageOffsetParam' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/ListNotificationsResponse' '401': description: 401 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: 403 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: 500 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/message/distribution: post: deprecated: true tags: - Distribution security: - AccessToken: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMessageBody' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/EmptyResponse' /api/message/persistent/{id}: put: tags: - Distribution security: - AccessToken: [] parameters: - in: path name: id schema: type: string format: uuid required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePersistentNotificationBody' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/UpdatePersistentNotificationResponse' '400': description: 400 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: 401 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: 403 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: 404 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: 500 Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: EmptyResponse: type: object Notification: type: object properties: id: type: string authId: anyOf: - type: string - type: string enum: - all - registred - unregistred - type: 'null' source: type: string event: type: string data: type: object additionalProperties: {} appearance: type: string enum: - constantly - once - persistent endTime: type: - string - 'null' createdAt: type: string updatedAt: type: string required: - id - authId - source - event - data - appearance - endTime - createdAt - updatedAt UpdatePersistentNotificationResponse: type: object properties: id: type: string endTime: type: - string - 'null' updatedAt: type: string required: - id - endTime - updatedAt MessageContentBody: anyOf: - $ref: '#/components/schemas/EmailContent' - $ref: '#/components/schemas/TelegramContentBody' - $ref: '#/components/schemas/WebContentBody' - $ref: '#/components/schemas/SlackContentBody' UpdatePersistentNotificationBody: type: object properties: endTime: type: - string - 'null' required: - endTime SendEmailListBody: type: object properties: event: type: string locale: type: string enum: - en-US - ru-RU - es-ES - fr-FR - de-DE - it-IT - pt-BR - ja-JP - ko-KR - zh-CN - zh-TW data: type: object additionalProperties: {} default: {} recipients: type: array items: type: string format: email minItems: 1 maxItems: 1000 required: - event - locale - recipients ListNotificationsResponse: type: object properties: list: type: array items: $ref: '#/components/schemas/Notification' count: type: number required: - list - count SlackContentBody: type: object properties: webhookName: type: string enum: - amlAlerts content: type: string required: - webhookName - content PageOffsetParam: type: string default: '0' ErrorResponse: type: object properties: message: type: string description: Error message required: - message description: Error response SendEmailListResponse: type: object properties: sent: type: boolean recipients: type: number required: - sent - recipients PageLimitParam: type: string default: '50' EmailContent: type: object properties: to: type: string templateId: type: string payload: type: object required: - templateId - payload CreateMessageBody: type: object properties: authId: anyOf: - type: string - type: string enum: - all - registred - unregistred - type: 'null' source: type: string enum: - exchange - exchange-demo - partner - academy - game - group-manager - unknown - bridge - bridge-demo - backoffice - auth - trading-platform - watcher default: unknown content: $ref: '#/components/schemas/MessageContentBody' group: type: string targetDeviceType: type: string enum: - web - webActivity - mobilePush - browserPush - email - telegram - telegramChannel - slack - discord locale: type: string appearance: type: string enum: - constantly - once - persistent default: once required: - authId - content - group - targetDeviceType - locale TelegramContentBody: type: object properties: chatId: type: number message: type: string required: - message WebContentBody: type: object properties: title: type: string content: type: string link: type: string imageUrl: type: string required: - title securitySchemes: InternalKey: type: http scheme: bearer AccessToken: type: http scheme: bearer