openapi: 3.1.0 info: description: Workflow management API for B3OS title: B3OS Workflow Action Webhook Events API version: '1.0' tags: - name: Webhook Events paths: /v1/webhook-events: get: description: List webhook events for the organization with pagination parameters: - description: Number of events to return (default 20, max 100) in: query name: limit schema: type: integer - description: Offset for pagination (default 0) in: query name: offset schema: type: integer requestBody: content: application/json: schema: type: object responses: '200': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_WebhookEvent' description: OK '401': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Forbidden summary: List webhook events tags: - Webhook Events /v1/webhook-events/{eventId}/replay: post: description: Replay a webhook event by re-processing its stored payload parameters: - description: Webhook Event ID in: path name: eventId required: true schema: type: string requestBody: content: application/json: schema: type: object responses: '200': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_service_integration.IntegrationResult' description: OK '404': content: application/json: schema: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse' description: Event not found tags: - Webhook Events components: schemas: github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_service_integration.IntegrationResult: properties: action: description: '"triggered", "resumed", "skipped"' type: string eventId: description: Webhook event ID for audit type: string reason: description: If skipped, the reason type: string runIds: description: Multiple if fan-out (platform) or single (generic) items: type: string type: array uniqueItems: false type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEventStatus: enum: - pending - success - failure type: string x-enum-varnames: - WebhookEventStatusPending - WebhookEventStatusSuccess - WebhookEventStatusFailure ? github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_WebhookEvent : properties: hasMore: type: boolean items: items: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEvent' type: array uniqueItems: false limit: type: integer offset: type: integer type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEventAction: enum: - triggered - resumed - skipped type: string x-enum-varnames: - WebhookEventActionTriggered - WebhookEventActionResumed - WebhookEventActionSkipped github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEvent: properties: actionTaken: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEventAction' body: additionalProperties: {} type: object createdAt: type: string errorMessage: type: string id: type: string metadata: additionalProperties: {} description: 'Platform-specific: channelId, threadId, targetUrl, etc.' type: object organizationId: type: string platform: description: slack, telegram, discord, webhook type: string processedAt: type: string runId: type: string status: $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WebhookEventStatus' workflowId: type: string type: object github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse: properties: code: type: integer details: items: {} type: array uniqueItems: false message: type: string requestId: type: string type: object