Microsoft.EventGrid eventSubscriptions 2020-10-15-preview

Bicep resource definition

The eventSubscriptions 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/eventSubscriptions resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.EventGrid/eventSubscriptions@2020-10-15-preview' = {
  scope: resourceSymbolicName or scope
  name: 'string'
  properties: {
    deadLetterDestination: {
      endpointType: 'string'
      // For remaining properties, see DeadLetterDestination objects
    }
    deadLetterWithResourceIdentity: {
      deadLetterDestination: {
        endpointType: 'string'
        // For remaining properties, see DeadLetterDestination objects
      }
      identity: {
        type: 'string'
        userAssignedIdentity: 'string'
      }
    }
    deliveryWithResourceIdentity: {
      destination: {
        endpointType: 'string'
        // For remaining properties, see EventSubscriptionDestination objects
      }
      identity: {
        type: 'string'
        userAssignedIdentity: 'string'
      }
    }
    destination: {
      endpointType: 'string'
      // For remaining properties, see EventSubscriptionDestination objects
    }
    eventDeliverySchema: 'string'
    expirationTimeUtc: 'string'
    filter: {
      advancedFilters: [
        {
          key: 'string'
          operatorType: 'string'
          // For remaining properties, see AdvancedFilter objects
        }
      ]
      enableAdvancedFilteringOnArrays: bool
      includedEventTypes: [
        'string'
      ]
      isSubjectCaseSensitive: bool
      subjectBeginsWith: 'string'
      subjectEndsWith: 'string'
    }
    labels: [
      'string'
    ]
    retryPolicy: {
      eventTimeToLiveInMinutes: int
      maxDeliveryAttempts: int
    }
  }
}

DeadLetterDestination objects

Set the endpointType property to specify the type of object.

For StorageBlob, use:

{
  endpointType: 'StorageBlob'
  properties: {
    blobContainerName: 'string'
    resourceId: 'string'
  }
}

DeliveryAttributeMapping objects

Set the type property to specify the type of object.

For Dynamic, use:

{
  properties: {
    sourceField: 'string'
  }
  type: 'Dynamic'
}

For Static, use:

{
  properties: {
    isSecret: bool
    value: 'string'
  }
  type: 'Static'
}

EventSubscriptionDestination objects

Set the endpointType property to specify the type of object.

For AzureFunction, use:

{
  endpointType: 'AzureFunction'
  properties: {
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    maxEventsPerBatch: int
    preferredBatchSizeInKilobytes: int
    resourceId: 'string'
  }
}

For EventHub, use:

{
  endpointType: 'EventHub'
  properties: {
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId: 'string'
  }
}

For HybridConnection, use:

{
  endpointType: 'HybridConnection'
  properties: {
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId: 'string'
  }
}

For ServiceBusQueue, use:

{
  endpointType: 'ServiceBusQueue'
  properties: {
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId: 'string'
  }
}

For ServiceBusTopic, use:

{
  endpointType: 'ServiceBusTopic'
  properties: {
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId: 'string'
  }
}

For StorageQueue, use:

{
  endpointType: 'StorageQueue'
  properties: {
    queueMessageTimeToLiveInSeconds: int
    queueName: 'string'
    resourceId: 'string'
  }
}

For WebHook, use:

{
  endpointType: 'WebHook'
  properties: {
    azureActiveDirectoryApplicationIdOrUri: 'string'
    azureActiveDirectoryTenantId: 'string'
    deliveryAttributeMappings: [
      {
        name: 'string'
        type: 'string'
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    endpointUrl: 'string'
    maxEventsPerBatch: int
    preferredBatchSizeInKilobytes: int
  }
}

AdvancedFilter objects

Set the operatorType property to specify the type of object.

For BoolEquals, use:

{
  operatorType: 'BoolEquals'
  value: bool
}

For IsNotNull, use:

{
  operatorType: 'IsNotNull'
}

For IsNullOrUndefined, use:

{
  operatorType: 'IsNullOrUndefined'
}

For NumberGreaterThan, use:

{
  operatorType: 'NumberGreaterThan'
  value: int
}

For NumberGreaterThanOrEquals, use:

{
  operatorType: 'NumberGreaterThanOrEquals'
  value: int
}

For NumberIn, use:

{
  operatorType: 'NumberIn'
  values: [
    int
  ]
}

For NumberInRange, use:

{
  operatorType: 'NumberInRange'
  values: [
    [
      int
    ]
  ]
}

For NumberLessThan, use:

{
  operatorType: 'NumberLessThan'
  value: int
}

For NumberLessThanOrEquals, use:

{
  operatorType: 'NumberLessThanOrEquals'
  value: int
}

For NumberNotIn, use:

{
  operatorType: 'NumberNotIn'
  values: [
    int
  ]
}

For NumberNotInRange, use:

{
  operatorType: 'NumberNotInRange'
  values: [
    [
      int
    ]
  ]
}

For StringBeginsWith, use:

{
  operatorType: 'StringBeginsWith'
  values: [
    'string'
  ]
}

For StringContains, use:

{
  operatorType: 'StringContains'
  values: [
    'string'
  ]
}

For StringEndsWith, use:

{
  operatorType: 'StringEndsWith'
  values: [
    'string'
  ]
}

For StringIn, use:

{
  operatorType: 'StringIn'
  values: [
    'string'
  ]
}

For StringNotBeginsWith, use:

{
  operatorType: 'StringNotBeginsWith'
  values: [
    'string'
  ]
}

For StringNotContains, use:

{
  operatorType: 'StringNotContains'
  values: [
    'string'
  ]
}

For StringNotEndsWith, use:

{
  operatorType: 'StringNotEndsWith'
  values: [
    'string'
  ]
}

For StringNotIn, use:

{
  operatorType: 'StringNotIn'
  values: [
    'string'
  ]
}

Property values

AdvancedFilter

Name Description Value
key The field/property in the event based on which you want to filter. string
operatorType Set to 'BoolEquals' for type BoolEqualsAdvancedFilter. Set to 'IsNotNull' for type IsNotNullAdvancedFilter. Set to 'IsNullOrUndefined' for type IsNullOrUndefinedAdvancedFilter. Set to 'NumberGreaterThan' for type NumberGreaterThanAdvancedFilter. Set to 'NumberGreaterThanOrEquals' for type NumberGreaterThanOrEqualsAdvancedFilter. Set to 'NumberIn' for type NumberInAdvancedFilter. Set to 'NumberInRange' for type NumberInRangeAdvancedFilter. Set to 'NumberLessThan' for type NumberLessThanAdvancedFilter. Set to 'NumberLessThanOrEquals' for type NumberLessThanOrEqualsAdvancedFilter. Set to 'NumberNotIn' for type NumberNotInAdvancedFilter. Set to 'NumberNotInRange' for type NumberNotInRangeAdvancedFilter. Set to 'StringBeginsWith' for type StringBeginsWithAdvancedFilter. Set to 'StringContains' for type StringContainsAdvancedFilter. Set to 'StringEndsWith' for type StringEndsWithAdvancedFilter. Set to 'StringIn' for type StringInAdvancedFilter. Set to 'StringNotBeginsWith' for type StringNotBeginsWithAdvancedFilter. Set to 'StringNotContains' for type StringNotContainsAdvancedFilter. Set to 'StringNotEndsWith' for type StringNotEndsWithAdvancedFilter. Set to 'StringNotIn' for type StringNotInAdvancedFilter. 'BoolEquals'
'IsNotNull'
'IsNullOrUndefined'
'NumberGreaterThan'
'NumberGreaterThanOrEquals'
'NumberIn'
'NumberInRange'
'NumberLessThan'
'NumberLessThanOrEquals'
'NumberNotIn'
'NumberNotInRange'
'StringBeginsWith'
'StringContains'
'StringEndsWith'
'StringIn'
'StringNotBeginsWith'
'StringNotContains'
'StringNotEndsWith'
'StringNotIn' (required)

AzureFunctionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'AzureFunction' (required)
properties Azure Function Properties of the event subscription destination. AzureFunctionEventSubscriptionDestinationProperties

AzureFunctionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int
resourceId The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. string

BoolEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'BoolEquals' (required)
value The boolean filter value. bool

DeadLetterDestination

Name Description Value
endpointType Set to 'StorageBlob' for type StorageBlobDeadLetterDestination. 'StorageBlob' (required)

DeadLetterWithResourceIdentity

Name Description Value
deadLetterDestination Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
identity The identity to use when dead-lettering events. EventSubscriptionIdentity

DeliveryAttributeMapping

Name Description Value
name Name of the delivery attribute or header. string
type Set to 'Dynamic' for type DynamicDeliveryAttributeMapping. Set to 'Static' for type StaticDeliveryAttributeMapping. 'Dynamic'
'Static' (required)

DeliveryWithResourceIdentity

Name Description Value
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
identity The identity to use when delivering events. EventSubscriptionIdentity

DynamicDeliveryAttributeMapping

Name Description Value
properties Properties of dynamic delivery attribute mapping. DynamicDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Dynamic' (required)

DynamicDeliveryAttributeMappingProperties

Name Description Value
sourceField JSON path in the event which contains attribute value. string

EventHubEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'EventHub' (required)
properties Event Hub Properties of the event subscription destination. EventHubEventSubscriptionDestinationProperties

EventHubEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. string

EventSubscriptionDestination

Name Description Value
endpointType Set to 'AzureFunction' for type AzureFunctionEventSubscriptionDestination. Set to 'EventHub' for type EventHubEventSubscriptionDestination. Set to 'HybridConnection' for type HybridConnectionEventSubscriptionDestination. Set to 'ServiceBusQueue' for type ServiceBusQueueEventSubscriptionDestination. Set to 'ServiceBusTopic' for type ServiceBusTopicEventSubscriptionDestination. Set to 'StorageQueue' for type StorageQueueEventSubscriptionDestination. Set to 'WebHook' for type WebHookEventSubscriptionDestination. 'AzureFunction'
'EventHub'
'HybridConnection'
'ServiceBusQueue'
'ServiceBusTopic'
'StorageQueue'
'WebHook' (required)

EventSubscriptionFilter

Name Description Value
advancedFilters An array of advanced filters that are used for filtering event subscriptions. AdvancedFilter[]
enableAdvancedFilteringOnArrays Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. bool
includedEventTypes A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. string[]
isSubjectCaseSensitive Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter
should be compared in a case sensitive manner.
bool
subjectBeginsWith An optional string to filter events for an event subscription based on a resource path prefix.
The format of this depends on the publisher of the events.
Wildcard characters are not supported in this path.
string
subjectEndsWith An optional string to filter events for an event subscription based on a resource path suffix.
Wildcard characters are not supported in this path.
string

EventSubscriptionIdentity

Name Description Value
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. 'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned'
userAssignedIdentity The user identity associated with the resource. string

EventSubscriptionProperties

Name Description Value
deadLetterDestination The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
deadLetterWithResourceIdentity The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterWithResourceIdentity
deliveryWithResourceIdentity Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeliveryWithResourceIdentity
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
eventDeliverySchema The event delivery schema for the event subscription. 'CloudEventSchemaV1_0'
'CustomInputSchema'
'EventGridSchema'
expirationTimeUtc Expiration time of the event subscription. string
filter Information about the filter for the event subscription. EventSubscriptionFilter
labels List of user defined labels. string[]
retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. RetryPolicy

HybridConnectionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'HybridConnection' (required)
properties Hybrid connection Properties of the event subscription destination. HybridConnectionEventSubscriptionDestinationProperties

HybridConnectionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource ID of an hybrid connection that is the destination of an event subscription. string

IsNotNullAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNotNull' (required)

IsNullOrUndefinedAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNullOrUndefined' (required)

Microsoft.EventGrid/eventSubscriptions

Name Description Value
name The resource name string (required)
properties Properties of the event subscription. EventSubscriptionProperties
scope Use when creating a resource at a scope that is different than the deployment scope. Set this property to the symbolic name of a resource to apply the extension resource.

NumberGreaterThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThan' (required)
value The filter value. int

NumberGreaterThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThanOrEquals' (required)
value The filter value. int

NumberInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberIn' (required)
values The set of filter values. int[]

NumberInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberInRange' (required)
values The set of filter values. int[][]

NumberLessThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThan' (required)
value The filter value. int

NumberLessThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThanOrEquals' (required)
value The filter value. int

NumberNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotIn' (required)
values The set of filter values. int[]

NumberNotInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotInRange' (required)
values The set of filter values. int[][]

RetryPolicy

Name Description Value
eventTimeToLiveInMinutes Time To Live (in minutes) for events. int
maxDeliveryAttempts Maximum number of delivery retry attempts for events. int

ServiceBusQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusQueue' (required)
properties Service Bus Properties of the event subscription destination. ServiceBusQueueEventSubscriptionDestinationProperties

ServiceBusQueueEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. string

ServiceBusTopicEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusTopic' (required)
properties Service Bus Topic Properties of the event subscription destination. ServiceBusTopicEventSubscriptionDestinationProperties

ServiceBusTopicEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. string

StaticDeliveryAttributeMapping

Name Description Value
properties Properties of static delivery attribute mapping. StaticDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Static' (required)

StaticDeliveryAttributeMappingProperties

Name Description Value
isSecret Boolean flag to tell if the attribute contains sensitive information . bool
value Value of the delivery attribute. string

StorageBlobDeadLetterDestination

Name Description Value
endpointType Type of the endpoint for the dead letter destination 'StorageBlob' (required)
properties The properties of the Storage Blob based deadletter destination StorageBlobDeadLetterDestinationProperties

StorageBlobDeadLetterDestinationProperties

Name Description Value
blobContainerName The name of the Storage blob container that is the destination of the deadletter events string
resourceId The Azure Resource ID of the storage account that is the destination of the deadletter events string

StorageQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'StorageQueue' (required)
properties Storage Queue Properties of the event subscription destination. StorageQueueEventSubscriptionDestinationProperties

StorageQueueEventSubscriptionDestinationProperties

Name Description Value
queueMessageTimeToLiveInSeconds Storage queue message time to live in seconds. int
queueName The name of the Storage queue under a storage account that is the destination of an event subscription. string
resourceId The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. string

StringBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringBeginsWith' (required)
values The set of filter values. string[]

StringContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringContains' (required)
values The set of filter values. string[]

StringEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringEndsWith' (required)
values The set of filter values. string[]

StringInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringIn' (required)
values The set of filter values. string[]

StringNotBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotBeginsWith' (required)
values The set of filter values. string[]

StringNotContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotContains' (required)
values The set of filter values. string[]

StringNotEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotEndsWith' (required)
values The set of filter values. string[]

StringNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotIn' (required)
values The set of filter values. string[]

WebHookEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'WebHook' (required)
properties WebHook Properties of the event subscription destination. WebHookEventSubscriptionDestinationProperties

WebHookEventSubscriptionDestinationProperties

Name Description Value
azureActiveDirectoryApplicationIdOrUri The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests. string
azureActiveDirectoryTenantId The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. string
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
endpointUrl The URL that represents the endpoint of the destination of an event subscription. string

Constraints:
Sensitive value. Pass in as a secure parameter.
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int

Quickstart samples

The following quickstart samples deploy 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 eventSubscriptions 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/eventSubscriptions resource, add the following JSON to your template.

{
  "type": "Microsoft.EventGrid/eventSubscriptions",
  "apiVersion": "2020-10-15-preview",
  "name": "string",
  "properties": {
    "deadLetterDestination": {
      "endpointType": "string"
      // For remaining properties, see DeadLetterDestination objects
    },
    "deadLetterWithResourceIdentity": {
      "deadLetterDestination": {
        "endpointType": "string"
        // For remaining properties, see DeadLetterDestination objects
      },
      "identity": {
        "type": "string",
        "userAssignedIdentity": "string"
      }
    },
    "deliveryWithResourceIdentity": {
      "destination": {
        "endpointType": "string"
        // For remaining properties, see EventSubscriptionDestination objects
      },
      "identity": {
        "type": "string",
        "userAssignedIdentity": "string"
      }
    },
    "destination": {
      "endpointType": "string"
      // For remaining properties, see EventSubscriptionDestination objects
    },
    "eventDeliverySchema": "string",
    "expirationTimeUtc": "string",
    "filter": {
      "advancedFilters": [ {
        "key": "string",
        "operatorType": "string"
        // For remaining properties, see AdvancedFilter objects
      } ],
      "enableAdvancedFilteringOnArrays": "bool",
      "includedEventTypes": [ "string" ],
      "isSubjectCaseSensitive": "bool",
      "subjectBeginsWith": "string",
      "subjectEndsWith": "string"
    },
    "labels": [ "string" ],
    "retryPolicy": {
      "eventTimeToLiveInMinutes": "int",
      "maxDeliveryAttempts": "int"
    }
  }
}

DeadLetterDestination objects

Set the endpointType property to specify the type of object.

For StorageBlob, use:

{
  "endpointType": "StorageBlob",
  "properties": {
    "blobContainerName": "string",
    "resourceId": "string"
  }
}

DeliveryAttributeMapping objects

Set the type property to specify the type of object.

For Dynamic, use:

{
  "properties": {
    "sourceField": "string"
  },
  "type": "Dynamic"
}

For Static, use:

{
  "properties": {
    "isSecret": "bool",
    "value": "string"
  },
  "type": "Static"
}

EventSubscriptionDestination objects

Set the endpointType property to specify the type of object.

For AzureFunction, use:

{
  "endpointType": "AzureFunction",
  "properties": {
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "maxEventsPerBatch": "int",
    "preferredBatchSizeInKilobytes": "int",
    "resourceId": "string"
  }
}

For EventHub, use:

{
  "endpointType": "EventHub",
  "properties": {
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "resourceId": "string"
  }
}

For HybridConnection, use:

{
  "endpointType": "HybridConnection",
  "properties": {
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "resourceId": "string"
  }
}

For ServiceBusQueue, use:

{
  "endpointType": "ServiceBusQueue",
  "properties": {
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "resourceId": "string"
  }
}

For ServiceBusTopic, use:

{
  "endpointType": "ServiceBusTopic",
  "properties": {
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "resourceId": "string"
  }
}

For StorageQueue, use:

{
  "endpointType": "StorageQueue",
  "properties": {
    "queueMessageTimeToLiveInSeconds": "int",
    "queueName": "string",
    "resourceId": "string"
  }
}

For WebHook, use:

{
  "endpointType": "WebHook",
  "properties": {
    "azureActiveDirectoryApplicationIdOrUri": "string",
    "azureActiveDirectoryTenantId": "string",
    "deliveryAttributeMappings": [ {
      "name": "string",
      "type": "string"
      // For remaining properties, see DeliveryAttributeMapping objects
    } ],
    "endpointUrl": "string",
    "maxEventsPerBatch": "int",
    "preferredBatchSizeInKilobytes": "int"
  }
}

AdvancedFilter objects

Set the operatorType property to specify the type of object.

For BoolEquals, use:

{
  "operatorType": "BoolEquals",
  "value": "bool"
}

For IsNotNull, use:

{
  "operatorType": "IsNotNull"
}

For IsNullOrUndefined, use:

{
  "operatorType": "IsNullOrUndefined"
}

For NumberGreaterThan, use:

{
  "operatorType": "NumberGreaterThan",
  "value": "int"
}

For NumberGreaterThanOrEquals, use:

{
  "operatorType": "NumberGreaterThanOrEquals",
  "value": "int"
}

For NumberIn, use:

{
  "operatorType": "NumberIn",
  "values": [ "int" ]
}

For NumberInRange, use:

{
  "operatorType": "NumberInRange",
  "values": [
    [ "int" ]
  ]
}

For NumberLessThan, use:

{
  "operatorType": "NumberLessThan",
  "value": "int"
}

For NumberLessThanOrEquals, use:

{
  "operatorType": "NumberLessThanOrEquals",
  "value": "int"
}

For NumberNotIn, use:

{
  "operatorType": "NumberNotIn",
  "values": [ "int" ]
}

For NumberNotInRange, use:

{
  "operatorType": "NumberNotInRange",
  "values": [
    [ "int" ]
  ]
}

For StringBeginsWith, use:

{
  "operatorType": "StringBeginsWith",
  "values": [ "string" ]
}

For StringContains, use:

{
  "operatorType": "StringContains",
  "values": [ "string" ]
}

For StringEndsWith, use:

{
  "operatorType": "StringEndsWith",
  "values": [ "string" ]
}

For StringIn, use:

{
  "operatorType": "StringIn",
  "values": [ "string" ]
}

For StringNotBeginsWith, use:

{
  "operatorType": "StringNotBeginsWith",
  "values": [ "string" ]
}

For StringNotContains, use:

{
  "operatorType": "StringNotContains",
  "values": [ "string" ]
}

For StringNotEndsWith, use:

{
  "operatorType": "StringNotEndsWith",
  "values": [ "string" ]
}

For StringNotIn, use:

{
  "operatorType": "StringNotIn",
  "values": [ "string" ]
}

Property values

AdvancedFilter

Name Description Value
key The field/property in the event based on which you want to filter. string
operatorType Set to 'BoolEquals' for type BoolEqualsAdvancedFilter. Set to 'IsNotNull' for type IsNotNullAdvancedFilter. Set to 'IsNullOrUndefined' for type IsNullOrUndefinedAdvancedFilter. Set to 'NumberGreaterThan' for type NumberGreaterThanAdvancedFilter. Set to 'NumberGreaterThanOrEquals' for type NumberGreaterThanOrEqualsAdvancedFilter. Set to 'NumberIn' for type NumberInAdvancedFilter. Set to 'NumberInRange' for type NumberInRangeAdvancedFilter. Set to 'NumberLessThan' for type NumberLessThanAdvancedFilter. Set to 'NumberLessThanOrEquals' for type NumberLessThanOrEqualsAdvancedFilter. Set to 'NumberNotIn' for type NumberNotInAdvancedFilter. Set to 'NumberNotInRange' for type NumberNotInRangeAdvancedFilter. Set to 'StringBeginsWith' for type StringBeginsWithAdvancedFilter. Set to 'StringContains' for type StringContainsAdvancedFilter. Set to 'StringEndsWith' for type StringEndsWithAdvancedFilter. Set to 'StringIn' for type StringInAdvancedFilter. Set to 'StringNotBeginsWith' for type StringNotBeginsWithAdvancedFilter. Set to 'StringNotContains' for type StringNotContainsAdvancedFilter. Set to 'StringNotEndsWith' for type StringNotEndsWithAdvancedFilter. Set to 'StringNotIn' for type StringNotInAdvancedFilter. 'BoolEquals'
'IsNotNull'
'IsNullOrUndefined'
'NumberGreaterThan'
'NumberGreaterThanOrEquals'
'NumberIn'
'NumberInRange'
'NumberLessThan'
'NumberLessThanOrEquals'
'NumberNotIn'
'NumberNotInRange'
'StringBeginsWith'
'StringContains'
'StringEndsWith'
'StringIn'
'StringNotBeginsWith'
'StringNotContains'
'StringNotEndsWith'
'StringNotIn' (required)

AzureFunctionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'AzureFunction' (required)
properties Azure Function Properties of the event subscription destination. AzureFunctionEventSubscriptionDestinationProperties

AzureFunctionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int
resourceId The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. string

BoolEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'BoolEquals' (required)
value The boolean filter value. bool

DeadLetterDestination

Name Description Value
endpointType Set to 'StorageBlob' for type StorageBlobDeadLetterDestination. 'StorageBlob' (required)

DeadLetterWithResourceIdentity

Name Description Value
deadLetterDestination Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
identity The identity to use when dead-lettering events. EventSubscriptionIdentity

DeliveryAttributeMapping

Name Description Value
name Name of the delivery attribute or header. string
type Set to 'Dynamic' for type DynamicDeliveryAttributeMapping. Set to 'Static' for type StaticDeliveryAttributeMapping. 'Dynamic'
'Static' (required)

DeliveryWithResourceIdentity

Name Description Value
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
identity The identity to use when delivering events. EventSubscriptionIdentity

DynamicDeliveryAttributeMapping

Name Description Value
properties Properties of dynamic delivery attribute mapping. DynamicDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Dynamic' (required)

DynamicDeliveryAttributeMappingProperties

Name Description Value
sourceField JSON path in the event which contains attribute value. string

EventHubEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'EventHub' (required)
properties Event Hub Properties of the event subscription destination. EventHubEventSubscriptionDestinationProperties

EventHubEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. string

EventSubscriptionDestination

Name Description Value
endpointType Set to 'AzureFunction' for type AzureFunctionEventSubscriptionDestination. Set to 'EventHub' for type EventHubEventSubscriptionDestination. Set to 'HybridConnection' for type HybridConnectionEventSubscriptionDestination. Set to 'ServiceBusQueue' for type ServiceBusQueueEventSubscriptionDestination. Set to 'ServiceBusTopic' for type ServiceBusTopicEventSubscriptionDestination. Set to 'StorageQueue' for type StorageQueueEventSubscriptionDestination. Set to 'WebHook' for type WebHookEventSubscriptionDestination. 'AzureFunction'
'EventHub'
'HybridConnection'
'ServiceBusQueue'
'ServiceBusTopic'
'StorageQueue'
'WebHook' (required)

EventSubscriptionFilter

Name Description Value
advancedFilters An array of advanced filters that are used for filtering event subscriptions. AdvancedFilter[]
enableAdvancedFilteringOnArrays Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. bool
includedEventTypes A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. string[]
isSubjectCaseSensitive Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter
should be compared in a case sensitive manner.
bool
subjectBeginsWith An optional string to filter events for an event subscription based on a resource path prefix.
The format of this depends on the publisher of the events.
Wildcard characters are not supported in this path.
string
subjectEndsWith An optional string to filter events for an event subscription based on a resource path suffix.
Wildcard characters are not supported in this path.
string

EventSubscriptionIdentity

Name Description Value
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. 'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned'
userAssignedIdentity The user identity associated with the resource. string

EventSubscriptionProperties

Name Description Value
deadLetterDestination The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
deadLetterWithResourceIdentity The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterWithResourceIdentity
deliveryWithResourceIdentity Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeliveryWithResourceIdentity
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
eventDeliverySchema The event delivery schema for the event subscription. 'CloudEventSchemaV1_0'
'CustomInputSchema'
'EventGridSchema'
expirationTimeUtc Expiration time of the event subscription. string
filter Information about the filter for the event subscription. EventSubscriptionFilter
labels List of user defined labels. string[]
retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. RetryPolicy

HybridConnectionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'HybridConnection' (required)
properties Hybrid connection Properties of the event subscription destination. HybridConnectionEventSubscriptionDestinationProperties

HybridConnectionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource ID of an hybrid connection that is the destination of an event subscription. string

IsNotNullAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNotNull' (required)

IsNullOrUndefinedAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNullOrUndefined' (required)

Microsoft.EventGrid/eventSubscriptions

Name Description Value
apiVersion The api version '2020-10-15-preview'
name The resource name string (required)
properties Properties of the event subscription. EventSubscriptionProperties
type The resource type 'Microsoft.EventGrid/eventSubscriptions'

NumberGreaterThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThan' (required)
value The filter value. int

NumberGreaterThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThanOrEquals' (required)
value The filter value. int

NumberInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberIn' (required)
values The set of filter values. int[]

NumberInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberInRange' (required)
values The set of filter values. int[][]

NumberLessThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThan' (required)
value The filter value. int

NumberLessThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThanOrEquals' (required)
value The filter value. int

NumberNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotIn' (required)
values The set of filter values. int[]

NumberNotInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotInRange' (required)
values The set of filter values. int[][]

RetryPolicy

Name Description Value
eventTimeToLiveInMinutes Time To Live (in minutes) for events. int
maxDeliveryAttempts Maximum number of delivery retry attempts for events. int

ServiceBusQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusQueue' (required)
properties Service Bus Properties of the event subscription destination. ServiceBusQueueEventSubscriptionDestinationProperties

ServiceBusQueueEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. string

ServiceBusTopicEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusTopic' (required)
properties Service Bus Topic Properties of the event subscription destination. ServiceBusTopicEventSubscriptionDestinationProperties

ServiceBusTopicEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. string

StaticDeliveryAttributeMapping

Name Description Value
properties Properties of static delivery attribute mapping. StaticDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Static' (required)

StaticDeliveryAttributeMappingProperties

Name Description Value
isSecret Boolean flag to tell if the attribute contains sensitive information . bool
value Value of the delivery attribute. string

StorageBlobDeadLetterDestination

Name Description Value
endpointType Type of the endpoint for the dead letter destination 'StorageBlob' (required)
properties The properties of the Storage Blob based deadletter destination StorageBlobDeadLetterDestinationProperties

StorageBlobDeadLetterDestinationProperties

Name Description Value
blobContainerName The name of the Storage blob container that is the destination of the deadletter events string
resourceId The Azure Resource ID of the storage account that is the destination of the deadletter events string

StorageQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'StorageQueue' (required)
properties Storage Queue Properties of the event subscription destination. StorageQueueEventSubscriptionDestinationProperties

StorageQueueEventSubscriptionDestinationProperties

Name Description Value
queueMessageTimeToLiveInSeconds Storage queue message time to live in seconds. int
queueName The name of the Storage queue under a storage account that is the destination of an event subscription. string
resourceId The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. string

StringBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringBeginsWith' (required)
values The set of filter values. string[]

StringContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringContains' (required)
values The set of filter values. string[]

StringEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringEndsWith' (required)
values The set of filter values. string[]

StringInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringIn' (required)
values The set of filter values. string[]

StringNotBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotBeginsWith' (required)
values The set of filter values. string[]

StringNotContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotContains' (required)
values The set of filter values. string[]

StringNotEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotEndsWith' (required)
values The set of filter values. string[]

StringNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotIn' (required)
values The set of filter values. string[]

WebHookEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'WebHook' (required)
properties WebHook Properties of the event subscription destination. WebHookEventSubscriptionDestinationProperties

WebHookEventSubscriptionDestinationProperties

Name Description Value
azureActiveDirectoryApplicationIdOrUri The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests. string
azureActiveDirectoryTenantId The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. string
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
endpointUrl The URL that represents the endpoint of the destination of an event subscription. string

Constraints:
Sensitive value. Pass in as a secure parameter.
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
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 and Subscription

Deploy to Azure
Creates an Azure Event Grid custom topic and a webhook subscription. Template originally authored by John Downs.
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.
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 Event Grid subscription for resource events

Deploy to Azure
Creates Event Grid subscription to either resource group or Azure subscription.
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.

Terraform (AzAPI provider) resource definition

The eventSubscriptions 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/eventSubscriptions resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.EventGrid/eventSubscriptions@2020-10-15-preview"
  name = "string"
  parent_id = "string"
  body = jsonencode({
    properties = {
      deadLetterDestination = {
        endpointType = "string"
        // For remaining properties, see DeadLetterDestination objects
      }
      deadLetterWithResourceIdentity = {
        deadLetterDestination = {
          endpointType = "string"
          // For remaining properties, see DeadLetterDestination objects
        }
        identity = {
          type = "string"
          userAssignedIdentity = "string"
        }
      }
      deliveryWithResourceIdentity = {
        destination = {
          endpointType = "string"
          // For remaining properties, see EventSubscriptionDestination objects
        }
        identity = {
          type = "string"
          userAssignedIdentity = "string"
        }
      }
      destination = {
        endpointType = "string"
        // For remaining properties, see EventSubscriptionDestination objects
      }
      eventDeliverySchema = "string"
      expirationTimeUtc = "string"
      filter = {
        advancedFilters = [
          {
            key = "string"
            operatorType = "string"
            // For remaining properties, see AdvancedFilter objects
          }
        ]
        enableAdvancedFilteringOnArrays = bool
        includedEventTypes = [
          "string"
        ]
        isSubjectCaseSensitive = bool
        subjectBeginsWith = "string"
        subjectEndsWith = "string"
      }
      labels = [
        "string"
      ]
      retryPolicy = {
        eventTimeToLiveInMinutes = int
        maxDeliveryAttempts = int
      }
    }
  })
}

DeadLetterDestination objects

Set the endpointType property to specify the type of object.

For StorageBlob, use:

{
  endpointType = "StorageBlob"
  properties = {
    blobContainerName = "string"
    resourceId = "string"
  }
}

DeliveryAttributeMapping objects

Set the type property to specify the type of object.

For Dynamic, use:

{
  properties = {
    sourceField = "string"
  }
  type = "Dynamic"
}

For Static, use:

{
  properties = {
    isSecret = bool
    value = "string"
  }
  type = "Static"
}

EventSubscriptionDestination objects

Set the endpointType property to specify the type of object.

For AzureFunction, use:

{
  endpointType = "AzureFunction"
  properties = {
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    maxEventsPerBatch = int
    preferredBatchSizeInKilobytes = int
    resourceId = "string"
  }
}

For EventHub, use:

{
  endpointType = "EventHub"
  properties = {
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId = "string"
  }
}

For HybridConnection, use:

{
  endpointType = "HybridConnection"
  properties = {
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId = "string"
  }
}

For ServiceBusQueue, use:

{
  endpointType = "ServiceBusQueue"
  properties = {
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId = "string"
  }
}

For ServiceBusTopic, use:

{
  endpointType = "ServiceBusTopic"
  properties = {
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    resourceId = "string"
  }
}

For StorageQueue, use:

{
  endpointType = "StorageQueue"
  properties = {
    queueMessageTimeToLiveInSeconds = int
    queueName = "string"
    resourceId = "string"
  }
}

For WebHook, use:

{
  endpointType = "WebHook"
  properties = {
    azureActiveDirectoryApplicationIdOrUri = "string"
    azureActiveDirectoryTenantId = "string"
    deliveryAttributeMappings = [
      {
        name = "string"
        type = "string"
        // For remaining properties, see DeliveryAttributeMapping objects
      }
    ]
    endpointUrl = "string"
    maxEventsPerBatch = int
    preferredBatchSizeInKilobytes = int
  }
}

AdvancedFilter objects

Set the operatorType property to specify the type of object.

For BoolEquals, use:

{
  operatorType = "BoolEquals"
  value = bool
}

For IsNotNull, use:

{
  operatorType = "IsNotNull"
}

For IsNullOrUndefined, use:

{
  operatorType = "IsNullOrUndefined"
}

For NumberGreaterThan, use:

{
  operatorType = "NumberGreaterThan"
  value = int
}

For NumberGreaterThanOrEquals, use:

{
  operatorType = "NumberGreaterThanOrEquals"
  value = int
}

For NumberIn, use:

{
  operatorType = "NumberIn"
  values = [
    int
  ]
}

For NumberInRange, use:

{
  operatorType = "NumberInRange"
  values = [
    [
      int
    ]
  ]
}

For NumberLessThan, use:

{
  operatorType = "NumberLessThan"
  value = int
}

For NumberLessThanOrEquals, use:

{
  operatorType = "NumberLessThanOrEquals"
  value = int
}

For NumberNotIn, use:

{
  operatorType = "NumberNotIn"
  values = [
    int
  ]
}

For NumberNotInRange, use:

{
  operatorType = "NumberNotInRange"
  values = [
    [
      int
    ]
  ]
}

For StringBeginsWith, use:

{
  operatorType = "StringBeginsWith"
  values = [
    "string"
  ]
}

For StringContains, use:

{
  operatorType = "StringContains"
  values = [
    "string"
  ]
}

For StringEndsWith, use:

{
  operatorType = "StringEndsWith"
  values = [
    "string"
  ]
}

For StringIn, use:

{
  operatorType = "StringIn"
  values = [
    "string"
  ]
}

For StringNotBeginsWith, use:

{
  operatorType = "StringNotBeginsWith"
  values = [
    "string"
  ]
}

For StringNotContains, use:

{
  operatorType = "StringNotContains"
  values = [
    "string"
  ]
}

For StringNotEndsWith, use:

{
  operatorType = "StringNotEndsWith"
  values = [
    "string"
  ]
}

For StringNotIn, use:

{
  operatorType = "StringNotIn"
  values = [
    "string"
  ]
}

Property values

AdvancedFilter

Name Description Value
key The field/property in the event based on which you want to filter. string
operatorType Set to 'BoolEquals' for type BoolEqualsAdvancedFilter. Set to 'IsNotNull' for type IsNotNullAdvancedFilter. Set to 'IsNullOrUndefined' for type IsNullOrUndefinedAdvancedFilter. Set to 'NumberGreaterThan' for type NumberGreaterThanAdvancedFilter. Set to 'NumberGreaterThanOrEquals' for type NumberGreaterThanOrEqualsAdvancedFilter. Set to 'NumberIn' for type NumberInAdvancedFilter. Set to 'NumberInRange' for type NumberInRangeAdvancedFilter. Set to 'NumberLessThan' for type NumberLessThanAdvancedFilter. Set to 'NumberLessThanOrEquals' for type NumberLessThanOrEqualsAdvancedFilter. Set to 'NumberNotIn' for type NumberNotInAdvancedFilter. Set to 'NumberNotInRange' for type NumberNotInRangeAdvancedFilter. Set to 'StringBeginsWith' for type StringBeginsWithAdvancedFilter. Set to 'StringContains' for type StringContainsAdvancedFilter. Set to 'StringEndsWith' for type StringEndsWithAdvancedFilter. Set to 'StringIn' for type StringInAdvancedFilter. Set to 'StringNotBeginsWith' for type StringNotBeginsWithAdvancedFilter. Set to 'StringNotContains' for type StringNotContainsAdvancedFilter. Set to 'StringNotEndsWith' for type StringNotEndsWithAdvancedFilter. Set to 'StringNotIn' for type StringNotInAdvancedFilter. 'BoolEquals'
'IsNotNull'
'IsNullOrUndefined'
'NumberGreaterThan'
'NumberGreaterThanOrEquals'
'NumberIn'
'NumberInRange'
'NumberLessThan'
'NumberLessThanOrEquals'
'NumberNotIn'
'NumberNotInRange'
'StringBeginsWith'
'StringContains'
'StringEndsWith'
'StringIn'
'StringNotBeginsWith'
'StringNotContains'
'StringNotEndsWith'
'StringNotIn' (required)

AzureFunctionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'AzureFunction' (required)
properties Azure Function Properties of the event subscription destination. AzureFunctionEventSubscriptionDestinationProperties

AzureFunctionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int
resourceId The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. string

BoolEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'BoolEquals' (required)
value The boolean filter value. bool

DeadLetterDestination

Name Description Value
endpointType Set to 'StorageBlob' for type StorageBlobDeadLetterDestination. 'StorageBlob' (required)

DeadLetterWithResourceIdentity

Name Description Value
deadLetterDestination Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
identity The identity to use when dead-lettering events. EventSubscriptionIdentity

DeliveryAttributeMapping

Name Description Value
name Name of the delivery attribute or header. string
type Set to 'Dynamic' for type DynamicDeliveryAttributeMapping. Set to 'Static' for type StaticDeliveryAttributeMapping. 'Dynamic'
'Static' (required)

DeliveryWithResourceIdentity

Name Description Value
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
identity The identity to use when delivering events. EventSubscriptionIdentity

DynamicDeliveryAttributeMapping

Name Description Value
properties Properties of dynamic delivery attribute mapping. DynamicDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Dynamic' (required)

DynamicDeliveryAttributeMappingProperties

Name Description Value
sourceField JSON path in the event which contains attribute value. string

EventHubEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'EventHub' (required)
properties Event Hub Properties of the event subscription destination. EventHubEventSubscriptionDestinationProperties

EventHubEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. string

EventSubscriptionDestination

Name Description Value
endpointType Set to 'AzureFunction' for type AzureFunctionEventSubscriptionDestination. Set to 'EventHub' for type EventHubEventSubscriptionDestination. Set to 'HybridConnection' for type HybridConnectionEventSubscriptionDestination. Set to 'ServiceBusQueue' for type ServiceBusQueueEventSubscriptionDestination. Set to 'ServiceBusTopic' for type ServiceBusTopicEventSubscriptionDestination. Set to 'StorageQueue' for type StorageQueueEventSubscriptionDestination. Set to 'WebHook' for type WebHookEventSubscriptionDestination. 'AzureFunction'
'EventHub'
'HybridConnection'
'ServiceBusQueue'
'ServiceBusTopic'
'StorageQueue'
'WebHook' (required)

EventSubscriptionFilter

Name Description Value
advancedFilters An array of advanced filters that are used for filtering event subscriptions. AdvancedFilter[]
enableAdvancedFilteringOnArrays Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. bool
includedEventTypes A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. string[]
isSubjectCaseSensitive Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter
should be compared in a case sensitive manner.
bool
subjectBeginsWith An optional string to filter events for an event subscription based on a resource path prefix.
The format of this depends on the publisher of the events.
Wildcard characters are not supported in this path.
string
subjectEndsWith An optional string to filter events for an event subscription based on a resource path suffix.
Wildcard characters are not supported in this path.
string

EventSubscriptionIdentity

Name Description Value
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. 'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned'
userAssignedIdentity The user identity associated with the resource. string

EventSubscriptionProperties

Name Description Value
deadLetterDestination The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterDestination
deadLetterWithResourceIdentity The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeadLetterWithResourceIdentity
deliveryWithResourceIdentity Information about the destination where events have to be delivered for the event subscription.
Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
DeliveryWithResourceIdentity
destination Information about the destination where events have to be delivered for the event subscription.
Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
EventSubscriptionDestination
eventDeliverySchema The event delivery schema for the event subscription. 'CloudEventSchemaV1_0'
'CustomInputSchema'
'EventGridSchema'
expirationTimeUtc Expiration time of the event subscription. string
filter Information about the filter for the event subscription. EventSubscriptionFilter
labels List of user defined labels. string[]
retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. RetryPolicy

HybridConnectionEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'HybridConnection' (required)
properties Hybrid connection Properties of the event subscription destination. HybridConnectionEventSubscriptionDestinationProperties

HybridConnectionEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource ID of an hybrid connection that is the destination of an event subscription. string

IsNotNullAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNotNull' (required)

IsNullOrUndefinedAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'IsNullOrUndefined' (required)

Microsoft.EventGrid/eventSubscriptions

Name Description Value
name The resource name string (required)
parent_id The ID of the resource to apply this extension resource to. string (required)
properties Properties of the event subscription. EventSubscriptionProperties
type The resource type "Microsoft.EventGrid/eventSubscriptions@2020-10-15-preview"

NumberGreaterThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThan' (required)
value The filter value. int

NumberGreaterThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberGreaterThanOrEquals' (required)
value The filter value. int

NumberInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberIn' (required)
values The set of filter values. int[]

NumberInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberInRange' (required)
values The set of filter values. int[][]

NumberLessThanAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThan' (required)
value The filter value. int

NumberLessThanOrEqualsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberLessThanOrEquals' (required)
value The filter value. int

NumberNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotIn' (required)
values The set of filter values. int[]

NumberNotInRangeAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'NumberNotInRange' (required)
values The set of filter values. int[][]

RetryPolicy

Name Description Value
eventTimeToLiveInMinutes Time To Live (in minutes) for events. int
maxDeliveryAttempts Maximum number of delivery retry attempts for events. int

ServiceBusQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusQueue' (required)
properties Service Bus Properties of the event subscription destination. ServiceBusQueueEventSubscriptionDestinationProperties

ServiceBusQueueEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. string

ServiceBusTopicEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'ServiceBusTopic' (required)
properties Service Bus Topic Properties of the event subscription destination. ServiceBusTopicEventSubscriptionDestinationProperties

ServiceBusTopicEventSubscriptionDestinationProperties

Name Description Value
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
resourceId The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. string

StaticDeliveryAttributeMapping

Name Description Value
properties Properties of static delivery attribute mapping. StaticDeliveryAttributeMappingProperties
type Type of the delivery attribute or header name. 'Static' (required)

StaticDeliveryAttributeMappingProperties

Name Description Value
isSecret Boolean flag to tell if the attribute contains sensitive information . bool
value Value of the delivery attribute. string

StorageBlobDeadLetterDestination

Name Description Value
endpointType Type of the endpoint for the dead letter destination 'StorageBlob' (required)
properties The properties of the Storage Blob based deadletter destination StorageBlobDeadLetterDestinationProperties

StorageBlobDeadLetterDestinationProperties

Name Description Value
blobContainerName The name of the Storage blob container that is the destination of the deadletter events string
resourceId The Azure Resource ID of the storage account that is the destination of the deadletter events string

StorageQueueEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'StorageQueue' (required)
properties Storage Queue Properties of the event subscription destination. StorageQueueEventSubscriptionDestinationProperties

StorageQueueEventSubscriptionDestinationProperties

Name Description Value
queueMessageTimeToLiveInSeconds Storage queue message time to live in seconds. int
queueName The name of the Storage queue under a storage account that is the destination of an event subscription. string
resourceId The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. string

StringBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringBeginsWith' (required)
values The set of filter values. string[]

StringContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringContains' (required)
values The set of filter values. string[]

StringEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringEndsWith' (required)
values The set of filter values. string[]

StringInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringIn' (required)
values The set of filter values. string[]

StringNotBeginsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotBeginsWith' (required)
values The set of filter values. string[]

StringNotContainsAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotContains' (required)
values The set of filter values. string[]

StringNotEndsWithAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotEndsWith' (required)
values The set of filter values. string[]

StringNotInAdvancedFilter

Name Description Value
operatorType The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. 'StringNotIn' (required)
values The set of filter values. string[]

WebHookEventSubscriptionDestination

Name Description Value
endpointType Type of the endpoint for the event subscription destination. 'WebHook' (required)
properties WebHook Properties of the event subscription destination. WebHookEventSubscriptionDestinationProperties

WebHookEventSubscriptionDestinationProperties

Name Description Value
azureActiveDirectoryApplicationIdOrUri The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests. string
azureActiveDirectoryTenantId The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. string
deliveryAttributeMappings Delivery attribute details. DeliveryAttributeMapping[]
endpointUrl The URL that represents the endpoint of the destination of an event subscription. string

Constraints:
Sensitive value. Pass in as a secure parameter.
maxEventsPerBatch Maximum number of events per batch. int
preferredBatchSizeInKilobytes Preferred batch size in Kilobytes. int