Fortellis Event Relay Data Plane Proxy (AsyncAPI)

AsyncAPI specification for the Fortellis Event Relay data-plane proxy used by event sources to publish events into Fortellis for fan-out to subscribers.

Fortellis Event Relay Data Plane Proxy (AsyncAPI) is one of 8 APIs that CDK Global publishes on the APIs.io network, described by an AsyncAPI event-driven specification.

Tagged areas include Events, AsyncAPI, Event Relay, and Publish-Subscribe. The published artifact set on APIs.io includes an AsyncAPI specification.

AsyncAPI Specification

fortellis-event-relay-data-plane-proxy-asyncapi.yml Raw ↑
swagger: '2.0'

info:
  version: '1.0.0'
  title: Fortellis Event Relay Data API
  description: Provides an Event Source (Publisher) the ability to post event through Fortellis Event Relay.
  contact:
    name: Fortellis Team
    url: https://fortellis.io
    email: [email protected]

host: event-relay.fortellis.io
basePath: /
schemes:
  - https

securityDefinitions:
  permission-model:
    type: oauth2
    flow: implicit
    authorizationUrl: https://identity.fortellis.io/oauth2/
    scopes:
      read-write: Read and write access to the Fortellis-Event-Relay Data API

paths:
  /v2/events:
    post:
      summary: Post an event.
      description: |
        Publishes an event record.
        Authentication information provides a Source context that defines the event type schema and version used to validate the message body.  Consult the Control Plane Api specification for details.
      operationId: postEvent
      tags:
        - events
      parameters:
        - $ref: '#/parameters/header.X-Request-Id'
        - $ref: '#/parameters/header.Authorization'
        - $ref: '#/parameters/header.Subscription-Id'
        - $ref: '#/parameters/header.Data-Owner-Id'
        - $ref: '#/parameters/header.partitionKey'
        - $ref: '#/parameters/body.Event'
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        200:
          $ref: '#/responses/EventCreated'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        403:
          $ref: '#/responses/Forbidden'
        500:
          $ref: '#/responses/InternalServerError'
        503:
          $ref: '#/responses/ServiceUnavailable'

parameters:
  header.Authorization:
    name: Authorization
    in: header
    type: string
    required: true
    description: |
      Contains credentials that allows the caller to authenticate itself with the
      API. See RFC 7235 and RFC 7617 for more details.

  header.X-Request-Id:
    name: X-Request-Id
    in: header
    type: string
    format: uuid
    description: |
      A correlation ID that should mirror the value of the X-Request-Id request
      header provided by the client.

  header.Subscription-Id:
    name: Subscription-Id
    in: header
    type: string
    format: uuid
    required: true
    description: |
      A Fortellis Subscription-Id.

  header.Data-Owner-Id:
    name: Data-Owner-Id
    in: header
    type: string
    format: uuid
    required: false
    description: |
      A Fortellis Organization Id that identifies the organization represented by the event.

  header.partitionKey:
    name: partitionKey
    in: header
    type: string
    required: false
    description: |
      A value used to partition the records to achieve parallelism and ordering.
      Records with the same partitionKey are guaranteed to be published to consumers in published order.

  body.Event:
    name: CreateEvent
    in: body
    required: true
    schema:
      $ref: '#/definitions/Event'
    description: The JSON request body to create an event.  Serialization is controlled by the corresponding source's schema and version.

responses:
  EventCreated:
    description: OK
    headers:
      X-Request-Id:
        type: string
        #description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/EventCreated'


  BadRequest:
    description: 400 - Bad Request
    headers:
      X-Request-Id:
        type: string
        description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/ErrorResponse'

  Unauthorized:
    description: 401 - Unauthorized
    headers:
      X-Request-Id:
        type: string
        description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/ErrorResponse'

  Forbidden:
    description: 403 - Forbidden
    headers:
      X-Request-Id:
        type: string
        description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/ErrorResponse'

  InternalServerError:
    description: 500 - Internal Server Error
    headers:
      X-Request-Id:
        type: string
        description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/ErrorResponse'
  ServiceUnavailable:
    description: 503 - Service Unavailable
    headers:
      X-Request-Id:
        type: string
        description: The matching correlation identifier to the request by the client.
    schema:
      $ref: '#/definitions/ErrorResponse'

definitions:

  Event:
    description: A single event record matching the defined event type schema.
    type: object
    example:
      key1: value1
      key2: value2
      key3:
        - arr-value1
        - arr-value2
        - arr-value3
      key4:
        sub-key1: sub-value1
        sub-key2: sub-value2

  EventCreated:
    description: Event Created Response.
    properties:
      eventId:
        type: string
        format: uuid
        description: Unique trail id that will be assigned to record by system.
    required:
      - eventId
    example:
      eventId: 848f1d80-c5e2-11ea-87d0-0242ac130003

  # This is a standard error object for 4XX and 5XX responses.
  ErrorResponse:
    description: Common error response object.
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
    required:
      - code
      - message
    example:
      code: 400
      message: Bad Request