import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Flexible server.
 *
 * Uses Azure REST API version 2024-08-01. In version 2.x of the Azure Native provider, it used API version 2022-12-01.
 *
 * Other available API versions: 2022-12-01, 2023-03-01-preview, 2023-06-01-preview, 2023-12-01-preview, 2024-03-01-preview, 2024-11-01-preview, 2025-01-01-preview, 2025-06-01-preview, 2025-08-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native dbforpostgresql [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class Server extends pulumi.CustomResource {
    /**
     * Get an existing Server 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Server;
    /**
     * Returns true if the given object is an instance of Server.  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 Server;
    /**
     * Name of the login designated as the first password based administrator assigned to your instance of PostgreSQL. Must be specified the first time that you enable password based authentication on a server. Once set to a given value, it cannot be changed for the rest of the life of a server. If you disable password based authentication on a server which had it enabled, this password based role isn't deleted.
     */
    readonly administratorLogin: pulumi.Output<string | undefined>;
    /**
     * Authentication configuration properties of a flexible server.
     */
    readonly authConfig: pulumi.Output<outputs.dbforpostgresql.AuthConfigResponse | undefined>;
    /**
     * Availability zone of a flexible server.
     */
    readonly availabilityZone: pulumi.Output<string | undefined>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * Backup properties of a flexible server.
     */
    readonly backup: pulumi.Output<outputs.dbforpostgresql.BackupResponse | undefined>;
    /**
     * Data encryption properties of a flexible server.
     */
    readonly dataEncryption: pulumi.Output<outputs.dbforpostgresql.DataEncryptionResponse | undefined>;
    /**
     * Fully qualified domain name of a flexible server.
     */
    readonly fullyQualifiedDomainName: pulumi.Output<string>;
    /**
     * High availability properties of a flexible server.
     */
    readonly highAvailability: pulumi.Output<outputs.dbforpostgresql.HighAvailabilityResponse | undefined>;
    /**
     * User assigned managed identities assigned to the flexible server.
     */
    readonly identity: pulumi.Output<outputs.dbforpostgresql.UserAssignedIdentityResponse | undefined>;
    /**
     * The geo-location where the resource lives
     */
    readonly location: pulumi.Output<string>;
    /**
     * Maintenance window properties of a flexible server.
     */
    readonly maintenanceWindow: pulumi.Output<outputs.dbforpostgresql.MaintenanceWindowResponse | undefined>;
    /**
     * Minor version of PostgreSQL database engine.
     */
    readonly minorVersion: pulumi.Output<string>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * Network properties of a flexible server. Only required if you want your server to be integrated into a virtual network provided by customer.
     */
    readonly network: pulumi.Output<outputs.dbforpostgresql.NetworkResponse | undefined>;
    /**
     * List of private endpoint connections associated with the specified flexible server.
     */
    readonly privateEndpointConnections: pulumi.Output<outputs.dbforpostgresql.PrivateEndpointConnectionResponse[]>;
    /**
     * Read replica properties of a flexible server. Required only in case that you want to promote a server.
     */
    readonly replica: pulumi.Output<outputs.dbforpostgresql.ReplicaResponse | undefined>;
    /**
     * Maximum number of read replicas allowed for a flexible server.
     */
    readonly replicaCapacity: pulumi.Output<number>;
    /**
     * Role of the server in a replication set.
     */
    readonly replicationRole: pulumi.Output<string | undefined>;
    /**
     * Compute tier and size of a flexible server.
     */
    readonly sku: pulumi.Output<outputs.dbforpostgresql.SkuResponse | undefined>;
    /**
     * Identifier of the flexible server to be used as the source of the new flexible server. Required when 'createMode' is 'PointInTimeRestore', 'GeoRestore', 'Replica', or 'ReviveDropped'. This property is returned only when the target flexible server is a read replica.
     */
    readonly sourceServerResourceId: pulumi.Output<string | undefined>;
    /**
     * Possible states of a flexible server.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Storage properties of a flexible server.
     */
    readonly storage: pulumi.Output<outputs.dbforpostgresql.StorageResponse | undefined>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.dbforpostgresql.SystemDataResponse>;
    /**
     * Resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * Major version of PostgreSQL database engine.
     */
    readonly version: pulumi.Output<string | undefined>;
    /**
     * Create a Server 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: ServerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Server resource.
 */
export interface ServerArgs {
    /**
     * Name of the login designated as the first password based administrator assigned to your instance of PostgreSQL. Must be specified the first time that you enable password based authentication on a server. Once set to a given value, it cannot be changed for the rest of the life of a server. If you disable password based authentication on a server which had it enabled, this password based role isn't deleted.
     */
    administratorLogin?: pulumi.Input<string>;
    /**
     * Password assigned to the administrator login. As long as password authentication is enabled, this password can be changed at any time.
     */
    administratorLoginPassword?: pulumi.Input<string>;
    /**
     * Authentication configuration properties of a flexible server.
     */
    authConfig?: pulumi.Input<inputs.dbforpostgresql.AuthConfigArgs>;
    /**
     * Availability zone of a flexible server.
     */
    availabilityZone?: pulumi.Input<string>;
    /**
     * Backup properties of a flexible server.
     */
    backup?: pulumi.Input<inputs.dbforpostgresql.BackupArgs>;
    /**
     * Creation mode of a new flexible server.
     */
    createMode?: pulumi.Input<string | enums.dbforpostgresql.CreateMode>;
    /**
     * Data encryption properties of a flexible server.
     */
    dataEncryption?: pulumi.Input<inputs.dbforpostgresql.DataEncryptionArgs>;
    /**
     * High availability properties of a flexible server.
     */
    highAvailability?: pulumi.Input<inputs.dbforpostgresql.HighAvailabilityArgs>;
    /**
     * User assigned managed identities assigned to the flexible server.
     */
    identity?: pulumi.Input<inputs.dbforpostgresql.UserAssignedIdentityArgs>;
    /**
     * The geo-location where the resource lives
     */
    location?: pulumi.Input<string>;
    /**
     * Maintenance window properties of a flexible server.
     */
    maintenanceWindow?: pulumi.Input<inputs.dbforpostgresql.MaintenanceWindowArgs>;
    /**
     * Network properties of a flexible server. Only required if you want your server to be integrated into a virtual network provided by customer.
     */
    network?: pulumi.Input<inputs.dbforpostgresql.NetworkArgs>;
    /**
     * Creation time (in ISO8601 format) of the backup which you want to restore in the new flexible server. It's required when 'createMode' is 'PointInTimeRestore', 'GeoRestore', or 'ReviveDropped'.
     */
    pointInTimeUTC?: pulumi.Input<string>;
    /**
     * Read replica properties of a flexible server. Required only in case that you want to promote a server.
     */
    replica?: pulumi.Input<inputs.dbforpostgresql.ReplicaArgs>;
    /**
     * Role of the server in a replication set.
     */
    replicationRole?: pulumi.Input<string | enums.dbforpostgresql.ReplicationRole>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The name of the server.
     */
    serverName?: pulumi.Input<string>;
    /**
     * Compute tier and size of a flexible server.
     */
    sku?: pulumi.Input<inputs.dbforpostgresql.SkuArgs>;
    /**
     * Identifier of the flexible server to be used as the source of the new flexible server. Required when 'createMode' is 'PointInTimeRestore', 'GeoRestore', 'Replica', or 'ReviveDropped'. This property is returned only when the target flexible server is a read replica.
     */
    sourceServerResourceId?: pulumi.Input<string>;
    /**
     * Storage properties of a flexible server.
     */
    storage?: pulumi.Input<inputs.dbforpostgresql.StorageArgs>;
    /**
     * Resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Major version of PostgreSQL database engine.
     */
    version?: pulumi.Input<string | enums.dbforpostgresql.ServerVersion>;
}
