import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a PostgreSQL Flexible Server.
 *
 * ## Example Usage
 *
 * ```typescript
 * 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.DBforPostgreSQL/flexibleServers",
 *             actions: ["Microsoft.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],
 * });
 * ```
 *
 * ## `storageTier` defaults based on `storageMb`
 *
 * | `storageMb` | GiB   | TiB | Default | Supported `storageTier`'s           | Provisioned `IOPS`  |
 * |:------------:|:-----:|:---:|:-------:|:------------------------------------:|:-------------------:|
 * | 32768        | 32    |  -  | P4      | P4, P6, P10, P15, P20, P30, P40, P50 | 120                 |
 * | 65536        | 64    |  -  | P6      | P6, P10, P15, P20, P30, P40, P50     | 240                 |
 * | 131072       | 128   |  -  | P10     | P10, P15, P20, P30, P40, P50         | 500                 |
 * | 262144       | 256   |  -  | P15     | P15, P20, P30, P40, P50              | 1,100               |
 * | 524288       | 512   |  -  | P20     | P20, P30, P40, P50                   | 2,300               |
 * | 1048576      | 1024  |  1  | P30     | P30, P40, P50                        | 5,000               |
 * | 2097152      | 2048  |  2  | P40     | P40, P50                             | 7,500               |
 * | 4193280      | 4095  |  4  | P50     | P50                                  | 7,500               |
 * | 4194304      | 4096  |  4  | P50     | P50                                  | 7,500               |
 * | 8388608      | 8192  |  8  | P60     | P60, P70                             | 16,000              |
 * | 16777216     | 16384 |  16 | P70     | P70, P80                             | 18,000              |
 * | 33553408     | 32767 |  32 | P80     | P80                                  | 20,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 section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.DBforPostgreSQL` - 2025-08-01
 *
 * ## Import
 *
 * PostgreSQL Flexible Servers can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:postgresql/flexibleServer:FlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1
 * ```
 */
export declare class FlexibleServer extends pulumi.CustomResource {
    /**
     * Get an existing FlexibleServer resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FlexibleServerState, opts?: pulumi.CustomResourceOptions): FlexibleServer;
    /**
     * Returns true if the given object is an instance of FlexibleServer.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is FlexibleServer;
    /**
     * The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
     *
     * > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
     */
    readonly administratorLogin: pulumi.Output<string>;
    /**
     * The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server.
     */
    readonly administratorPassword: pulumi.Output<string | undefined>;
    /**
     * An integer value used to trigger an update for `administratorPasswordWo`. This property should be incremented when updating `administratorPasswordWo`.
     */
    readonly administratorPasswordWoVersion: pulumi.Output<number | undefined>;
    /**
     * An `authentication` block as defined below.
     */
    readonly authentication: pulumi.Output<outputs.postgresql.FlexibleServerAuthentication>;
    /**
     * Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
     */
    readonly autoGrowEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
     */
    readonly backupRetentionDays: pulumi.Output<number>;
    /**
     * A `cluster` block as defined below.
     */
    readonly cluster: pulumi.Output<outputs.postgresql.FlexibleServerCluster | undefined>;
    /**
     * The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica`, `ReviveDropped` and `Update`.
     */
    readonly createMode: pulumi.Output<string | undefined>;
    /**
     * A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
     */
    readonly customerManagedKey: pulumi.Output<outputs.postgresql.FlexibleServerCustomerManagedKey | undefined>;
    /**
     * 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.
     */
    readonly delegatedSubnetId: pulumi.Output<string | undefined>;
    /**
     * The FQDN of the PostgreSQL Flexible Server.
     */
    readonly fqdn: pulumi.Output<string>;
    /**
     * Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    readonly geoRedundantBackupEnabled: pulumi.Output<boolean | undefined>;
    /**
     * A `highAvailability` block as defined below.
     */
    readonly highAvailability: pulumi.Output<outputs.postgresql.FlexibleServerHighAvailability | undefined>;
    /**
     * An `identity` block as defined below.
     */
    readonly identity: pulumi.Output<outputs.postgresql.FlexibleServerIdentity | undefined>;
    /**
     * The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * A `maintenanceWindow` block as defined below.
     */
    readonly maintenanceWindow: pulumi.Output<outputs.postgresql.FlexibleServerMaintenanceWindow | undefined>;
    /**
     * The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** This must be unique across the entire Azure service, not just within the resource group.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    readonly pointInTimeRestoreTimeInUtc: pulumi.Output<string | undefined>;
    /**
     * The ID of the private DNS zone to create the PostgreSQL Flexible Server.
     *
     * > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `azure.privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
     */
    readonly privateDnsZoneId: pulumi.Output<string>;
    /**
     * Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
     *
     * > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
     */
    readonly publicNetworkAccessEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
     *
     * > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
     */
    readonly replicationRole: pulumi.Output<string | undefined>;
    /**
     * The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * 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`).
     */
    readonly skuName: pulumi.Output<string>;
    /**
     * The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    readonly sourceServerId: pulumi.Output<string | undefined>;
    /**
     * 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`.
     *
     * > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
     *
     * > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`. Scaling down `storageMb` forces a new PostgreSQL Flexible Server to be created.
     */
    readonly storageMb: pulumi.Output<number>;
    /**
     * 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 dependent on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
     *
     * > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
     */
    readonly storageTier: pulumi.Output<string>;
    /**
     * A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15`, `16`, `17`, and `18`. Required when `createMode` is `Default`.
     *
     * > **Note:** Downgrading `version` isn't supported and will force a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** In-place version updates are irreversible and may cause downtime for the PostgreSQL Flexible Server, determined by the size of the instance.
     *
     * > **Note:** Major version upgrades are not supported when `cluster` is specified.
     */
    readonly version: pulumi.Output<string>;
    /**
     * Specifies the Availability Zone in which the PostgreSQL Flexible Server should be located.
     *
     * > **Note:** Azure will automatically assign an Availability Zone if one is not specified. If the PostgreSQL Flexible Server fails-over to the Standby Availability Zone, the `zone` will be updated to reflect the current Primary Availability Zone. You can use Terraform's `ignoreChanges` functionality to ignore changes to the `zone` and `high_availability[0].standby_availability_zone` fields should you wish for Terraform to not migrate the PostgreSQL Flexible Server back to it's primary Availability Zone after a fail-over.
     *
     * > **Note:** The Availability Zones available depend on the Azure Region that the PostgreSQL Flexible Server is being deployed into - see [the Azure Availability Zones documentation](https://azure.microsoft.com/global-infrastructure/geographies/#geographies) for more information on which Availability Zones are available in each Azure Region.
     */
    readonly zone: pulumi.Output<string | undefined>;
    /**
     * Create a FlexibleServer resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: FlexibleServerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering FlexibleServer resources.
 */
export interface FlexibleServerState {
    /**
     * The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
     *
     * > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
     */
    administratorLogin?: pulumi.Input<string | undefined>;
    /**
     * The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server.
     */
    administratorPassword?: pulumi.Input<string | undefined>;
    /**
     * An integer value used to trigger an update for `administratorPasswordWo`. This property should be incremented when updating `administratorPasswordWo`.
     */
    administratorPasswordWoVersion?: pulumi.Input<number | undefined>;
    /**
     * An `authentication` block as defined below.
     */
    authentication?: pulumi.Input<inputs.postgresql.FlexibleServerAuthentication | undefined>;
    /**
     * Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
     */
    autoGrowEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
     */
    backupRetentionDays?: pulumi.Input<number | undefined>;
    /**
     * A `cluster` block as defined below.
     */
    cluster?: pulumi.Input<inputs.postgresql.FlexibleServerCluster | undefined>;
    /**
     * The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica`, `ReviveDropped` and `Update`.
     */
    createMode?: pulumi.Input<string | undefined>;
    /**
     * A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
     */
    customerManagedKey?: pulumi.Input<inputs.postgresql.FlexibleServerCustomerManagedKey | undefined>;
    /**
     * 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.
     */
    delegatedSubnetId?: pulumi.Input<string | undefined>;
    /**
     * The FQDN of the PostgreSQL Flexible Server.
     */
    fqdn?: pulumi.Input<string | undefined>;
    /**
     * Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    geoRedundantBackupEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `highAvailability` block as defined below.
     */
    highAvailability?: pulumi.Input<inputs.postgresql.FlexibleServerHighAvailability | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.postgresql.FlexibleServerIdentity | undefined>;
    /**
     * The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * A `maintenanceWindow` block as defined below.
     */
    maintenanceWindow?: pulumi.Input<inputs.postgresql.FlexibleServerMaintenanceWindow | undefined>;
    /**
     * The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** This must be unique across the entire Azure service, not just within the resource group.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    pointInTimeRestoreTimeInUtc?: pulumi.Input<string | undefined>;
    /**
     * The ID of the private DNS zone to create the PostgreSQL Flexible Server.
     *
     * > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `azure.privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
     */
    privateDnsZoneId?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
     *
     * > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
     */
    publicNetworkAccessEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
     *
     * > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
     */
    replicationRole?: pulumi.Input<string | undefined>;
    /**
     * The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * 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`).
     */
    skuName?: pulumi.Input<string | undefined>;
    /**
     * The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    sourceServerId?: pulumi.Input<string | undefined>;
    /**
     * 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`.
     *
     * > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
     *
     * > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`. Scaling down `storageMb` forces a new PostgreSQL Flexible Server to be created.
     */
    storageMb?: pulumi.Input<number | undefined>;
    /**
     * 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 dependent on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
     *
     * > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
     */
    storageTier?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15`, `16`, `17`, and `18`. Required when `createMode` is `Default`.
     *
     * > **Note:** Downgrading `version` isn't supported and will force a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** In-place version updates are irreversible and may cause downtime for the PostgreSQL Flexible Server, determined by the size of the instance.
     *
     * > **Note:** Major version upgrades are not supported when `cluster` is specified.
     */
    version?: pulumi.Input<string | undefined>;
    /**
     * Specifies the Availability Zone in which the PostgreSQL Flexible Server should be located.
     *
     * > **Note:** Azure will automatically assign an Availability Zone if one is not specified. If the PostgreSQL Flexible Server fails-over to the Standby Availability Zone, the `zone` will be updated to reflect the current Primary Availability Zone. You can use Terraform's `ignoreChanges` functionality to ignore changes to the `zone` and `high_availability[0].standby_availability_zone` fields should you wish for Terraform to not migrate the PostgreSQL Flexible Server back to it's primary Availability Zone after a fail-over.
     *
     * > **Note:** The Availability Zones available depend on the Azure Region that the PostgreSQL Flexible Server is being deployed into - see [the Azure Availability Zones documentation](https://azure.microsoft.com/global-infrastructure/geographies/#geographies) for more information on which Availability Zones are available in each Azure Region.
     */
    zone?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a FlexibleServer resource.
 */
export interface FlexibleServerArgs {
    /**
     * The Administrator login for the PostgreSQL Flexible Server. Required when `createMode` is `Default` and `authentication.password_auth_enabled` is `true`.
     *
     * > **Note:** Once `administratorLogin` is specified, changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** To create with `administratorLogin` specified or update with it first specified , `authentication.password_auth_enabled` must be set to `true`.
     */
    administratorLogin?: pulumi.Input<string | undefined>;
    /**
     * The Password associated with the `administratorLogin` for the PostgreSQL Flexible Server.
     */
    administratorPassword?: pulumi.Input<string | undefined>;
    /**
     * An integer value used to trigger an update for `administratorPasswordWo`. This property should be incremented when updating `administratorPasswordWo`.
     */
    administratorPasswordWoVersion?: pulumi.Input<number | undefined>;
    /**
     * An `authentication` block as defined below.
     */
    authentication?: pulumi.Input<inputs.postgresql.FlexibleServerAuthentication | undefined>;
    /**
     * Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`.
     */
    autoGrowEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.
     */
    backupRetentionDays?: pulumi.Input<number | undefined>;
    /**
     * A `cluster` block as defined below.
     */
    cluster?: pulumi.Input<inputs.postgresql.FlexibleServerCluster | undefined>;
    /**
     * The creation mode which can be used to restore or replicate existing servers. Possible values are `Default`, `GeoRestore`, `PointInTimeRestore`, `Replica`, `ReviveDropped` and `Update`.
     */
    createMode?: pulumi.Input<string | undefined>;
    /**
     * A `customerManagedKey` block as defined below. Changing this forces a new resource to be created.
     */
    customerManagedKey?: pulumi.Input<inputs.postgresql.FlexibleServerCustomerManagedKey | undefined>;
    /**
     * 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.
     */
    delegatedSubnetId?: pulumi.Input<string | undefined>;
    /**
     * Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to `false`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    geoRedundantBackupEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `highAvailability` block as defined below.
     */
    highAvailability?: pulumi.Input<inputs.postgresql.FlexibleServerHighAvailability | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.postgresql.FlexibleServerIdentity | undefined>;
    /**
     * The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * A `maintenanceWindow` block as defined below.
     */
    maintenanceWindow?: pulumi.Input<inputs.postgresql.FlexibleServerMaintenanceWindow | undefined>;
    /**
     * The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** This must be unique across the entire Azure service, not just within the resource group.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The point in time to restore from `sourceServerId` when `createMode` is `GeoRestore`, `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    pointInTimeRestoreTimeInUtc?: pulumi.Input<string | undefined>;
    /**
     * The ID of the private DNS zone to create the PostgreSQL Flexible Server.
     *
     * > **Note:** There will be a breaking change from upstream service at 15th July 2021, the `privateDnsZoneId` will be required when setting a `delegatedSubnetId`. For existing flexible servers who don't want to be recreated, you need to provide the `privateDnsZoneId` to the service team to manually migrate to the specified private DNS zone. The `azure.privatedns.Zone` should end with suffix `.postgres.database.azure.com`.
     */
    privateDnsZoneId?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether this PostgreSQL Flexible Server is publicly accessible. Defaults to `true`.
     *
     * > **Note:** `publicNetworkAccessEnabled` must be set to `false` when `delegatedSubnetId` and `privateDnsZoneId` have a value.
     */
    publicNetworkAccessEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The replication role for the PostgreSQL Flexible Server. Possible value is `None`.
     *
     * > **Note:** The `replicationRole` cannot be set while creating and only can be updated to `None` for replica server.
     */
    replicationRole?: pulumi.Input<string | undefined>;
    /**
     * The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * 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`).
     */
    skuName?: pulumi.Input<string | undefined>;
    /**
     * The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `createMode` is `GeoRestore`, `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created.
     */
    sourceServerId?: pulumi.Input<string | undefined>;
    /**
     * 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`.
     *
     * > **Note:** If the `storageMb` field is undefined on the initial deployment of the PostgreSQL Flexible Server resource it will default to `32768`. If the `storageMb` field has been defined and then removed, the `storageMb` field will retain the previously defined value.
     *
     * > **Note:** The `storageMb` can only be scaled up, for example, you can scale the `storageMb` from `32768` to `65536`, but not from `65536` to `32768`. Scaling down `storageMb` forces a new PostgreSQL Flexible Server to be created.
     */
    storageMb?: pulumi.Input<number | undefined>;
    /**
     * 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 dependent on the `storageMb` value. Please see the `storageTier` defaults based on `storageMb` table below.
     *
     * > **Note:** The `storageTier` can be scaled once every 12 hours, this restriction is in place to ensure stability and performance after any changes to your PostgreSQL Flexible Server's configuration.
     */
    storageTier?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags which should be assigned to the PostgreSQL Flexible Server.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12`, `13`, `14`, `15`, `16`, `17`, and `18`. Required when `createMode` is `Default`.
     *
     * > **Note:** Downgrading `version` isn't supported and will force a new PostgreSQL Flexible Server to be created.
     *
     * > **Note:** In-place version updates are irreversible and may cause downtime for the PostgreSQL Flexible Server, determined by the size of the instance.
     *
     * > **Note:** Major version upgrades are not supported when `cluster` is specified.
     */
    version?: pulumi.Input<string | undefined>;
    /**
     * Specifies the Availability Zone in which the PostgreSQL Flexible Server should be located.
     *
     * > **Note:** Azure will automatically assign an Availability Zone if one is not specified. If the PostgreSQL Flexible Server fails-over to the Standby Availability Zone, the `zone` will be updated to reflect the current Primary Availability Zone. You can use Terraform's `ignoreChanges` functionality to ignore changes to the `zone` and `high_availability[0].standby_availability_zone` fields should you wish for Terraform to not migrate the PostgreSQL Flexible Server back to it's primary Availability Zone after a fail-over.
     *
     * > **Note:** The Availability Zones available depend on the Azure Region that the PostgreSQL Flexible Server is being deployed into - see [the Azure Availability Zones documentation](https://azure.microsoft.com/global-infrastructure/geographies/#geographies) for more information on which Availability Zones are available in each Azure Region.
     */
    zone?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=flexibleServer.d.ts.map