Azure Event Grid Namespace Topics API

Namespace topic publish, receive, acknowledge

OpenAPI Specification

azure-event-grid-namespace-topics-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Azure Event Grid Publisher Namespace Topics API
  version: '2018-01-01'
  description: 'Data-plane REST API for publishing events to Azure Event Grid topics, domains,

    and namespace topics. Supports the Event Grid event schema, the CloudEvents 1.0

    schema, and custom schemas. Authentication is via Microsoft Entra ID OAuth 2.0

    bearer tokens or the topic''s shared-access key sent in the `aeg-sas-key` header

    (or a SAS token in the `aeg-sas-token` header).

    '
  contact:
    name: Azure Event Grid
    url: https://learn.microsoft.com/en-us/rest/api/eventgrid/
servers:
- url: https://{topic-endpoint}
  description: Event Grid topic or domain endpoint (e.g. https://my-topic.eastus-1.eventgrid.azure.net)
  variables:
    topic-endpoint:
      default: my-topic.eastus-1.eventgrid.azure.net
      description: Topic or domain endpoint host
tags:
- name: Namespace Topics
  description: Namespace topic publish, receive, acknowledge
paths:
  /topics/{topicName}:publish:
    post:
      summary: Publish CloudEvents to a namespace topic
      operationId: publishToNamespaceTopic
      tags:
      - Namespace Topics
      parameters:
      - in: path
        name: topicName
        required: true
        schema:
          type: string
      - in: query
        name: api-version
        schema:
          type: string
          default: '2023-11-01'
      requestBody:
        required: true
        content:
          application/cloudevents+json:
            schema:
              $ref: '#/components/schemas/CloudEvent'
          application/cloudevents-batch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CloudEvent'
      responses:
        '200':
          description: Published
      security:
      - sasKey: []
      - entra: []
  /topics/{topicName}/subscriptions/{subscriptionName}:receive:
    post:
      summary: Receive a batch of CloudEvents from a namespace topic subscription
      operationId: receiveEvents
      tags:
      - Namespace Topics
      parameters:
      - in: path
        name: topicName
        required: true
        schema:
          type: string
      - in: path
        name: subscriptionName
        required: true
        schema:
          type: string
      - in: query
        name: maxEvents
        schema:
          type: integer
      - in: query
        name: maxWaitTime
        schema:
          type: integer
      - in: query
        name: api-version
        schema:
          type: string
          default: '2023-11-01'
      responses:
        '200':
          description: Receive result
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      type: object
                      properties:
                        brokerProperties:
                          type: object
                          properties:
                            lockToken:
                              type: string
                            deliveryCount:
                              type: integer
                        event:
                          $ref: '#/components/schemas/CloudEvent'
      security:
      - sasKey: []
      - entra: []
  /topics/{topicName}/subscriptions/{subscriptionName}:acknowledge:
    post:
      summary: Acknowledge events from a namespace topic subscription
      operationId: acknowledgeEvents
      tags:
      - Namespace Topics
      parameters:
      - in: path
        name: topicName
        required: true
        schema:
          type: string
      - in: path
        name: subscriptionName
        required: true
        schema:
          type: string
      - in: query
        name: api-version
        schema:
          type: string
          default: '2023-11-01'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - lockTokens
              properties:
                lockTokens:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Acknowledge result
          content:
            application/json:
              schema:
                type: object
      security:
      - sasKey: []
      - entra: []
  /topics/{topicName}/subscriptions/{subscriptionName}:release:
    post:
      summary: Release locked events back to the queue
      operationId: releaseEvents
      tags:
      - Namespace Topics
      parameters:
      - in: path
        name: topicName
        required: true
        schema:
          type: string
      - in: path
        name: subscriptionName
        required: true
        schema:
          type: string
      - in: query
        name: api-version
        schema:
          type: string
          default: '2023-11-01'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - lockTokens
              properties:
                lockTokens:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Release result
      security:
      - sasKey: []
      - entra: []
  /topics/{topicName}/subscriptions/{subscriptionName}:reject:
    post:
      summary: Reject (dead-letter) locked events
      operationId: rejectEvents
      tags:
      - Namespace Topics
      parameters:
      - in: path
        name: topicName
        required: true
        schema:
          type: string
      - in: path
        name: subscriptionName
        required: true
        schema:
          type: string
      - in: query
        name: api-version
        schema:
          type: string
          default: '2023-11-01'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - lockTokens
              properties:
                lockTokens:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Reject result
      security:
      - sasKey: []
      - entra: []
components:
  schemas:
    CloudEvent:
      type: object
      required:
      - id
      - source
      - type
      - specversion
      properties:
        id:
          type: string
        source:
          type: string
          format: uri
        type:
          type: string
        specversion:
          type: string
          enum:
          - '1.0'
        time:
          type: string
          format: date-time
        datacontenttype:
          type: string
        subject:
          type: string
        data: {}
        data_base64:
          type: string
          format: byte
  securitySchemes:
    sasKey:
      type: apiKey
      in: header
      name: aeg-sas-key
      description: Topic shared-access key
    sasToken:
      type: apiKey
      in: header
      name: aeg-sas-token
      description: Topic shared-access signature token
    entra:
      type: oauth2
      description: Microsoft Entra ID OAuth 2.0 bearer token
      flows:
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes:
            https://eventgrid.azure.net/.default: Publish/receive Event Grid events