Microsoft.Maintenance configurationAssignments

Bicep resource definition

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

resource symbolicname 'Microsoft.Maintenance/configurationAssignments@2023-10-01-preview' = {
  scope: resourceSymbolicName or scope
  location: 'string'
  name: 'string'
  properties: {
    filter: {
      locations: [
        'string'
      ]
      osTypes: [
        'string'
      ]
      resourceGroups: [
        'string'
      ]
      resourceTypes: [
        'string'
      ]
      tagSettings: {
        filterOperator: 'string'
        tags: {
          {customized property}: [
            'string'
          ]
        }
      }
    }
    maintenanceConfigurationId: 'string'
    resourceId: 'string'
  }
}

Property Values

Microsoft.Maintenance/configurationAssignments

Name Description Value
location Location of the resource string
name The resource name string (required)
properties Properties of the configuration assignment ConfigurationAssignmentProperties
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.

ConfigurationAssignmentFilterProperties

Name Description Value
locations List of locations to scope the query to. string[]
osTypes List of allowed operating systems. string[]
resourceGroups List of allowed resource groups. string[]
resourceTypes List of allowed resources. string[]
tagSettings Tag settings for the VM. TagSettingsProperties

ConfigurationAssignmentProperties

Name Description Value
filter Properties of the configuration assignment ConfigurationAssignmentFilterProperties
maintenanceConfigurationId The maintenance configuration Id string
resourceId The unique resourceId string

TagSettingsProperties

Name Description Value
filterOperator Filter VMs by Any or All specified tags. 'All'
'Any'
tags Dictionary of tags with its list of values. TagSettingsPropertiesTags

TagSettingsPropertiesTags

Name Description Value

Usage Examples

Bicep Samples

A basic example of deploying Maintenance Assignment.

param resourceName string = 'acctest0001'
param location string = 'westeurope'
@secure()
@description('The administrator password for the virtual machine')
param adminPassword string

resource configurationAssignment 'Microsoft.Maintenance/configurationAssignments@2022-07-01-preview' = {
  scope: virtualMachine
  name: resourceName
  location: 'westeurope'
  properties: {
    maintenanceConfigurationId: maintenanceConfiguration.id
    resourceId: virtualMachine.id
  }
}

resource maintenanceConfiguration 'Microsoft.Maintenance/maintenanceConfigurations@2022-07-01-preview' = {
  name: resourceName
  location: location
  properties: {
    extensionProperties: {}
    maintenanceScope: 'SQLDB'
    namespace: 'Microsoft.Maintenance'
    visibility: 'Custom'
  }
}

resource networkInterface 'Microsoft.Network/networkInterfaces@2022-07-01' = {
  name: resourceName
  location: location
  properties: {
    enableAcceleratedNetworking: false
    enableIPForwarding: false
    ipConfigurations: [
      {
        name: 'testconfiguration1'
        properties: {
          primary: true
          privateIPAddressVersion: 'IPv4'
          privateIPAllocationMethod: 'Dynamic'
          subnet: {
            id: subnet.id
          }
        }
      }
    ]
  }
}

resource virtualMachine 'Microsoft.Compute/virtualMachines@2023-03-01' = {
  name: resourceName
  location: location
  properties: {
    additionalCapabilities: {}
    applicationProfile: {
      galleryApplications: []
    }
    diagnosticsProfile: {
      bootDiagnostics: {
        enabled: false
        storageUri: ''
      }
    }
    extensionsTimeBudget: 'PT1H30M'
    hardwareProfile: {
      vmSize: 'Standard_F2'
    }
    networkProfile: {
      networkInterfaces: [
        {
          id: networkInterface.id
          properties: {
            primary: true
          }
        }
      ]
    }
    osProfile: {
      adminPassword: null
      adminUsername: 'adminuser'
      allowExtensionOperations: true
      computerName: 'acctest0001'
      linuxConfiguration: {
        disablePasswordAuthentication: false
        patchSettings: {
          assessmentMode: 'ImageDefault'
          patchMode: 'ImageDefault'
        }
        provisionVMAgent: true
        ssh: {
          publicKeys: []
        }
      }
      secrets: []
    }
    priority: 'Regular'
    storageProfile: {
      dataDisks: []
      imageReference: {
        offer: 'UbuntuServer'
        publisher: 'Canonical'
        sku: '16.04-LTS'
        version: 'latest'
      }
      osDisk: {
        caching: 'ReadWrite'
        createOption: 'FromImage'
        managedDisk: {
          storageAccountType: 'Standard_LRS'
        }
        osType: 'Linux'
        writeAcceleratorEnabled: false
      }
    }
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-07-01' = {
  name: resourceName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    dhcpOptions: {
      dnsServers: []
    }
    subnets: []
  }
}

resource subnet 'Microsoft.Network/virtualNetworks/subnets@2022-07-01' = {
  parent: virtualNetwork
  name: 'internal'
  properties: {
    addressPrefix: '10.0.2.0/24'
    delegations: []
    privateEndpointNetworkPolicies: 'Enabled'
    privateLinkServiceNetworkPolicies: 'Enabled'
    serviceEndpointPolicies: []
    serviceEndpoints: []
  }
}

Azure Verified Modules

The following Azure Verified Modules can be used to deploy this resource type.

Module Description
Maintenance Configuration Assignment AVM Resource Module for Maintenance Configuration Assignment

ARM template resource definition

The configurationAssignments 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.Maintenance/configurationAssignments resource, add the following JSON to your template.

{
  "type": "Microsoft.Maintenance/configurationAssignments",
  "apiVersion": "2023-10-01-preview",
  "name": "string",
  "location": "string",
  "properties": {
    "filter": {
      "locations": [ "string" ],
      "osTypes": [ "string" ],
      "resourceGroups": [ "string" ],
      "resourceTypes": [ "string" ],
      "tagSettings": {
        "filterOperator": "string",
        "tags": {
          "{customized property}": [ "string" ]
        }
      }
    },
    "maintenanceConfigurationId": "string",
    "resourceId": "string"
  }
}

Property Values

Microsoft.Maintenance/configurationAssignments

Name Description Value
apiVersion The api version '2023-10-01-preview'
location Location of the resource string
name The resource name string (required)
properties Properties of the configuration assignment ConfigurationAssignmentProperties
type The resource type 'Microsoft.Maintenance/configurationAssignments'

ConfigurationAssignmentFilterProperties

Name Description Value
locations List of locations to scope the query to. string[]
osTypes List of allowed operating systems. string[]
resourceGroups List of allowed resource groups. string[]
resourceTypes List of allowed resources. string[]
tagSettings Tag settings for the VM. TagSettingsProperties

ConfigurationAssignmentProperties

Name Description Value
filter Properties of the configuration assignment ConfigurationAssignmentFilterProperties
maintenanceConfigurationId The maintenance configuration Id string
resourceId The unique resourceId string

TagSettingsProperties

Name Description Value
filterOperator Filter VMs by Any or All specified tags. 'All'
'Any'
tags Dictionary of tags with its list of values. TagSettingsPropertiesTags

TagSettingsPropertiesTags

Name Description Value

Usage Examples

Terraform (AzAPI provider) resource definition

The configurationAssignments resource type can be deployed with operations that target:

  • Subscription* Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Maintenance/configurationAssignments resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Maintenance/configurationAssignments@2023-10-01-preview"
  name = "string"
  parent_id = "string"
  location = "string"
  body = {
    properties = {
      filter = {
        locations = [
          "string"
        ]
        osTypes = [
          "string"
        ]
        resourceGroups = [
          "string"
        ]
        resourceTypes = [
          "string"
        ]
        tagSettings = {
          filterOperator = "string"
          tags = {
            {customized property} = [
              "string"
            ]
          }
        }
      }
      maintenanceConfigurationId = "string"
      resourceId = "string"
    }
  }
}

Property Values

Microsoft.Maintenance/configurationAssignments

Name Description Value
location Location of the resource string
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 configuration assignment ConfigurationAssignmentProperties
type The resource type "Microsoft.Maintenance/configurationAssignments@2023-10-01-preview"

ConfigurationAssignmentFilterProperties

Name Description Value
locations List of locations to scope the query to. string[]
osTypes List of allowed operating systems. string[]
resourceGroups List of allowed resource groups. string[]
resourceTypes List of allowed resources. string[]
tagSettings Tag settings for the VM. TagSettingsProperties

ConfigurationAssignmentProperties

Name Description Value
filter Properties of the configuration assignment ConfigurationAssignmentFilterProperties
maintenanceConfigurationId The maintenance configuration Id string
resourceId The unique resourceId string

TagSettingsProperties

Name Description Value
filterOperator Filter VMs by Any or All specified tags. 'All'
'Any'
tags Dictionary of tags with its list of values. TagSettingsPropertiesTags

TagSettingsPropertiesTags

Name Description Value

Usage Examples

Terraform Samples

A basic example of deploying Maintenance Assignment.

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"
}

variable "admin_password" {
  type        = string
  description = "The administrator password for the virtual machine"
  sensitive   = true
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "maintenanceConfiguration" {
  type      = "Microsoft.Maintenance/maintenanceConfigurations@2022-07-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      extensionProperties = {
      }
      maintenanceScope = "SQLDB"
      namespace        = "Microsoft.Maintenance"
      visibility       = "Custom"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "virtualNetwork" {
  type      = "Microsoft.Network/virtualNetworks@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      addressSpace = {
        addressPrefixes = [
          "10.0.0.0/16",
        ]
      }
      dhcpOptions = {
        dnsServers = [
        ]
      }
      subnets = [
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
  lifecycle {
    ignore_changes = [body.properties.subnets]
  }
}

resource "azapi_resource" "subnet" {
  type      = "Microsoft.Network/virtualNetworks/subnets@2022-07-01"
  parent_id = azapi_resource.virtualNetwork.id
  name      = "internal"
  body = {
    properties = {
      addressPrefix = "10.0.2.0/24"
      delegations = [
      ]
      privateEndpointNetworkPolicies    = "Enabled"
      privateLinkServiceNetworkPolicies = "Enabled"
      serviceEndpointPolicies = [
      ]
      serviceEndpoints = [
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "networkInterface" {
  type      = "Microsoft.Network/networkInterfaces@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      enableAcceleratedNetworking = false
      enableIPForwarding          = false
      ipConfigurations = [
        {
          name = "testconfiguration1"
          properties = {
            primary                   = true
            privateIPAddressVersion   = "IPv4"
            privateIPAllocationMethod = "Dynamic"
            subnet = {
              id = azapi_resource.subnet.id
            }
          }
        },
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "virtualMachine" {
  type      = "Microsoft.Compute/virtualMachines@2023-03-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      additionalCapabilities = {
      }
      applicationProfile = {
        galleryApplications = [
        ]
      }
      diagnosticsProfile = {
        bootDiagnostics = {
          enabled    = false
          storageUri = ""
        }
      }
      extensionsTimeBudget = "PT1H30M"
      hardwareProfile = {
        vmSize = "Standard_F2"
      }
      networkProfile = {
        networkInterfaces = [
          {
            id = azapi_resource.networkInterface.id
            properties = {
              primary = true
            }
          },
        ]
      }
      osProfile = {
        adminPassword            = var.admin_password
        adminUsername            = "adminuser"
        allowExtensionOperations = true
        computerName             = var.resource_name
        linuxConfiguration = {
          disablePasswordAuthentication = false
          patchSettings = {
            assessmentMode = "ImageDefault"
            patchMode      = "ImageDefault"
          }
          provisionVMAgent = true
          ssh = {
            publicKeys = [
            ]
          }
        }
        secrets = [
        ]
      }
      priority = "Regular"
      storageProfile = {
        dataDisks = [
        ]
        imageReference = {
          offer     = "UbuntuServer"
          publisher = "Canonical"
          sku       = "16.04-LTS"
          version   = "latest"
        }
        osDisk = {
          caching      = "ReadWrite"
          createOption = "FromImage"
          managedDisk = {
            storageAccountType = "Standard_LRS"
          }
          osType                  = "Linux"
          writeAcceleratorEnabled = false
        }
      }
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "configurationAssignment" {
  type      = "Microsoft.Maintenance/configurationAssignments@2022-07-01-preview"
  parent_id = azapi_resource.virtualMachine.id
  name      = var.resource_name
  body = {
    location = "westeurope"
    properties = {
      maintenanceConfigurationId = azapi_resource.maintenanceConfiguration.id
      resourceId                 = azapi_resource.virtualMachine.id
    }
  }
  ignore_casing             = true
  schema_validation_enabled = false
  response_export_values    = ["*"]
}