openapi: 3.0.0 info: title: AI Service Actions Notifications API version: 1.0.0 contact: email: devel@keboola.com license: name: MIT url: https://opensource.org/licenses/MIT tags: - name: Notifications paths: /notifications: post: summary: Send a direct notification operationId: postNotification tags: - Notifications description: 'Send a direct notification to a specific recipient email without requiring a subscription. ' security: - ApplicationTokenAuth: [] requestBody: content: application/json: schema: type: object required: - type - recipient - data properties: type: type: string enum: - direct-project-email - direct-project-webhook description: Type of notification to send recipient: oneOf: - $ref: '#/components/schemas/RecipientChannel_Email' - $ref: '#/components/schemas/RecipientChannel_Webhook' discriminator: propertyName: channel data: type: object description: Event data according to notification type schema required: - project - title - message properties: project: type: object required: - id - name properties: id: type: string description: Project ID name: type: string description: Project name flow: type: object description: Optional flow information required: - id - name - url properties: id: type: string description: Flow ID name: type: string description: Flow name url: type: string format: url description: Flow URL job: type: object description: Optional job information required: - id - url properties: id: type: string description: Job ID url: type: string format: url description: Job URL title: type: string description: Notification title message: type: string description: Notification message examples: directProjectEmail: value: type: direct-project-email recipient: channel: email address: user@example.com data: project: id: '1234' name: My Project title: Important Notification message: This is an important notification about your project. directProjectEmailWithFlowAndJob: value: type: direct-project-email recipient: channel: email address: user@example.com data: project: id: '1234' name: My Project flow: id: '5678' name: My Flow url: https://connection.keboola.com/admin/projects/1234/flows-v2/5678 job: id: '9012' url: https://connection.keboola.com/admin/projects/1234/queue/9012 title: Important Notification message: This is an important notification about your project. directProjectWebhook: value: type: direct-project-webhook recipient: channel: webhook url: https://webhook.example.com/notifications data: project: id: '1234' name: My Project title: Important Notification message: This is an important notification about your project. responses: '202': description: Notification accepted for processing content: application/json: schema: $ref: '#/components/schemas/Notification' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: schemas: RecipientChannel_Email: type: object required: - channel - address properties: channel: type: string enum: - email address: type: string format: email Error: type: object required: - error - code - status properties: error: type: string example: The value foobar is invalid code: type: integer example: 400 status: type: string enum: - error exceptionId: type: string example: job-runner-1234567890 RecipientChannel_Webhook: type: object required: - channel - url properties: channel: type: string enum: - webhook url: type: string format: uri NumericString: type: string pattern: ^\d+$ example: '1234' Notification: type: object properties: id: $ref: '#/components/schemas/NumericString' required: - id responses: BadRequest: description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized request content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-StorageApi-Token