Share via


Microsoft.DBforMySQL flexibleServers/firewallRules 2024-12-30

Bicep resource definition

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

resource symbolicname 'Microsoft.DBforMySQL/flexibleServers/firewallRules@2024-12-30' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    endIpAddress: 'string'
    startIpAddress: 'string'
  }
}

Property Values

Microsoft.DBforMySQL/flexibleServers/firewallRules

Name Description Value
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][-_a-zA-Z0-9]{0,79}(?<!-)$ (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: flexibleServers
properties The properties of a firewall rule. FirewallRuleProperties (required)

FirewallRuleProperties

Name Description Value
endIpAddress The end IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)
startIpAddress The start IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)

Usage Examples

Azure Quickstart Samples

The following Azure Quickstart templates contain Bicep samples for deploying this resource type.

Bicep File Description
Deploy MySQL Flexible Server with Entra Authentication This template provides a way to deploy a Azure database for MySQL Flexible Server with Entra Authentication.

ARM template resource definition

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

{
  "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules",
  "apiVersion": "2024-12-30",
  "name": "string",
  "properties": {
    "endIpAddress": "string",
    "startIpAddress": "string"
  }
}

Property Values

Microsoft.DBforMySQL/flexibleServers/firewallRules

Name Description Value
apiVersion The api version '2024-12-30'
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][-_a-zA-Z0-9]{0,79}(?<!-)$ (required)
properties The properties of a firewall rule. FirewallRuleProperties (required)
type The resource type 'Microsoft.DBforMySQL/flexibleServers/firewallRules'

FirewallRuleProperties

Name Description Value
endIpAddress The end IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)
startIpAddress The start IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)

Usage Examples

Azure Quickstart Templates

The following Azure Quickstart templates deploy this resource type.

Template Description
Deploy MySQL Flexible Server with Entra Authentication

Deploy to Azure
This template provides a way to deploy a Azure database for MySQL Flexible Server with Entra Authentication.

Terraform (AzAPI provider) resource definition

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DBforMySQL/flexibleServers/firewallRules@2024-12-30"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      endIpAddress = "string"
      startIpAddress = "string"
    }
  }
}

Property Values

Microsoft.DBforMySQL/flexibleServers/firewallRules

Name Description Value
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][-_a-zA-Z0-9]{0,79}(?<!-)$ (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: flexibleServers
properties The properties of a firewall rule. FirewallRuleProperties (required)
type The resource type "Microsoft.DBforMySQL/flexibleServers/firewallRules@2024-12-30"

FirewallRuleProperties

Name Description Value
endIpAddress The end IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)
startIpAddress The start IP address of the server firewall rule. Must be IPv4 format. string

Constraints:
Pattern = ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ (required)

Usage Examples

Terraform Samples

A basic example of deploying Firewall Rule for a MySQL Flexible Server.

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 "mysql_administrator_password" {
  type        = string
  description = "The administrator password for the MySQL flexible server"
  sensitive   = true
}

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

resource "azapi_resource" "flexibleServer" {
  type      = "Microsoft.DBforMySQL/flexibleServers@2021-05-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin         = "adminTerraform"
      administratorLoginPassword = var.mysql_administrator_password
      backup = {
        backupRetentionDays = 7
        geoRedundantBackup  = "Disabled"
      }
      createMode = ""
      dataEncryption = {
        type = "SystemManaged"
      }
      highAvailability = {
        mode = "Disabled"
      }
      network = {
      }
      version = "5.7"
    }
    sku = {
      name = "Standard_B1s"
      tier = "Burstable"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "firewallRule" {
  type      = "Microsoft.DBforMySQL/flexibleServers/firewallRules@2021-05-01"
  parent_id = azapi_resource.flexibleServer.id
  name      = var.resource_name
  body = {
    properties = {
      endIpAddress   = "255.255.255.255"
      startIpAddress = "0.0.0.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}