dependency/azapi_examples/Microsoft.DocumentDB_databaseAccounts_sqlRoleAssignments@2021-10-15/main.tf (132 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" "cluster" {
type = "Microsoft.Kusto/clusters@2023-05-02"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
identity {
type = "SystemAssigned"
identity_ids = []
}
body = {
properties = {
enableAutoStop = true
enableDiskEncryption = false
enableDoubleEncryption = false
enablePurge = false
enableStreamingIngest = false
engineType = "V2"
publicIPType = "IPv4"
publicNetworkAccess = "Enabled"
restrictOutboundNetworkAccess = "Disabled"
trustedExternalTenants = [
]
}
sku = {
capacity = 1
name = "Dev(No SLA)_Standard_D11_v2"
tier = "Basic"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "databaseAccount" {
type = "Microsoft.DocumentDB/databaseAccounts@2021-10-15"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
kind = "GlobalDocumentDB"
properties = {
capabilities = [
]
consistencyPolicy = {
defaultConsistencyLevel = "Session"
maxIntervalInSeconds = 5
maxStalenessPrefix = 100
}
databaseAccountOfferType = "Standard"
defaultIdentity = "FirstPartyIdentity"
disableKeyBasedMetadataWriteAccess = false
disableLocalAuth = false
enableAnalyticalStorage = false
enableAutomaticFailover = false
enableFreeTier = false
enableMultipleWriteLocations = false
ipRules = [
]
isVirtualNetworkFilterEnabled = false
locations = [
{
failoverPriority = 0
isZoneRedundant = false
locationName = "West Europe"
},
]
networkAclBypass = "None"
networkAclBypassResourceIds = [
]
publicNetworkAccess = "Enabled"
virtualNetworkRules = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
data "azapi_resource" "sqlRoleDefinition" {
type = "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions@2021-10-15"
parent_id = azapi_resource.databaseAccount.id
name = "00000000-0000-0000-0000-000000000001"
response_export_values = ["*"]
}
resource "azapi_resource" "database" {
type = "Microsoft.Kusto/clusters/databases@2023-05-02"
parent_id = azapi_resource.cluster.id
name = var.resource_name
location = var.location
body = {
kind = "ReadWrite"
properties = {
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "sqlRoleAssignment" {
type = "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2021-10-15"
parent_id = azapi_resource.databaseAccount.id
name = "ff419bf7-f8ca-ef51-00d2-3576700c341b"
body = {
properties = {
principalId = azapi_resource.cluster.output.identity.principalId
roleDefinitionId = data.azapi_resource.sqlRoleDefinition.id
scope = azapi_resource.databaseAccount.id
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}