Flexible Server Args
Manages a MySQL Flexible Server.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
name: "example-vn",
location: example.location,
resourceGroupName: example.name,
addressSpaces: ["10.0.0.0/16"],
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "example-sn",
resourceGroupName: example.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10.0.2.0/24"],
serviceEndpoints: ["Microsoft.Storage"],
delegations: [{
name: "fs",
serviceDelegation: {
name: "Microsoft.DBforMySQL/flexibleServers",
actions: ["Microsoft.Network/virtualNetworks/subnets/join/action"],
},
}],
});
const exampleZone = new azure.privatedns.Zone("example", {
name: "example.mysql.database.azure.com",
resourceGroupName: example.name,
});
const exampleZoneVirtualNetworkLink = new azure.privatedns.ZoneVirtualNetworkLink("example", {
name: "exampleVnetZone.com",
privateDnsZoneName: exampleZone.name,
virtualNetworkId: exampleVirtualNetwork.id,
resourceGroupName: example.name,
});
const exampleFlexibleServer = new azure.mysql.FlexibleServer("example", {
name: "example-fs",
resourceGroupName: example.name,
location: example.location,
administratorLogin: "psqladmin",
administratorPassword: "H@Sh1CoR3!",
backupRetentionDays: 7,
delegatedSubnetId: exampleSubnet.id,
privateDnsZoneId: exampleZone.id,
skuName: "GP_Standard_D2ds_v4",
}, {
dependsOn: [exampleZoneVirtualNetworkLink],
});import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
name="example-vn",
location=example.location,
resource_group_name=example.name,
address_spaces=["10.0.0.0/16"])
example_subnet = azure.network.Subnet("example",
name="example-sn",
resource_group_name=example.name,
virtual_network_name=example_virtual_network.name,
address_prefixes=["10.0.2.0/24"],
service_endpoints=["Microsoft.Storage"],
delegations=[{
"name": "fs",
"service_delegation": {
"name": "Microsoft.DBforMySQL/flexibleServers",
"actions": ["Microsoft.Network/virtualNetworks/subnets/join/action"],
},
}])
example_zone = azure.privatedns.Zone("example",
name="example.mysql.database.azure.com",
resource_group_name=example.name)
example_zone_virtual_network_link = azure.privatedns.ZoneVirtualNetworkLink("example",
name="exampleVnetZone.com",
private_dns_zone_name=example_zone.name,
virtual_network_id=example_virtual_network.id,
resource_group_name=example.name)
example_flexible_server = azure.mysql.FlexibleServer("example",
name="example-fs",
resource_group_name=example.name,
location=example.location,
administrator_login="psqladmin",
administrator_password="H@Sh1CoR3!",
backup_retention_days=7,
delegated_subnet_id=example_subnet.id,
private_dns_zone_id=example_zone.id,
sku_name="GP_Standard_D2ds_v4",
opts = pulumi.ResourceOptions(depends_on=[example_zone_virtual_network_link]))using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
{
Name = "example-vn",
Location = example.Location,
ResourceGroupName = example.Name,
AddressSpaces = new[]
{
"10.0.0.0/16",
},
});
var exampleSubnet = new Azure.Network.Subnet("example", new()
{
Name = "example-sn",
ResourceGroupName = example.Name,
VirtualNetworkName = exampleVirtualNetwork.Name,
AddressPrefixes = new[]
{
"10.0.2.0/24",
},
ServiceEndpoints = new[]
{
"Microsoft.Storage",
},
Delegations = new[]
{
new Azure.Network.Inputs.SubnetDelegationArgs
{
Name = "fs",
ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs
{
Name = "Microsoft.DBforMySQL/flexibleServers",
Actions = new[]
{
"Microsoft.Network/virtualNetworks/subnets/join/action",
},
},
},
},
});
var exampleZone = new Azure.PrivateDns.Zone("example", new()
{
Name = "example.mysql.database.azure.com",
ResourceGroupName = example.Name,
});
var exampleZoneVirtualNetworkLink = new Azure.PrivateDns.ZoneVirtualNetworkLink("example", new()
{
Name = "exampleVnetZone.com",
PrivateDnsZoneName = exampleZone.Name,
VirtualNetworkId = exampleVirtualNetwork.Id,
ResourceGroupName = example.Name,
});
var exampleFlexibleServer = new Azure.MySql.FlexibleServer("example", new()
{
Name = "example-fs",
ResourceGroupName = example.Name,
Location = example.Location,
AdministratorLogin = "psqladmin",
AdministratorPassword = "H@Sh1CoR3!",
BackupRetentionDays = 7,
DelegatedSubnetId = exampleSubnet.Id,
PrivateDnsZoneId = exampleZone.Id,
SkuName = "GP_Standard_D2ds_v4",
}, new CustomResourceOptions
{
DependsOn =
{
exampleZoneVirtualNetworkLink,
},
});
});package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/mysql"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/privatedns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
Name: pulumi.String("example-vn"),
Location: example.Location,
ResourceGroupName: example.Name,
AddressSpaces: pulumi.StringArray{
pulumi.String("10.0.0.0/16"),
},
})
if err != nil {
return err
}
exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
Name: pulumi.String("example-sn"),
ResourceGroupName: example.Name,
VirtualNetworkName: exampleVirtualNetwork.Name,
AddressPrefixes: pulumi.StringArray{
pulumi.String("10.0.2.0/24"),
},
ServiceEndpoints: pulumi.StringArray{
pulumi.String("Microsoft.Storage"),
},
Delegations: network.SubnetDelegationArray{
&network.SubnetDelegationArgs{
Name: pulumi.String("fs"),
ServiceDelegation: &network.SubnetDelegationServiceDelegationArgs{
Name: pulumi.String("Microsoft.DBforMySQL/flexibleServers"),
Actions: pulumi.StringArray{
pulumi.String("Microsoft.Network/virtualNetworks/subnets/join/action"),
},
},
},
},
})
if err != nil {
return err
}
exampleZone, err := privatedns.NewZone(ctx, "example", &privatedns.ZoneArgs{
Name: pulumi.String("example.mysql.database.azure.com"),
ResourceGroupName: example.Name,
})
if err != nil {
return err
}
exampleZoneVirtualNetworkLink, err := privatedns.NewZoneVirtualNetworkLink(ctx, "example", &privatedns.ZoneVirtualNetworkLinkArgs{
Name: pulumi.String("exampleVnetZone.com"),
PrivateDnsZoneName: exampleZone.Name,
VirtualNetworkId: exampleVirtualNetwork.ID(),
ResourceGroupName: example.Name,
})
if err != nil {
return err
}
_, err = mysql.NewFlexibleServer(ctx, "example", &mysql.FlexibleServerArgs{
Name: pulumi.String("example-fs"),
ResourceGroupName: example.Name,
Location: example.Location,
AdministratorLogin: pulumi.String("psqladmin"),
AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
BackupRetentionDays: pulumi.Int(7),
DelegatedSubnetId: exampleSubnet.ID(),
PrivateDnsZoneId: exampleZone.ID(),
SkuName: pulumi.String("GP_Standard_D2ds_v4"),
}, pulumi.DependsOn([]pulumi.Resource{
exampleZoneVirtualNetworkLink,
}))
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.network.inputs.SubnetDelegationArgs;
import com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs;
import com.pulumi.azure.privatedns.Zone;
import com.pulumi.azure.privatedns.ZoneArgs;
import com.pulumi.azure.privatedns.ZoneVirtualNetworkLink;
import com.pulumi.azure.privatedns.ZoneVirtualNetworkLinkArgs;
import com.pulumi.azure.mysql.FlexibleServer;
import com.pulumi.azure.mysql.FlexibleServerArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example-vn")
.location(example.location())
.resourceGroupName(example.name())
.addressSpaces("10.0.0.0/16")
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("example-sn")
.resourceGroupName(example.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.2.0/24")
.serviceEndpoints("Microsoft.Storage")
.delegations(SubnetDelegationArgs.builder()
.name("fs")
.serviceDelegation(SubnetDelegationServiceDelegationArgs.builder()
.name("Microsoft.DBforMySQL/flexibleServers")
.actions("Microsoft.Network/virtualNetworks/subnets/join/action")
.build())
.build())
.build());
var exampleZone = new Zone("exampleZone", ZoneArgs.builder()
.name("example.mysql.database.azure.com")
.resourceGroupName(example.name())
.build());
var exampleZoneVirtualNetworkLink = new ZoneVirtualNetworkLink("exampleZoneVirtualNetworkLink", ZoneVirtualNetworkLinkArgs.builder()
.name("exampleVnetZone.com")
.privateDnsZoneName(exampleZone.name())
.virtualNetworkId(exampleVirtualNetwork.id())
.resourceGroupName(example.name())
.build());
var exampleFlexibleServer = new FlexibleServer("exampleFlexibleServer", FlexibleServerArgs.builder()
.name("example-fs")
.resourceGroupName(example.name())
.location(example.location())
.administratorLogin("psqladmin")
.administratorPassword("H@Sh1CoR3!")
.backupRetentionDays(7)
.delegatedSubnetId(exampleSubnet.id())
.privateDnsZoneId(exampleZone.id())
.skuName("GP_Standard_D2ds_v4")
.build(), CustomResourceOptions.builder()
.dependsOn(exampleZoneVirtualNetworkLink)
.build());
}
}resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleVirtualNetwork:
type: azure:network:VirtualNetwork
name: example
properties:
name: example-vn
location: ${example.location}
resourceGroupName: ${example.name}
addressSpaces:
- 10.0.0.0/16
exampleSubnet:
type: azure:network:Subnet
name: example
properties:
name: example-sn
resourceGroupName: ${example.name}
virtualNetworkName: ${exampleVirtualNetwork.name}
addressPrefixes:
- 10.0.2.0/24
serviceEndpoints:
- Microsoft.Storage
delegations:
- name: fs
serviceDelegation:
name: Microsoft.DBforMySQL/flexibleServers
actions:
- Microsoft.Network/virtualNetworks/subnets/join/action
exampleZone:
type: azure:privatedns:Zone
name: example
properties:
name: example.mysql.database.azure.com
resourceGroupName: ${example.name}
exampleZoneVirtualNetworkLink:
type: azure:privatedns:ZoneVirtualNetworkLink
name: example
properties:
name: exampleVnetZone.com
privateDnsZoneName: ${exampleZone.name}
virtualNetworkId: ${exampleVirtualNetwork.id}
resourceGroupName: ${example.name}
exampleFlexibleServer:
type: azure:mysql:FlexibleServer
name: example
properties:
name: example-fs
resourceGroupName: ${example.name}
location: ${example.location}
administratorLogin: psqladmin
administratorPassword: H@Sh1CoR3!
backupRetentionDays: 7
delegatedSubnetId: ${exampleSubnet.id}
privateDnsZoneId: ${exampleZone.id}
skuName: GP_Standard_D2ds_v4
options:
dependsOn:
- ${exampleZoneVirtualNetworkLink}Import
MySQL Flexible Servers can be imported using the resource id, e.g.
$ pulumi import azure:mysql/flexibleServer:FlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforMySQL/flexibleServers/flexibleServer1Constructors
Properties
The Administrator login for the MySQL Flexible Server. Required when create_mode is Default. Changing this forces a new MySQL Flexible Server to be created.
The Password associated with the administrator_login for the MySQL Flexible Server.
An integer value used to trigger an update for administrator_password_wo. This property should be incremented when updating administrator_password_wo.
The backup retention days for the MySQL Flexible Server. Possible values are between 1 and 35 days. Defaults to 7.
The creation mode which can be used to restore or replicate existing servers. Possible values are Default, PointInTimeRestore, GeoRestore, and Replica. Changing this forces a new MySQL Flexible Server to be created.
A customer_managed_key block as defined below.
The ID of the virtual network subnet to create the MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created.
Should geo redundant backup enabled? Defaults to false. Changing this forces a new MySQL Flexible Server to be created.
A high_availability block as defined below.
An identity block as defined below.
A maintenance_window block as defined below.
The point in time to restore from creation_source_server_id when create_mode is PointInTimeRestore. Changing this forces a new MySQL Flexible Server to be created.
The ID of the private DNS zone to create the MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created.
Whether approved public traffic is allowed through the firewall to this server. Possible values are Enabled and Disabled.
The replication role. Possible value is None.
The name of the Resource Group where the MySQL Flexible Server should exist. Changing this forces a new MySQL Flexible Server to be created.
The resource ID of the source MySQL Flexible Server to be restored. Required when create_mode is PointInTimeRestore, GeoRestore, and Replica. Changing this forces a new MySQL Flexible Server to be created.
A storage block as defined below.