FlexibleServerArgs

data class FlexibleServerArgs(val administratorLogin: Output<String>? = null, val administratorPassword: Output<String>? = null, val administratorPasswordWoVersion: Output<Int>? = null, val authentication: Output<FlexibleServerAuthenticationArgs>? = null, val autoGrowEnabled: Output<Boolean>? = null, val backupRetentionDays: Output<Int>? = null, val createMode: Output<String>? = null, val customerManagedKey: Output<FlexibleServerCustomerManagedKeyArgs>? = null, val delegatedSubnetId: Output<String>? = null, val geoRedundantBackupEnabled: Output<Boolean>? = null, val highAvailability: Output<FlexibleServerHighAvailabilityArgs>? = null, val identity: Output<FlexibleServerIdentityArgs>? = null, val location: Output<String>? = null, val maintenanceWindow: Output<FlexibleServerMaintenanceWindowArgs>? = null, val name: Output<String>? = null, val pointInTimeRestoreTimeInUtc: Output<String>? = null, val privateDnsZoneId: Output<String>? = null, val publicNetworkAccessEnabled: Output<Boolean>? = null, val replicationRole: Output<String>? = null, val resourceGroupName: Output<String>? = null, val skuName: Output<String>? = null, val sourceServerId: Output<String>? = null, val storageMb: Output<Int>? = null, val storageTier: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val version: Output<String>? = null, val zone: Output<String>? = null) : ConvertibleToJava<FlexibleServerArgs>

Manages a PostgreSQL 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&#46;0&#46;0&#46;0/16"],
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "example-sn",
resourceGroupName: example.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10&#46;0&#46;2&#46;0/24"],
serviceEndpoints: ["Microsoft&#46;Storage"],
delegations: [{
name: "fs",
serviceDelegation: {
name: "Microsoft.DBforPostgreSQL/flexibleServers",
actions: ["Microsoft&#46;Network/virtualNetworks/subnets/join/action"],
},
}],
});
const exampleZone = new azure.privatedns.Zone("example", {
name: "example.postgres.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,
}, {
dependsOn: [exampleSubnet],
});
const exampleFlexibleServer = new azure.postgresql.FlexibleServer("example", {
name: "example-psqlflexibleserver",
resourceGroupName: example.name,
location: example.location,
version: "12",
delegatedSubnetId: exampleSubnet.id,
privateDnsZoneId: exampleZone.id,
publicNetworkAccessEnabled: false,
administratorLogin: "psqladmin",
administratorPassword: "H@Sh1CoR3!",
zone: "1",
storageMb: 32768,
storageTier: "P4",
skuName: "B_Standard_B1ms",
}, {
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&#46;0&#46;0&#46;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&#46;0&#46;2&#46;0/24"],
service_endpoints=["Microsoft&#46;Storage"],
delegations=[{
"name": "fs",
"service_delegation": {
"name": "Microsoft.DBforPostgreSQL/flexibleServers",
"actions": ["Microsoft&#46;Network/virtualNetworks/subnets/join/action"],
},
}])
example_zone = azure.privatedns.Zone("example",
name="example.postgres.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,
opts = pulumi.ResourceOptions(depends_on=[example_subnet]))
example_flexible_server = azure.postgresql.FlexibleServer("example",
name="example-psqlflexibleserver",
resource_group_name=example.name,
location=example.location,
version="12",
delegated_subnet_id=example_subnet.id,
private_dns_zone_id=example_zone.id,
public_network_access_enabled=False,
administrator_login="psqladmin",
administrator_password="H@Sh1CoR3!",
zone="1",
storage_mb=32768,
storage_tier="P4",
sku_name="B_Standard_B1ms",
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.DBforPostgreSQL/flexibleServers",
Actions = new[]
{
"Microsoft.Network/virtualNetworks/subnets/join/action",
},
},
},
},
});
var exampleZone = new Azure.PrivateDns.Zone("example", new()
{
Name = "example.postgres.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,
}, new CustomResourceOptions
{
DependsOn =
{
exampleSubnet,
},
});
var exampleFlexibleServer = new Azure.PostgreSql.FlexibleServer("example", new()
{
Name = "example-psqlflexibleserver",
ResourceGroupName = example.Name,
Location = example.Location,
Version = "12",
DelegatedSubnetId = exampleSubnet.Id,
PrivateDnsZoneId = exampleZone.Id,
PublicNetworkAccessEnabled = false,
AdministratorLogin = "psqladmin",
AdministratorPassword = "H@Sh1CoR3!",
Zone = "1",
StorageMb = 32768,
StorageTier = "P4",
SkuName = "B_Standard_B1ms",
}, 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/network"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/postgresql"
"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.DBforPostgreSQL/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.postgres.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,
}, pulumi.DependsOn([]pulumi.Resource{
exampleSubnet,
}))
if err != nil {
return err
}
_, err = postgresql.NewFlexibleServer(ctx, "example", &postgresql.FlexibleServerArgs{
Name: pulumi.String("example-psqlflexibleserver"),
ResourceGroupName: example.Name,
Location: example.Location,
Version: pulumi.String("12"),
DelegatedSubnetId: exampleSubnet.ID(),
PrivateDnsZoneId: exampleZone.ID(),
PublicNetworkAccessEnabled: pulumi.Bool(false),
AdministratorLogin: pulumi.String("psqladmin"),
AdministratorPassword: pulumi.String("H@Sh1CoR3!"),
Zone: pulumi.String("1"),
StorageMb: pulumi.Int(32768),
StorageTier: pulumi.String("P4"),
SkuName: pulumi.String("B_Standard_B1ms"),
}, 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.postgresql.FlexibleServer;
import com.pulumi.azure.postgresql.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.DBforPostgreSQL/flexibleServers")
.actions("Microsoft.Network/virtualNetworks/subnets/join/action")
.build())
.build())
.build());
var exampleZone = new Zone("exampleZone", ZoneArgs.builder()
.name("example.postgres.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(), CustomResourceOptions.builder()
.dependsOn(exampleSubnet)
.build());
var exampleFlexibleServer = new FlexibleServer("exampleFlexibleServer", FlexibleServerArgs.builder()
.name("example-psqlflexibleserver")
.resourceGroupName(example.name())
.location(example.location())
.version("12")
.delegatedSubnetId(exampleSubnet.id())
.privateDnsZoneId(exampleZone.id())
.publicNetworkAccessEnabled(false)
.administratorLogin("psqladmin")
.administratorPassword("H@Sh1CoR3!")
.zone("1")
.storageMb(32768)
.storageTier("P4")
.skuName("B_Standard_B1ms")
.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.DBforPostgreSQL/flexibleServers
actions:
- Microsoft.Network/virtualNetworks/subnets/join/action
exampleZone:
type: azure:privatedns:Zone
name: example
properties:
name: example.postgres.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}
options:
dependsOn:
- ${exampleSubnet}
exampleFlexibleServer:
type: azure:postgresql:FlexibleServer
name: example
properties:
name: example-psqlflexibleserver
resourceGroupName: ${example.name}
location: ${example.location}
version: '12'
delegatedSubnetId: ${exampleSubnet.id}
privateDnsZoneId: ${exampleZone.id}
publicNetworkAccessEnabled: false
administratorLogin: psqladmin
administratorPassword: H@Sh1CoR3!
zone: '1'
storageMb: 32768
storageTier: P4
skuName: B_Standard_B1ms
options:
dependsOn:
- ${exampleZoneVirtualNetworkLink}

storage_tier defaults based on storage_mb

storage_mbGiBTiBDefaultSupported storage_tier'sProvisioned IOPS
3276832-P4P4, P6, P10, P15, P20, P30, P40, P50120
6553664-P6P6, P10, P15, P20, P30, P40, P50240
131072128-P10P10, P15, P20, P30, P40, P50500
262144256-P15P15, P20, P30, P40, P501,100
524288512-P20P20, P30, P40, P502,300
104857610241P30P30, P40, P505,000
209715220482P40P40, P507,500
419328040954P50P507,500
419430440964P50P507,500
838860881928P60P60, P7016,000
167772161638416P70P70, P8018,000
335534083276732P80P8020,000

Note: Host Caching (ReadOnly and Read/Write) is supported on disk sizes less than 4194304 MiB. This means any disk that is provisioned up to 4193280 MiB can take advantage of Host Caching. Host caching is not supported for disk sizes larger than 4193280 MiB. For example, a P50 premium disk provisioned at 4193280 GiB can take advantage of Host caching while a P50 disk provisioned at 4194304 MiB cannot. Moving from a smaller disk size to a larger disk size, greater than 4193280 MiB, will cause the disk to lose the disk caching ability.

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.DBforPostgreSQL: 2024-08-01

Import

PostgreSQL Flexible Servers can be imported using the resource id, e.g.

$ pulumi import azure:postgresql/flexibleServer:FlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1

Constructors

Link copied to clipboard
constructor(administratorLogin: Output<String>? = null, administratorPassword: Output<String>? = null, administratorPasswordWoVersion: Output<Int>? = null, authentication: Output<FlexibleServerAuthenticationArgs>? = null, autoGrowEnabled: Output<Boolean>? = null, backupRetentionDays: Output<Int>? = null, createMode: Output<String>? = null, customerManagedKey: Output<FlexibleServerCustomerManagedKeyArgs>? = null, delegatedSubnetId: Output<String>? = null, geoRedundantBackupEnabled: Output<Boolean>? = null, highAvailability: Output<FlexibleServerHighAvailabilityArgs>? = null, identity: Output<FlexibleServerIdentityArgs>? = null, location: Output<String>? = null, maintenanceWindow: Output<FlexibleServerMaintenanceWindowArgs>? = null, name: Output<String>? = null, pointInTimeRestoreTimeInUtc: Output<String>? = null, privateDnsZoneId: Output<String>? = null, publicNetworkAccessEnabled: Output<Boolean>? = null, replicationRole: Output<String>? = null, resourceGroupName: Output<String>? = null, skuName: Output<String>? = null, sourceServerId: Output<String>? = null, storageMb: Output<Int>? = null, storageTier: Output<String>? = null, tags: Output<Map<String, String>>? = null, version: Output<String>? = null, zone: Output<String>? = null)

Properties

Link copied to clipboard
val administratorLogin: Output<String>? = null

The Administrator login for the PostgreSQL Flexible Server. Required when create_mode is Default and authentication.password_auth_enabled is true.

Link copied to clipboard
val administratorPassword: Output<String>? = null

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

Link copied to clipboard
val administratorPasswordWoVersion: Output<Int>? = null

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

An authentication block as defined below.

Link copied to clipboard
val autoGrowEnabled: Output<Boolean>? = null

Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to false.

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

The backup retention days for the PostgreSQL Flexible Server. Possible values are between 7 and 35 days.

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

The creation mode which can be used to restore or replicate existing servers. Possible values are Default, GeoRestore, PointInTimeRestore, Replica and Update.

Link copied to clipboard

A customer_managed_key block as defined below. Changing this forces a new resource to be created.

Link copied to clipboard
val delegatedSubnetId: Output<String>? = null

The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.

Link copied to clipboard
val geoRedundantBackupEnabled: Output<Boolean>? = null

Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to false. Changing this forces a new PostgreSQL Flexible Server to be created.

Link copied to clipboard

A high_availability block as defined below.

Link copied to clipboard

An identity block as defined below.

Link copied to clipboard
val location: Output<String>? = null

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

Link copied to clipboard

A maintenance_window block as defined below.

Link copied to clipboard
val name: Output<String>? = null

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

Link copied to clipboard
val pointInTimeRestoreTimeInUtc: Output<String>? = null

The point in time to restore from source_server_id when create_mode is GeoRestore, PointInTimeRestore. Changing this forces a new PostgreSQL Flexible Server to be created.

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

The ID of the private DNS zone to create the PostgreSQL Flexible Server.

Link copied to clipboard
val publicNetworkAccessEnabled: Output<Boolean>? = null

Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to true.

Link copied to clipboard
val replicationRole: Output<String>? = null

The replication role for the PostgreSQL Flexible Server. Possible value is None.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

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

Link copied to clipboard
val skuName: Output<String>? = null

The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the tier + name pattern (e.g. B_Standard_B1ms, GP_Standard_D2s_v3, MO_Standard_E4s_v3).

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

The resource ID of the source PostgreSQL Flexible Server to be restored. Required when create_mode is GeoRestore, PointInTimeRestore or Replica. Changing this forces a new PostgreSQL Flexible Server to be created.

Link copied to clipboard
val storageMb: Output<Int>? = null

The max storage allowed for the PostgreSQL Flexible Server. Possible values are 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4193280, 4194304, 8388608, 16777216 and 33553408.

Link copied to clipboard
val storageTier: Output<String>? = null

The name of storage performance tier for IOPS of the PostgreSQL Flexible Server. Possible values are P4, P6, P10, P15,P20, P30,P40, P50,P60, P70 or P80. Default value is dependant on the storage_mb value. Please see the storage_tier defaults based on storage_mb table below.

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

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

Link copied to clipboard
val version: Output<String>? = null

The version of PostgreSQL Flexible Server to use. Possible values are 11,12, 13, 14, 15 and 16. Required when create_mode is Default.

Link copied to clipboard
val zone: Output<String>? = null

Functions

Link copied to clipboard
open override fun toJava(): FlexibleServerArgs