openapi: 3.2.0 info: title: Fenergo Nebula Event Ingress Events API description: '## Purpose of the API The purpose of the Event Ingress API is to is to provide an endpoint for third party applications to send events to, which will allow Fen-X to process entity related events. Processing of an event will trigger the correspondent journey depending on the event type and sub type received.' version: '1.0' servers: - url: /eventingress security: - Bearer: [] tags: - name: Events paths: /v1/events/{eventId}: get: tags: - Events summary: Get an ingress event with related entities description: This method will return an Ingress Event based on eventId. operationId: GetEvent parameters: - name: eventId in: path description: Id of an event required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: successfully return desired event's data. content: application/json: schema: $ref: '#/components/schemas/GetEventResponseServiceResponse' '400': description: The request has missing/invalid values. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /v1/events-by-filter: post: tags: - Events summary: Get events within a date range (Obsolete) description: 'This endpoint is obsolete and was terminated on 2026-02-01. Please use ''/v1/events-by-filter-paginated'' endpoint instead. This method will return events that occurred between the provided start and end dates.' operationId: GetEventsByFilter parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.GetEventsByFilterRequest class that represents get events by filter request. content: application/json: schema: $ref: '#/components/schemas/GetEventsByFilterRequest' responses: '200': description: Successfully return desired events' data. content: application/json: schema: $ref: '#/components/schemas/GetEventSimpleResponseListServiceResponse' '400': description: The request has missing/invalid values. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT deprecated: true /v1/events-by-filter-paginated: post: tags: - Events summary: Get events within a date range description: This method will return events that occurred between the provided start and end dates. operationId: GetEventsByFilterPaginated parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.GetEventsByFilterRequest class that represents get events by filter request. content: application/json: schema: $ref: '#/components/schemas/GetEventsByFilterRequest' responses: '200': description: Successfully return desired events' data. content: application/json: schema: $ref: '#/components/schemas/GetEventSimpleResponsePaginatedResponseServiceResponse' '400': description: The request has missing/invalid values. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /v1/events/{eventId}/messageUrl: get: tags: - Events summary: Get processed or received message of ingress event description: 'This method will return an Ingress Event''s S3 message. Warning: Method not to be used in any integrations. It''s purpose is to facilitate manual investigations via Integration Hub. The file contents/schema it returns is expected to change overtime as new functionality is released.' operationId: GetEventMessageUrl parameters: - name: eventId in: path description: Id of an event required: true schema: type: string - name: type in: query description: Type of an event's message schema: $ref: '#/components/schemas/EventMessageType' - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: successfully return desired event's message. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' '400': description: The request has missing/invalid values. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /v1/events: post: tags: - Events summary: Send an ingress event description: This method will publish the event to event bridge in order to communicate with Business Process. operationId: SendEvent parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Fenergo.Nebula.EventIngress.Ingress.Commands.Dto.Command.SendEventRequestDto class that represents send event request. content: application/json: schema: $ref: '#/components/schemas/SendEventRequestDto' examples: Create Entity Request: value: eventType: externaldata eventSubtype: createentity correlationId: ad67fe8e-09de-4aa2-997f-7c0a5a63c507 source: Test Organization payload: type: Individual targetEntity: Related Party properties: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: 674ccef1-cfdc-46af-97f8-340b24ab7f43 collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Spain city: Madrid street: C. de Sevilla 93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2: properties: country: Spain city: Barcelona street: Carrer de Girona dataSources: entityDataMetadata: entityType: string eventIngress: eventType: string eventSubtype: string changedFields: changedFields: - key: string relatedClient: properties: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: 674ccef1-cfdc-46af-97f8-340b24ab7f43 collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Spain city: Madrid street: C. de Sevilla 93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2: properties: country: Spain city: Barcelona street: Carrer de Girona policyJurisdiction: Global policyJurisdictions: - string alternateId: 1124efd2-3423-40f5-9bdb-fae66c7fa88a category: - string accessLayers: geographic: - Global businessRelated: - Enterprise Update Entity Request: value: eventType: externaldata eventSubtype: updateentity entityId: af2c0eca-bf1c-460d-afc0-046f61233d4f correlationId: 29c7aebf-fcb2-4016-af91-53033bd4f3f4 source: Test Organization payload: type: Individual targetEntity: Related Party properties: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: 674ccef1-cfdc-46af-97f8-340b24ab7f43 collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Spain city: Madrid street: C. de Sevilla 93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2: properties: country: Spain city: Barcelona street: Carrer de Girona dataSources: entityDataMetadata: entityType: string eventIngress: eventType: string eventSubtype: string changedFields: changedFields: - key: string relatedClient: properties: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: 674ccef1-cfdc-46af-97f8-340b24ab7f43 collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Spain city: Madrid street: C. de Sevilla 93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2: properties: country: Spain city: Barcelona street: Carrer de Girona policyJurisdiction: Global policyJurisdictions: - string alternateId: 1124efd2-3423-40f5-9bdb-fae66c7fa88a category: - string accessLayers: geographic: - Global businessRelated: - Enterprise Create Alert: value: eventType: transactionmonitoring eventSubtype: createalert entityId: c9d4fe5a-97b5-45b1-a7d4-1b4e0b4c2c57 correlationId: fcf2f6e7-da52-4625-92f8-d9adfb6ddf71 source: Test Organization payload: externalId: c511988c-4dba-41fb-977c-ddc997e8c606 hashId: d3e0fb42-58ad-4e39-8293-5271222bd34b creationDate: '2025-01-01T00:00:00' type: AML|ENT|FRD|EPA mainEntityId: 6476c1f7-537f-4965-8f6d-b989fe17c185 transactionIds: - 7581e2ab-4ac7-4f0c-8569-0504ba008b9f ruleId: rule-xyz ruleName: rule-xyz-name ruleDescription: rule-description-xyz ruleVersion: '0' source: TM|External alertScore: '10' Retrigger Alert: value: eventType: transactionmonitoring eventSubtype: retriggeralert correlationId: 966c7801-917e-4d13-92fd-6623bcb5759c source: Test Organization payload: alertId: 9d117a2c-ecb2-478d-ae84-6dec3dd5ece1 responses: '202': description: The request has been accepted for further processing. content: application/json: schema: $ref: '#/components/schemas/SendEventResponseServiceResponse' '400': description: The request has missing/invalid values. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /v1/events/types: get: tags: - Events summary: Request event types description: 'This endpoint is obsolete and was terminated on 2024-04-30. Please use ''/v1/event-types'' endpoint instead. This method will return a list of allowed event types with event subtypes.' operationId: GetEventTypes parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: Success. The list of event types with event subtypes is returned. content: application/json: schema: $ref: '#/components/schemas/GetEventTypesResponseServiceResponse' '403': description: The service is disabled. '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT deprecated: true components: schemas: EventStatusResponseDetailsDto: type: object properties: correlationKey: type: - string - 'null' description: Correlation Key id: type: - string - 'null' description: Identifier message: type: - string - 'null' description: Message additionalProperties: false SendEventRequestDto: type: object properties: eventType: type: - string - 'null' eventSubtype: type: - string - 'null' entityId: type: - string - 'null' format: uuid source: maxLength: 256 type: - string - 'null' payload: {} correlationId: maxLength: 512 type: - string - 'null' priority: type: - integer - 'null' format: int32 additionalProperties: false EventStatusDto: type: object properties: status: type: - string - 'null' description: The status of an event example: Processing statusDetails: $ref: '#/components/schemas/EventStatusDetailsDto' additionalProperties: false EventStatusDetailsDto: type: object properties: cause: type: - string - 'null' description: Cause of failure details: type: - array - 'null' items: $ref: '#/components/schemas/EventStatusResponseDetailsDto' description: Additional information about the failure warnings: type: - array - 'null' items: $ref: '#/components/schemas/EventStatusWarningDto' description: Warnings from event processing additionalProperties: false EventChangeDto: type: object properties: id: type: - string - 'null' description: The unique identifier for the event change. example: 123e4567-e89b-12d3-a456-426614174000 createdAt: type: string description: The time when the event change was created. format: date-time example: '2021-07-01T12:00:00Z' eventId: type: - string - 'null' description: The id of an event change. example: 123e4567-e89b-12d3-a456-426614174000 entityId: type: - string - 'null' description: The id of a related entity. example: 123e4567-e89b-12d3-a456-426614174000 taskId: type: - string - 'null' description: The id of a related task - if any exists. example: 123e4567-e89b-12d3-a456-426614174000 processingStatus: type: - string - 'null' description: The processing status of an event change. example: Processed journeyId: type: - string - 'null' description: The id of a related journey - if any exists. example: 123e4567-e89b-12d3-a456-426614174000 externalIdentifier: type: - string - 'null' description: 'The External Identifier provided in event as entityResolver - if any exists. Uses the format {ExternalDataKey}:{ExternalSystemId}' example: MDMId:123456 action: type: - string - 'null' description: The Entity Action performed - Create or Update example: Created additionalProperties: false SendEventResponse: type: object properties: eventId: type: string description: Id of an event format: uuid timeStamp: type: string description: DateTime of an event format: date-time additionalProperties: false description: Represents a response of ingress event GetEventResponse: type: object properties: eventId: type: - string - 'null' description: The id of an event example: 123e4567-e89b-12d3-a456-426614174000 source: type: - string - 'null' description: The source of an event example: externaldata status: $ref: '#/components/schemas/EventStatusDto' eventType: type: - string - 'null' description: The type of an event e.g. "externaldata" example: externaldata eventSubtype: type: - string - 'null' description: The subtype of an event e.g. "dataimport" example: dataimport correlationId: type: - string - 'null' description: The correlationId of an event example: 123e4567-e89b-12d3-a456-426614174000 priority: type: - integer - 'null' description: The priority of an event format: int32 example: 2 entityId: type: - string - 'null' description: The id of a related entity - if any exists example: 123e4567-e89b-12d3-a456-426614174000 receivedTime: type: string description: The time when an event was received in EventIngress format: date-time example: '2021-07-01T12:00:00Z' processedTime: type: - string - 'null' description: The time when an event was processed in EventIngress format: date-time example: '2021-07-01T12:00:00Z' eventData: description: The generic data of an event entities: type: - array - 'null' items: $ref: '#/components/schemas/EventChangeDto' description: The entities related to an event additionalProperties: false description: Represents the model for ingress events. EventTypeModel: type: object properties: key: type: - string - 'null' description: The event type's key e.g. "externaldata" example: externaldata displayName: type: - string - 'null' description: The event type's display name e.g. "External Data" example: External Data eventSubtypes: type: - array - 'null' items: $ref: '#/components/schemas/EventSubtypeModel' description: Supported event subtypes additionalProperties: false description: Represents the model for supported event types. GetEventTypesResponseServiceResponse: type: object properties: data: $ref: '#/components/schemas/GetEventTypesResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false GetEventSimpleResponsePaginatedResponseServiceResponse: type: object properties: data: $ref: '#/components/schemas/GetEventSimpleResponsePaginatedResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false SendEventResponseServiceResponse: type: object properties: data: $ref: '#/components/schemas/SendEventResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false Pager: required: - first type: object properties: first: type: integer format: int32 after: type: - string - 'null' additionalProperties: false EventDataSimple: type: object properties: eventIdentifier: type: - string - 'null' description: Identifier of the event integrationName: type: - string - 'null' description: Integration name additionalProperties: false description: Represents the model for ingress events. GetEventTypesResponse: type: object properties: eventTypes: type: - array - 'null' items: $ref: '#/components/schemas/EventTypeModel' description: Supported Event Types additionalProperties: false description: Represents a response containing all supported event types and subtypes GetEventsByFilterRequest: type: object properties: startDate: type: string description: The date from which to start the search format: date-time endDate: type: string description: The date to which to end the search format: date-time pager: $ref: '#/components/schemas/Pager' additionalProperties: false description: Represents a request to send ingress event ValidationErrorModelListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ValidationErrorModel' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false StringServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false EventStatusWarningDto: type: object properties: origin: type: - string - 'null' description: Origin of warning message: type: - string - 'null' description: Message additionalProperties: false EventMessageType: enum: - Received - Processed type: string GetEventSimpleResponseListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/GetEventSimpleResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false EventSubtypeModel: type: object properties: key: type: - string - 'null' description: The event subtype's key e.g. "createentity" example: createentity displayName: type: - string - 'null' description: The event subtype's display name e.g. "Create Entity" example: Create Entity additionalProperties: false description: Represents the model for supported event subtypes ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' errorMessage: type: - string - 'null' attemptedValue: {} errorCode: type: - string - 'null' additionalProperties: false GetEventResponseServiceResponse: type: object properties: data: $ref: '#/components/schemas/GetEventResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false GetEventSimpleResponse: required: - eventId - eventSubtype - eventType - receivedTime - source type: object properties: eventId: minLength: 1 type: string description: The id of an event example: 123e4567-e89b-12d3-a456-426614174000 source: minLength: 1 type: string description: The source of an event example: externaldata status: $ref: '#/components/schemas/EventStatusDto' eventType: minLength: 1 type: string description: The type of an event e.g. "externaldata" example: externaldata eventSubtype: minLength: 1 type: string description: The subtype of an event e.g. "dataimport" example: dataimport correlationId: type: - string - 'null' description: The correlationId of an event example: 123e4567-e89b-12d3-a456-426614174000 priority: type: - integer - 'null' description: The priority of an event format: int32 example: 2 entityId: type: - string - 'null' description: The id of a related entity - if any exists example: 123e4567-e89b-12d3-a456-426614174000 receivedTime: type: string description: The time when an event was received in EventIngress format: date-time example: '2021-07-01T12:00:00Z' eventData: $ref: '#/components/schemas/EventDataSimple' processedTime: type: - string - 'null' description: The time when an event was processed in EventIngress format: date-time example: '2021-07-01T12:00:00Z' additionalProperties: false description: Represents the model for ingress events. ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false GetEventSimpleResponsePaginatedResponse: type: object properties: items: type: - array - 'null' items: $ref: '#/components/schemas/GetEventSimpleResponse' nextToken: type: - string - 'null' hasNextPage: type: boolean additionalProperties: false securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header