azurerm_management_group_template_deployment

Manages a Template Deployment at a Management Group Scope.

Example Usage

data "azurerm_management_group" "example" {
  name = "00000000-0000-0000-0000-000000000000"
}

resource "azurerm_management_group_template_deployment" "example" {
  name                = "example"
  location            = "West Europe"
  management_group_id = data.azurerm_management_group.example.id
  template_content    = <<TEMPLATE
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyAssignmentName": {
      "type": "string",
      "defaultValue": "[guid(parameters('policyDefinitionID'), resourceGroup().name)]",
      "metadata": {
        "description": "Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides."
      }
    },
    "policyDefinitionID": {
      "type": "string",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "[parameters('policyAssignmentName')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "scope": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]",
        "policyDefinitionId": "[parameters('policyDefinitionID')]"
      }
    }
  ]
}
TEMPLATE

  parameters_content = <<PARAMS
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyDefinitionID": {
      "value": "/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a"
    }
  }
}
PARAMS
}
data "azurerm_management_group" "example" {
  name = "00000000-0000-0000-0000-000000000000"
}

resource "azurerm_management_group_template_deployment" "example" {
  name                = "example"
  location            = "West Europe"
  management_group_id = data.azurerm_management_group.example.id
  template_content    = file("templates/example-deploy-template.json")
  parameters_content  = file("templates/example-deploy-params.json")
}
data "azurerm_management_group" "example" {
  name = "00000000-0000-0000-0000-000000000000"
}

data "azurerm_template_spec_version" "example" {
  name                = "exampleTemplateForManagementGroup"
  resource_group_name = "exampleResourceGroup"
  version             = "v1.0.9"
}

resource "azurerm_management_group_template_deployment" "example" {
  name                     = "example"
  location                 = "West Europe"
  management_group_id      = data.azurerm_management_group.example.id
  template_spec_version_id = data.azurerm_template_spec_version.example.id
}

Arguments Reference

The following arguments are supported:


Attributes Reference

In addition to the Arguments listed above - the following Attributes are exported:

Timeouts

The timeouts block allows you to specify timeouts for certain actions:

Import

Management Group Template Deployments can be imported using the resource id, e.g.

terraform import azurerm_management_group_template_deployment.example /providers/Microsoft.Management/managementGroups/my-management-group-id/providers/Microsoft.Resources/deployments/deploy1