Deutsche Telekom EventSubscription API

An EventSubscription declares that your application wants to receive events of a specific type. You can configure the delivery mechanism (callback or server-sent events), payload format, and subscriber-side filtering criteria.

OpenAPI Specification

deutsche-telekom-eventsubscription-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog EventSubscription API
  description: API of the TARDIS control plane. With this API configuration connectivity between different Tardis instances in ensured
  contact:
    name: TARDIS
    url: https://developer.telekom.de/docs/src/tardis_customer_handbook/support/
    email: FMB_TARDIS_Support@telekom.de
  version: 1.0.0
  x-api-category: TARDIS
  x-vendor: false
servers:
- url: https://api.telekom.de/controlplane/v1
tags:
- name: EventSubscription
  description: 'An EventSubscription declares that your application wants to receive

    events of a specific type. You can configure the delivery mechanism

    (callback or server-sent events), payload format, and subscriber-side

    filtering criteria.

    '
paths:
  /applications/{applicationId}/eventsubscriptions:
    get:
      tags:
      - EventSubscription
      summary: Find all EventSubscriptions
      description: Find all EventSubscriptions of this application
      operationId: getAllEventSubscriptions
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - $ref: common.yaml#/components/parameters/Limit
      - $ref: common.yaml#/components/parameters/Offset
      - $ref: common.yaml#/components/parameters/Sort
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              $ref: common.yaml#/components/headers/XTotalCount
            X-Result-Count:
              $ref: common.yaml#/components/headers/XResultCount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionListResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read - tardis:user:obfuscated
  /applications/{applicationId}/eventsubscriptions/{eventSubscriptionName}:
    get:
      tags:
      - EventSubscription
      summary: Find an existing EventSubscription
      description: Find an existing EventSubscription
      operationId: getEventSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: eventSubscriptionName
        description: The name of the EventSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read - tardis:user:obfuscated
  /applications/{applicationId}/eventsubscriptions/{eventSubscriptionName}/status:
    get:
      tags:
      - EventSubscription
      summary: Find an existing EventSubscription and return its status
      description: Find an existing EventSubscription and return its status
      operationId: getEventSubscriptionStatus
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: eventSubscriptionName
        description: The name of the EventSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: common.yaml#/components/schemas/ResourceStatusResponse
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
components:
  schemas:
    EventSubscription:
      type: object
      description: 'Declaration that an application subscribes to events of a specific type.

        Maps to EventSubscriptionSpec in the EventSubscription CR.

        '
      properties:
        eventType:
          type: string
          description: 'Dot-separated event type identifier (e.g. "de.telekom.eni.quickstart.v1"). References the EventType CR.

            '
          minLength: 1
          example: de.telekom.eni.quickstart.v1
        delivery:
          $ref: '#/components/schemas/Delivery'
        trigger:
          $ref: '#/components/schemas/EventTrigger'
        scopes:
          type: array
          description: 'Selects which publisher-defined scopes to subscribe to. Must match scope names defined on the corresponding EventExposure. Maps to EventSubscriptionSpec.Scopes in the EventSubscription CR.

            '
          items:
            type: string
          example:
          - high-priority
    ResponseFilter:
      type: object
      description: Controls which fields are included or excluded from the event payload.
      properties:
        paths:
          type: array
          description: JSON paths to include or exclude from the event payload.
          items:
            type: string
          example:
          - $.data.orderId
          - $.data.status
        mode:
          $ref: '#/components/schemas/ResponseFilterMode'
    EventTrigger:
      type: object
      description: 'Defines filtering criteria for event delivery.

        Maps to EventTrigger in the EventExposure/EventSubscription CR.

        '
      properties:
        responseFilter:
          $ref: '#/components/schemas/ResponseFilter'
        selectionFilter:
          $ref: '#/components/schemas/SelectionFilter'
    EventSubscriptionApproval:
      type: object
      readOnly: true
      description: Approval status of the event subscription.
      properties:
        status:
          type: string
          example: granted
        comment:
          type: string
          example: trusted team
        decider:
          type: string
          example: hyperion@telekom.de
        timestamp:
          type: string
          format: date-time
          example: '2022-09-28T16:05:46.384Z'
    Delivery:
      type: object
      description: 'Configures how events are delivered to the subscriber.

        Maps to EventSubscriptionSpec.Delivery in the EventSubscription CR.

        '
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/DeliveryType'
        payload:
          $ref: '#/components/schemas/PayloadType'
        callback:
          type: string
          format: uri
          description: 'URL where events are delivered. Required when type is "Callback", must not be set for "ServerSentEvent".

            '
          example: https://myapp.example.com/events/callback
        eventRetentionTime:
          type: string
          description: How long events are retained for this subscriber.
          example: 7d
        circuitBreakerOptOut:
          type: boolean
          description: Disables the circuit breaker for this subscription.
          default: false
        retryableStatusCodes:
          type: array
          description: HTTP status codes that should trigger a retry.
          items:
            type: integer
          example:
          - 502
          - 503
          - 504
        redeliveriesPerSecond:
          type: integer
          description: Limits the rate of event redeliveries.
          example: 10
        enforceGetHttpRequestMethodForHealthCheck:
          type: boolean
          description: Forces GET for health check probes instead of HEAD.
          default: false
    PayloadType:
      enum:
      - Data
      - DataRef
      type: string
      description: 'Defines the event payload format.

        Maps to EventSubscriptionSpec.Delivery.Payload in the EventSubscription CR.

        '
    DeliveryType:
      enum:
      - Callback
      - ServerSentEvent
      type: string
      description: 'Defines how events are delivered to subscribers.

        Maps to EventSubscriptionSpec.Delivery.Type in the EventSubscription CR.

        '
    EventSubscriptionResponse:
      type: object
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/EventSubscription'
      - properties:
          name:
            type: string
            readOnly: true
            example: de-telekom-eni-quickstart-v1
          zone:
            type: string
            readOnly: true
            description: 'The zone where this subscription is placed. Maps to EventSubscriptionSpec.Zone in the EventSubscription CR.

              '
          url:
            type: string
            readOnly: true
            description: 'SSE endpoint URL for this subscription. Set when delivery type is ServerSentEvent. Maps to EventSubscriptionStatus.URL.

              '
            example: https://stargate-playground.live.dhei.telekom.de/sse/eni/quickstart/v1
          subscriptionId:
            type: string
            readOnly: true
            description: 'Unique identifier of the subscriber. Set when delivery type is ServerSentEvent. Maps to EventSubscriptionStatus.SubscriptionId.

              '
          status:
            $ref: common.yaml#/components/schemas/Status
          application:
            $ref: common.yaml#/components/schemas/ApplicationRef
          team:
            $ref: common.yaml#/components/schemas/TeamRef
          approval:
            $ref: '#/components/schemas/EventSubscriptionApproval'
    EventSubscriptionListResponse:
      properties:
        paging:
          $ref: common.yaml#/components/schemas/Paging
        _links:
          $ref: common.yaml#/components/schemas/Links
        items:
          type: array
          items:
            $ref: '#/components/schemas/EventSubscriptionResponse'
    ResponseFilterMode:
      enum:
      - Include
      - Exclude
      type: string
      description: Controls whether the response filter includes or excludes the specified fields.
    SelectionFilter:
      type: object
      description: Defines criteria for selecting which events are delivered.
      properties:
        attributes:
          type: object
          description: 'Simple key-value equality matches on CloudEvents attributes. All entries are AND-ed together.

            '
          additionalProperties:
            type: string
          example:
            source: de.telekom.eni.quickstart
            type: de.telekom.eni.quickstart.v1
        expression:
          type: object
          description: 'Arbitrary JSON filter expression tree using logical operators (and, or) and comparisons (eq, ge, gt, le, lt, ne). Passed through to the configuration backend without structural validation.

            '
          additionalProperties: true