openapi: 3.1.0 info: title: TIBCO BusinessEvents API description: >- Complex event processing and decision management API for real-time business operations. Provides programmatic access to manage rules, decision tables, events, agents, and inference sessions within TIBCO BusinessEvents. version: '1.0' contact: name: TIBCO Support url: https://support.tibco.com termsOfService: https://www.tibco.com/legal/terms-of-use externalDocs: description: TIBCO BusinessEvents Documentation url: https://docs.tibco.com/products/tibco-businessevents servers: - url: https://api.tibco.com/businessevents/v1 description: TIBCO BusinessEvents Production tags: - name: Agents description: Manage inference agents - name: Channels description: Manage event channels and destinations - name: Decision Tables description: Manage decision tables for rule evaluation - name: Events description: Submit and query complex events - name: Rules description: Manage business rules and rule sets - name: Scorecards description: Manage metric scorecards and dashboards security: - bearerAuth: [] paths: /rules: get: operationId: listRules summary: List business rules description: >- Retrieve all business rules defined in the project. tags: - Rules parameters: - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' responses: '200': description: List of business rules content: application/json: schema: type: object properties: totalCount: type: integer data: type: array items: $ref: '#/components/schemas/Rule' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createRule summary: Create a business rule description: >- Create a new business rule in the project. tags: - Rules requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateRuleRequest' responses: '201': description: Rule created content: application/json: schema: $ref: '#/components/schemas/Rule' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /rules/{ruleId}: get: operationId: getRule summary: Get a business rule description: >- Retrieve details of a specific business rule. tags: - Rules parameters: - $ref: '#/components/parameters/ruleId' responses: '200': description: Rule details content: application/json: schema: $ref: '#/components/schemas/Rule' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateRule summary: Update a business rule description: >- Update an existing business rule. tags: - Rules parameters: - $ref: '#/components/parameters/ruleId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateRuleRequest' responses: '200': description: Rule updated content: application/json: schema: $ref: '#/components/schemas/Rule' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteRule summary: Delete a business rule description: >- Delete a business rule from the project. tags: - Rules parameters: - $ref: '#/components/parameters/ruleId' responses: '204': description: Rule deleted '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /decision-tables: get: operationId: listDecisionTables summary: List decision tables description: >- Retrieve all decision tables in the project. tags: - Decision Tables parameters: - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' responses: '200': description: List of decision tables content: application/json: schema: type: object properties: totalCount: type: integer data: type: array items: $ref: '#/components/schemas/DecisionTable' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createDecisionTable summary: Create a decision table description: >- Create a new decision table in the project. tags: - Decision Tables requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDecisionTableRequest' responses: '201': description: Decision table created content: application/json: schema: $ref: '#/components/schemas/DecisionTable' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /decision-tables/{tableId}: get: operationId: getDecisionTable summary: Get a decision table description: >- Retrieve details of a specific decision table. tags: - Decision Tables parameters: - $ref: '#/components/parameters/tableId' responses: '200': description: Decision table details content: application/json: schema: $ref: '#/components/schemas/DecisionTable' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateDecisionTable summary: Update a decision table description: >- Update an existing decision table. tags: - Decision Tables parameters: - $ref: '#/components/parameters/tableId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDecisionTableRequest' responses: '200': description: Decision table updated content: application/json: schema: $ref: '#/components/schemas/DecisionTable' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteDecisionTable summary: Delete a decision table description: >- Delete a decision table from the project. tags: - Decision Tables parameters: - $ref: '#/components/parameters/tableId' responses: '204': description: Decision table deleted '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /events: post: operationId: submitEvent summary: Submit an event description: >- Submit a complex event for processing by the inference engine. tags: - Events requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubmitEventRequest' responses: '202': description: Event accepted for processing content: application/json: schema: $ref: '#/components/schemas/EventResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' get: operationId: listEvents summary: List processed events description: >- Retrieve a list of processed events with optional filters. tags: - Events parameters: - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' - name: eventType in: query description: Filter by event type schema: type: string - name: startTime in: query description: Filter events after this time schema: type: string format: date-time - name: endTime in: query description: Filter events before this time schema: type: string format: date-time responses: '200': description: List of events content: application/json: schema: type: object properties: totalCount: type: integer data: type: array items: $ref: '#/components/schemas/Event' '401': $ref: '#/components/responses/Unauthorized' /events/{eventId}: get: operationId: getEvent summary: Get an event description: >- Retrieve details and processing result of a specific event. tags: - Events parameters: - $ref: '#/components/parameters/eventId' responses: '200': description: Event details content: application/json: schema: $ref: '#/components/schemas/Event' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /agents: get: operationId: listAgents summary: List inference agents description: >- Retrieve all inference agents and their current status. tags: - Agents responses: '200': description: List of agents content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Agent' '401': $ref: '#/components/responses/Unauthorized' /agents/{agentId}: get: operationId: getAgent summary: Get an inference agent description: >- Retrieve details and status of a specific inference agent. tags: - Agents parameters: - $ref: '#/components/parameters/agentId' responses: '200': description: Agent details content: application/json: schema: $ref: '#/components/schemas/Agent' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /agents/{agentId}/start: post: operationId: startAgent summary: Start an inference agent description: >- Start a stopped inference agent. tags: - Agents parameters: - $ref: '#/components/parameters/agentId' responses: '200': description: Agent started content: application/json: schema: $ref: '#/components/schemas/Agent' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /agents/{agentId}/stop: post: operationId: stopAgent summary: Stop an inference agent description: >- Stop a running inference agent. tags: - Agents parameters: - $ref: '#/components/parameters/agentId' responses: '200': description: Agent stopped content: application/json: schema: $ref: '#/components/schemas/Agent' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /scorecards: get: operationId: listScorecards summary: List scorecards description: >- Retrieve all metric scorecards for monitoring rule performance. tags: - Scorecards responses: '200': description: List of scorecards content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Scorecard' '401': $ref: '#/components/responses/Unauthorized' /channels: get: operationId: listChannels summary: List event channels description: >- Retrieve all configured event channels and destinations. tags: - Channels responses: '200': description: List of channels content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Channel' '401': $ref: '#/components/responses/Unauthorized' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 bearer token for TIBCO BusinessEvents API access parameters: ruleId: name: ruleId in: path required: true description: Rule unique identifier schema: type: string tableId: name: tableId in: path required: true description: Decision table unique identifier schema: type: string eventId: name: eventId in: path required: true description: Event unique identifier schema: type: string agentId: name: agentId in: path required: true description: Agent unique identifier schema: type: string offset: name: offset in: query description: Number of items to skip for pagination schema: type: integer default: 0 minimum: 0 limit: name: limit in: query description: Maximum number of items to return schema: type: integer default: 25 minimum: 1 maximum: 100 responses: Unauthorized: description: Authentication credentials are missing or invalid BadRequest: description: The request body or parameters are invalid NotFound: description: The requested resource was not found schemas: Rule: type: object properties: id: type: string description: Unique identifier for the rule name: type: string description: Rule name description: type: string description: Rule description priority: type: integer description: Rule execution priority condition: type: string description: Rule condition expression action: type: string description: Rule action expression enabled: type: boolean description: Whether the rule is enabled ruleSetId: type: string description: Parent rule set identifier createdTime: type: string format: date-time modifiedTime: type: string format: date-time CreateRuleRequest: type: object required: - name - condition - action properties: name: type: string description: Rule name minLength: 1 description: type: string priority: type: integer default: 5 condition: type: string description: Rule condition expression action: type: string description: Rule action expression enabled: type: boolean default: true ruleSetId: type: string DecisionTable: type: object properties: id: type: string description: Unique identifier for the decision table name: type: string description: Decision table name description: type: string description: Decision table description columns: type: array items: $ref: '#/components/schemas/DecisionTableColumn' description: Table columns (conditions and actions) rows: type: array items: $ref: '#/components/schemas/DecisionTableRow' description: Table rows (rules) createdTime: type: string format: date-time modifiedTime: type: string format: date-time DecisionTableColumn: type: object properties: id: type: string name: type: string type: type: string enum: - condition - action dataType: type: string enum: - string - integer - double - boolean - datetime DecisionTableRow: type: object properties: id: type: string values: type: array items: type: string description: Cell values in column order enabled: type: boolean CreateDecisionTableRequest: type: object required: - name - columns properties: name: type: string description: type: string columns: type: array items: $ref: '#/components/schemas/DecisionTableColumn' rows: type: array items: $ref: '#/components/schemas/DecisionTableRow' Event: type: object properties: id: type: string description: Unique identifier for the event type: type: string description: Event type name payload: type: object additionalProperties: true description: Event data payload timestamp: type: string format: date-time description: When the event occurred status: type: string enum: - received - processing - processed - error description: Event processing status result: type: object additionalProperties: true description: Processing result data SubmitEventRequest: type: object required: - type - payload properties: type: type: string description: Event type name payload: type: object additionalProperties: true description: Event data payload correlationId: type: string description: Correlation identifier for event tracking EventResponse: type: object properties: id: type: string description: Assigned event identifier status: type: string description: Initial processing status correlationId: type: string description: Correlation identifier Agent: type: object properties: id: type: string description: Unique identifier for the agent name: type: string description: Agent name status: type: string enum: - running - stopped - error description: Agent status type: type: string description: Agent type rulesLoaded: type: integer description: Number of rules loaded by the agent eventsProcessed: type: integer description: Total events processed by the agent startTime: type: string format: date-time description: When the agent was last started uptime: type: string description: Agent uptime duration Scorecard: type: object properties: id: type: string description: Unique identifier for the scorecard name: type: string description: Scorecard name description: type: string description: Scorecard description metrics: type: array items: type: object properties: name: type: string value: type: number unit: type: string threshold: type: number description: Metrics tracked by the scorecard Channel: type: object properties: id: type: string description: Unique identifier for the channel name: type: string description: Channel name type: type: string enum: - jms - http - kafka - local description: Channel transport type destination: type: string description: Channel destination name or URI status: type: string enum: - active - inactive description: Channel status