FlexibleServer

class FlexibleServer : KotlinCustomResource

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/flexibleServer1

Properties

Link copied to clipboard

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.

Link copied to clipboard

The Password associated with the administrator_login for the MySQL Flexible Server.

Link copied to clipboard

An integer value used to trigger an update for administrator_password_wo. This property should be incremented when updating administrator_password_wo.

Link copied to clipboard
val backupRetentionDays: Output<Int>?

The backup retention days for the MySQL Flexible Server. Possible values are between 1 and 35 days. Defaults to 7.

Link copied to clipboard
val createMode: Output<String>?

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.

Link copied to clipboard

A customer_managed_key block as defined below.

Link copied to clipboard

The ID of the virtual network subnet to create the MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard
val fqdn: Output<String>

The fully qualified domain name of the MySQL Flexible Server.

Link copied to clipboard

Should geo redundant backup enabled? Defaults to false. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard

A high_availability block as defined below.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

An identity block as defined below.

Link copied to clipboard
val location: Output<String>

The Azure Region where the MySQL Flexible Server should exist. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard

A maintenance_window block as defined below.

Link copied to clipboard
val name: Output<String>

The name which should be used for this MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard

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.

Link copied to clipboard
val privateDnsZoneId: Output<String>?

The ID of the private DNS zone to create the MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard

Whether approved public traffic is allowed through the firewall to this server. Possible values are Enabled and Disabled.

Link copied to clipboard
Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val replicaCapacity: Output<Int>

The maximum number of replicas that a primary MySQL Flexible Server can have.

Link copied to clipboard
val replicationRole: Output<String>

The replication role. Possible value is None.

Link copied to clipboard

The name of the Resource Group where the MySQL Flexible Server should exist. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard
val skuName: Output<String>

The SKU Name for the MySQL Flexible Server.

Link copied to clipboard
val sourceServerId: Output<String>?

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.

Link copied to clipboard

A storage block as defined below.

Link copied to clipboard
val tags: Output<Map<String, String>>?

A mapping of tags which should be assigned to the MySQL Flexible Server.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val version: Output<String>

The version of the MySQL Flexible Server to use. Possible values are 5.7, and 8.0.21. Changing this forces a new MySQL Flexible Server to be created.

Link copied to clipboard
val zone: Output<String>