Microsoft.EventGrid topics 2020-10-15-preview
- Latest
- 2025-02-15
- 2024-12-15-preview
- 2024-06-01-preview
- 2023-12-15-preview
- 2023-06-01-preview
- 2022-06-15
- 2021-12-01
- 2021-10-15-preview
- 2021-06-01-preview
- 2020-10-15-preview
- 2020-06-01
- 2020-04-01-preview
- 2020-01-01-preview
- 2019-06-01
- 2019-02-01-preview
- 2019-01-01
- 2018-09-15-preview
- 2018-05-01-preview
- 2018-01-01
- 2017-09-15-preview
- 2017-06-15-preview
Bicep resource definition
The topics resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
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@2020-10-15-preview' = {
extendedLocation: {
name: 'string'
type: 'string'
}
identity: {
principalId: 'string'
tenantId: 'string'
type: 'string'
userAssignedIdentities: {
{customized property}: {
clientId: 'string'
principalId: 'string'
}
}
}
kind: 'string'
location: 'string'
name: 'string'
properties: {
inboundIpRules: [
{
action: 'string'
ipMask: 'string'
}
]
inputSchema: 'string'
inputSchemaMapping: {
inputSchemaMappingType: 'string'
// For remaining properties, see InputSchemaMapping objects
}
publicNetworkAccess: 'string'
}
sku: {
name: 'string'
}
tags: {
{customized property}: 'string'
}
}
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
ExtendedLocation
Name | Description | Value |
---|---|---|
name | Fully qualified name of the extended location. | string |
type | Type of the extended location. | string |
IdentityInfo
Name | Description | Value |
---|---|---|
principalId | The principal ID of resource identity. | string |
tenantId | The tenant ID of resource. | string |
type | The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. This property is currently not used and reserved for future usage. |
IdentityInfoUserAssignedIdentities |
IdentityInfoUserAssignedIdentities
Name | Description | Value |
---|
InboundIpRule
Name | Description | Value |
---|---|---|
action | Action to perform based on the match or no match of the IpMask. | 'Allow' |
ipMask | IP Address in CIDR notation e.g., 10.0.0.0/8. | string |
InputSchemaMapping
Name | Description | Value |
---|---|---|
inputSchemaMappingType | Set to 'Json' for type JsonInputSchemaMapping. | 'Json' (required) |
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 |
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 |
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 |
Microsoft.EventGrid/topics
Name | Description | Value |
---|---|---|
extendedLocation | Extended location of the resource. | ExtendedLocation |
identity | Identity information for the resource. | IdentityInfo |
kind | Kind of the resource. | 'Azure' 'AzureArc' |
location | Location of the resource. | string (required) |
name | The resource name | string (required) |
properties | Properties of the topic. | TopicProperties |
sku | The Sku pricing tier for the topic. | ResourceSku |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
ResourceSku
Name | Description | Value |
---|---|---|
name | The Sku name of the resource. The possible values are: Basic or Premium. | 'Basic' 'Premium' |
TopicProperties
Name | Description | Value |
---|---|---|
inboundIpRules | This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. | InboundIpRule[] |
inputSchema | This determines the format that Event Grid should expect for incoming events published to the topic. | 'CloudEventSchemaV1_0' '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 |
publicNetworkAccess | This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicProperties.InboundIpRules" /> |
'Disabled' 'Enabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client id of user assigned identity. | string |
principalId | The principal id of user assigned identity. | string |
Usage Examples
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
Module | Description |
---|---|
Event Grid Topic | AVM Resource Module for Event Grid Topic |
Azure Quickstart Samples
The following Azure Quickstart templates contain Bicep samples for deploying this resource type.
Bicep File | Description |
---|---|
Create Azure Event Grid Custom Topic and Queue Subscription | 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 and Subscription | Creates an Azure Event Grid custom topic and a webhook subscription. Template originally authored by John Downs. |
ARM template resource definition
The topics resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
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": "2020-10-15-preview",
"name": "string",
"extendedLocation": {
"name": "string",
"type": "string"
},
"identity": {
"principalId": "string",
"tenantId": "string",
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
"clientId": "string",
"principalId": "string"
}
}
},
"kind": "string",
"location": "string",
"properties": {
"inboundIpRules": [
{
"action": "string",
"ipMask": "string"
}
],
"inputSchema": "string",
"inputSchemaMapping": {
"inputSchemaMappingType": "string"
// For remaining properties, see InputSchemaMapping objects
},
"publicNetworkAccess": "string"
},
"sku": {
"name": "string"
},
"tags": {
"{customized property}": "string"
}
}
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
ExtendedLocation
Name | Description | Value |
---|---|---|
name | Fully qualified name of the extended location. | string |
type | Type of the extended location. | string |
IdentityInfo
Name | Description | Value |
---|---|---|
principalId | The principal ID of resource identity. | string |
tenantId | The tenant ID of resource. | string |
type | The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. This property is currently not used and reserved for future usage. |
IdentityInfoUserAssignedIdentities |
IdentityInfoUserAssignedIdentities
Name | Description | Value |
---|
InboundIpRule
Name | Description | Value |
---|---|---|
action | Action to perform based on the match or no match of the IpMask. | 'Allow' |
ipMask | IP Address in CIDR notation e.g., 10.0.0.0/8. | string |
InputSchemaMapping
Name | Description | Value |
---|---|---|
inputSchemaMappingType | Set to 'Json' for type JsonInputSchemaMapping. | 'Json' (required) |
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 |
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 |
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 |
Microsoft.EventGrid/topics
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2020-10-15-preview' |
extendedLocation | Extended location of the resource. | ExtendedLocation |
identity | Identity information for the resource. | IdentityInfo |
kind | Kind of the resource. | 'Azure' 'AzureArc' |
location | Location of the resource. | string (required) |
name | The resource name | string (required) |
properties | Properties of the topic. | TopicProperties |
sku | The Sku pricing tier for the topic. | ResourceSku |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.EventGrid/topics' |
ResourceSku
Name | Description | Value |
---|---|---|
name | The Sku name of the resource. The possible values are: Basic or Premium. | 'Basic' 'Premium' |
TopicProperties
Name | Description | Value |
---|---|---|
inboundIpRules | This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. | InboundIpRule[] |
inputSchema | This determines the format that Event Grid should expect for incoming events published to the topic. | 'CloudEventSchemaV1_0' '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 |
publicNetworkAccess | This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicProperties.InboundIpRules" /> |
'Disabled' 'Enabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client id of user assigned identity. | string |
principalId | The principal id of user assigned identity. | string |
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
Template | Description |
---|---|
Create Azure Event Grid Custom Topic and Queue Subscription |
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 and Subscription |
Creates an Azure Event Grid custom topic and a webhook subscription. Template originally authored by John Downs. |
Create Azure Event Grid Custom Topic Subscription |
Creates an Azure Event Grid custom topic and a service bus topic subscription. Template originally authored by Markus Meyer. |
Create Event Grid custom topic and event hub handler |
Creates an Azure Event Grid custom topic and event hub to handle the events. |
Custom Azure Event Grid Topic/Subscription with CloudEvents |
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. |
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@2020-10-15-preview"
name = "string"
identity = {
principalId = "string"
tenantId = "string"
type = "string"
userAssignedIdentities = {
{customized property} = {
clientId = "string"
principalId = "string"
}
}
}
kind = "string"
location = "string"
sku = {
name = "string"
}
tags = {
{customized property} = "string"
}
body = jsonencode({
extendedLocation = {
name = "string"
type = "string"
}
properties = {
inboundIpRules = [
{
action = "string"
ipMask = "string"
}
]
inputSchema = "string"
inputSchemaMapping = {
inputSchemaMappingType = "string"
// For remaining properties, see InputSchemaMapping objects
}
publicNetworkAccess = "string"
}
})
}
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
ExtendedLocation
Name | Description | Value |
---|---|---|
name | Fully qualified name of the extended location. | string |
type | Type of the extended location. | string |
IdentityInfo
Name | Description | Value |
---|---|---|
principalId | The principal ID of resource identity. | string |
tenantId | The tenant ID of resource. | string |
type | The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. This property is currently not used and reserved for future usage. |
IdentityInfoUserAssignedIdentities |
IdentityInfoUserAssignedIdentities
Name | Description | Value |
---|
InboundIpRule
Name | Description | Value |
---|---|---|
action | Action to perform based on the match or no match of the IpMask. | 'Allow' |
ipMask | IP Address in CIDR notation e.g., 10.0.0.0/8. | string |
InputSchemaMapping
Name | Description | Value |
---|---|---|
inputSchemaMappingType | Set to 'Json' for type JsonInputSchemaMapping. | 'Json' (required) |
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 |
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 |
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 |
Microsoft.EventGrid/topics
Name | Description | Value |
---|---|---|
extendedLocation | Extended location of the resource. | ExtendedLocation |
identity | Identity information for the resource. | IdentityInfo |
kind | Kind of the resource. | 'Azure' 'AzureArc' |
location | Location of the resource. | string (required) |
name | The resource name | string (required) |
properties | Properties of the topic. | TopicProperties |
sku | The Sku pricing tier for the topic. | ResourceSku |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.EventGrid/topics@2020-10-15-preview" |
ResourceSku
Name | Description | Value |
---|---|---|
name | The Sku name of the resource. The possible values are: Basic or Premium. | 'Basic' 'Premium' |
TopicProperties
Name | Description | Value |
---|---|---|
inboundIpRules | This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. | InboundIpRule[] |
inputSchema | This determines the format that Event Grid should expect for incoming events published to the topic. | 'CloudEventSchemaV1_0' '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 |
publicNetworkAccess | This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicProperties.InboundIpRules" /> |
'Disabled' 'Enabled' |
TrackedResourceTags
Name | Description | Value |
---|
UserIdentityProperties
Name | Description | Value |
---|---|---|
clientId | The client id of user assigned identity. | string |
principalId | The principal id of user assigned identity. | string |
Usage Examples
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
Module | Description |
---|---|
Event Grid Topic | AVM Resource Module for Event Grid Topic |