dependency/azapi_examples/Microsoft.EventGrid_eventSubscriptions@2021-12-01/main.tf (131 lines of code) (raw):
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "namespace" {
type = "Microsoft.EventHub/namespaces@2022-01-01-preview"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
disableLocalAuth = false
isAutoInflateEnabled = false
publicNetworkAccess = "Enabled"
zoneRedundant = false
}
sku = {
capacity = 1
name = "Standard"
tier = "Standard"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "storageAccount" {
type = "Microsoft.Storage/storageAccounts@2021-09-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
kind = "StorageV2"
properties = {
accessTier = "Hot"
allowBlobPublicAccess = true
allowCrossTenantReplication = true
allowSharedKeyAccess = true
defaultToOAuthAuthentication = false
encryption = {
keySource = "Microsoft.Storage"
services = {
queue = {
keyType = "Service"
}
table = {
keyType = "Service"
}
}
}
isHnsEnabled = false
isNfsV3Enabled = false
isSftpEnabled = false
minimumTlsVersion = "TLS1_2"
networkAcls = {
defaultAction = "Allow"
}
publicNetworkAccess = "Enabled"
supportsHttpsTrafficOnly = true
}
sku = {
name = "Standard_LRS"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "eventhub" {
type = "Microsoft.EventHub/namespaces/eventhubs@2021-11-01"
parent_id = azapi_resource.namespace.id
name = var.resource_name
body = {
properties = {
messageRetentionInDays = 1
partitionCount = 1
status = "Active"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "eventSubscription" {
type = "Microsoft.EventGrid/eventSubscriptions@2021-12-01"
parent_id = azapi_resource.storageAccount.id
name = var.resource_name
body = {
properties = {
deadLetterDestination = null
destination = {
endpointType = "EventHub"
properties = {
deliveryAttributeMappings = null
resourceId = azapi_resource.eventhub.id
}
}
eventDeliverySchema = "EventGridSchema"
filter = {
includedEventTypes = [
"Microsoft.Storage.BlobCreated",
"Microsoft.Storage.BlobRenamed",
]
}
labels = [
]
retryPolicy = {
eventTimeToLiveInMinutes = 144
maxDeliveryAttempts = 10
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}