Microsoft.EventGrid topics 2018-05-01-preview

Bicep resource definition

The topics resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.EventGrid/topics resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.EventGrid/topics@2018-05-01-preview' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  properties: {
    inputSchema: 'string'
    inputSchemaMapping: {
      inputSchemaMappingType: 'string'
      // For remaining properties, see InputSchemaMapping objects
    }
  }
}

InputSchemaMapping objects

Set the inputSchemaMappingType property to specify the type of object.

For Json, use:

  inputSchemaMappingType: 'Json'
  properties: {
    dataVersion: {
      defaultValue: 'string'
      sourceField: 'string'
    }
    eventTime: {
      sourceField: 'string'
    }
    eventType: {
      defaultValue: 'string'
      sourceField: 'string'
    }
    id: {
      sourceField: 'string'
    }
    subject: {
      defaultValue: 'string'
      sourceField: 'string'
    }
    topic: {
      sourceField: 'string'
    }
  }

Property values

topics

Name Description Value
name The resource name string (required)

Character limit: 3-50

Valid characters:
Alphanumerics and hyphens.
location Location of the resource string (required)
tags Tags of the resource Dictionary of tag names and values. See Tags in templates
properties Properties of the topic TopicProperties

TopicProperties

Name Description Value
inputSchema This determines the format that Event Grid should expect for incoming events published to the topic. 'CloudEventV01Schema'
'CustomEventSchema'
'EventGridSchema'
inputSchemaMapping This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of a source schema to various required properties of the EventGridEvent schema. InputSchemaMapping

InputSchemaMapping

Name Description Value
inputSchemaMappingType Set the object type Json (required)

JsonInputSchemaMapping

Name Description Value
inputSchemaMappingType Type of the custom mapping 'Json' (required)
properties JSON Properties of the input schema mapping JsonInputSchemaMappingProperties

JsonInputSchemaMappingProperties

Name Description Value
dataVersion The mapping information for the DataVersion property of the Event Grid Event. JsonFieldWithDefault
eventTime The mapping information for the EventTime property of the Event Grid Event. JsonField
eventType The mapping information for the EventType property of the Event Grid Event. JsonFieldWithDefault
id The mapping information for the Id property of the Event Grid Event. JsonField
subject The mapping information for the Subject property of the Event Grid Event. JsonFieldWithDefault
topic The mapping information for the Topic property of the Event Grid Event. JsonField

JsonFieldWithDefault

Name Description Value
defaultValue The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload. string
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string

JsonField

Name Description Value
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create Azure Event Grid Custom Topic and Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a webhook subscription. Template originally authored by John Downs.
Custom Azure Event Grid Topic/Subscription with CloudEvents

Deploy to Azure
Creates a custom Azure Event Grid topic, a webhook subscription having CloudEvents schema, and a Logic App as an event handler. Template originally authored by Justin Yoo.
Create Event Grid custom topic and event hub handler

Deploy to Azure
Creates an Azure Event Grid custom topic and event hub to handle the events.
Create Azure Event Grid Custom Topic and Queue Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a service bus queue subscription. Template originally authored by Markus Meyer.
Create Azure Event Grid Custom Topic Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a service bus topic subscription. Template originally authored by Markus Meyer.

ARM template resource definition

The topics resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.EventGrid/topics resource, add the following JSON to your template.

{
  "type": "Microsoft.EventGrid/topics",
  "apiVersion": "2018-05-01-preview",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "inputSchema": "string",
    "inputSchemaMapping": {
      "inputSchemaMappingType": "string"
      // For remaining properties, see InputSchemaMapping objects
    }
  }
}

InputSchemaMapping objects

Set the inputSchemaMappingType property to specify the type of object.

For Json, use:

  "inputSchemaMappingType": "Json",
  "properties": {
    "dataVersion": {
      "defaultValue": "string",
      "sourceField": "string"
    },
    "eventTime": {
      "sourceField": "string"
    },
    "eventType": {
      "defaultValue": "string",
      "sourceField": "string"
    },
    "id": {
      "sourceField": "string"
    },
    "subject": {
      "defaultValue": "string",
      "sourceField": "string"
    },
    "topic": {
      "sourceField": "string"
    }
  }

Property values

topics

Name Description Value
type The resource type 'Microsoft.EventGrid/topics'
apiVersion The resource api version '2018-05-01-preview'
name The resource name string (required)

Character limit: 3-50

Valid characters:
Alphanumerics and hyphens.
location Location of the resource string (required)
tags Tags of the resource Dictionary of tag names and values. See Tags in templates
properties Properties of the topic TopicProperties

TopicProperties

Name Description Value
inputSchema This determines the format that Event Grid should expect for incoming events published to the topic. 'CloudEventV01Schema'
'CustomEventSchema'
'EventGridSchema'
inputSchemaMapping This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of a source schema to various required properties of the EventGridEvent schema. InputSchemaMapping

InputSchemaMapping

Name Description Value
inputSchemaMappingType Set the object type Json (required)

JsonInputSchemaMapping

Name Description Value
inputSchemaMappingType Type of the custom mapping 'Json' (required)
properties JSON Properties of the input schema mapping JsonInputSchemaMappingProperties

JsonInputSchemaMappingProperties

Name Description Value
dataVersion The mapping information for the DataVersion property of the Event Grid Event. JsonFieldWithDefault
eventTime The mapping information for the EventTime property of the Event Grid Event. JsonField
eventType The mapping information for the EventType property of the Event Grid Event. JsonFieldWithDefault
id The mapping information for the Id property of the Event Grid Event. JsonField
subject The mapping information for the Subject property of the Event Grid Event. JsonFieldWithDefault
topic The mapping information for the Topic property of the Event Grid Event. JsonField

JsonFieldWithDefault

Name Description Value
defaultValue The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload. string
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string

JsonField

Name Description Value
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create Azure Event Grid Custom Topic and Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a webhook subscription. Template originally authored by John Downs.
Custom Azure Event Grid Topic/Subscription with CloudEvents

Deploy to Azure
Creates a custom Azure Event Grid topic, a webhook subscription having CloudEvents schema, and a Logic App as an event handler. Template originally authored by Justin Yoo.
Create Event Grid custom topic and event hub handler

Deploy to Azure
Creates an Azure Event Grid custom topic and event hub to handle the events.
Create Azure Event Grid Custom Topic and Queue Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a service bus queue subscription. Template originally authored by Markus Meyer.
Create Azure Event Grid Custom Topic Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a service bus topic subscription. Template originally authored by Markus Meyer.

Terraform (AzAPI provider) resource definition

The topics resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.EventGrid/topics resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.EventGrid/topics@2018-05-01-preview"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      inputSchema = "string"
      inputSchemaMapping = {
        inputSchemaMappingType = "string"
        // For remaining properties, see InputSchemaMapping objects
      }
    }
  })
}

InputSchemaMapping objects

Set the inputSchemaMappingType property to specify the type of object.

For Json, use:

  inputSchemaMappingType = "Json"
  properties = {
    dataVersion = {
      defaultValue = "string"
      sourceField = "string"
    }
    eventTime = {
      sourceField = "string"
    }
    eventType = {
      defaultValue = "string"
      sourceField = "string"
    }
    id = {
      sourceField = "string"
    }
    subject = {
      defaultValue = "string"
      sourceField = "string"
    }
    topic = {
      sourceField = "string"
    }
  }

Property values

topics

Name Description Value
type The resource type "Microsoft.EventGrid/topics@2018-05-01-preview"
name The resource name string (required)

Character limit: 3-50

Valid characters:
Alphanumerics and hyphens.
location Location of the resource string (required)
parent_id To deploy to a resource group, use the ID of that resource group. string (required)
tags Tags of the resource Dictionary of tag names and values.
properties Properties of the topic TopicProperties

TopicProperties

Name Description Value
inputSchema This determines the format that Event Grid should expect for incoming events published to the topic. "CloudEventV01Schema"
"CustomEventSchema"
"EventGridSchema"
inputSchemaMapping This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of a source schema to various required properties of the EventGridEvent schema. InputSchemaMapping

InputSchemaMapping

Name Description Value
inputSchemaMappingType Set the object type Json (required)

JsonInputSchemaMapping

Name Description Value
inputSchemaMappingType Type of the custom mapping "Json" (required)
properties JSON Properties of the input schema mapping JsonInputSchemaMappingProperties

JsonInputSchemaMappingProperties

Name Description Value
dataVersion The mapping information for the DataVersion property of the Event Grid Event. JsonFieldWithDefault
eventTime The mapping information for the EventTime property of the Event Grid Event. JsonField
eventType The mapping information for the EventType property of the Event Grid Event. JsonFieldWithDefault
id The mapping information for the Id property of the Event Grid Event. JsonField
subject The mapping information for the Subject property of the Event Grid Event. JsonFieldWithDefault
topic The mapping information for the Topic property of the Event Grid Event. JsonField

JsonFieldWithDefault

Name Description Value
defaultValue The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload. string
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string

JsonField

Name Description Value
sourceField Name of a field in the input event schema that's to be used as the source of a mapping. string