import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Gets information about a migration.
 *
 * Uses Azure REST API version 2024-08-01.
 *
 * Other available API versions: 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 function getMigration(args: GetMigrationArgs, opts?: pulumi.InvokeOptions): Promise<GetMigrationResult>;
export interface GetMigrationArgs {
    /**
     * Name of migration.
     */
    migrationName: string;
    /**
     * Name of resource group of target database server.
     */
    resourceGroupName: string;
    /**
     * Identifier of subscription of target database server.
     */
    subscriptionId?: string;
    /**
     * Name of target database server.
     */
    targetDbServerName: string;
}
/**
 * Migration.
 */
export interface GetMigrationResult {
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: string;
    /**
     * Indicates if cancel must be triggered for the entire migration.
     */
    readonly cancel?: string;
    /**
     * Current status of a migration.
     */
    readonly currentStatus: outputs.dbforpostgresql.MigrationStatusResponse;
    /**
     * When you want to trigger cancel for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array.
     */
    readonly dbsToCancelMigrationOn?: string[];
    /**
     * Names of databases to migrate.
     */
    readonly dbsToMigrate?: string[];
    /**
     * When you want to trigger cutover for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array.
     */
    readonly dbsToTriggerCutoverOn?: string[];
    /**
     * Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
     */
    readonly id: string;
    /**
     * The geo-location where the resource lives
     */
    readonly location: string;
    /**
     * Indicates if roles and permissions must be migrated.
     */
    readonly migrateRoles?: string;
    /**
     * Identifier of a migration.
     */
    readonly migrationId: string;
    /**
     * Identifier of the private endpoint migration instance.
     */
    readonly migrationInstanceResourceId?: string;
    /**
     * Mode used to perform the migration: Online or Offline.
     */
    readonly migrationMode?: string;
    /**
     * Supported option for a migration.
     */
    readonly migrationOption?: string;
    /**
     * End time (UTC) for migration window.
     */
    readonly migrationWindowEndTimeInUtc?: string;
    /**
     * Start time (UTC) for migration window.
     */
    readonly migrationWindowStartTimeInUtc?: string;
    /**
     * The name of the resource
     */
    readonly name: string;
    /**
     * Indicates if databases on the target server can be overwritten when already present. If set to 'False', when the migration workflow detects that the database already exists on the target server, it will wait for a confirmation.
     */
    readonly overwriteDbsInTarget?: string;
    /**
     * Indicates whether to setup LogicalReplicationOnSourceDb, if needed.
     */
    readonly setupLogicalReplicationOnSourceDbIfNeeded?: string;
    /**
     * Fully qualified domain name (FQDN) or IP address of the source server. This property is optional. When provided, the migration service will always use it to connect to the source server.
     */
    readonly sourceDbServerFullyQualifiedDomainName?: string;
    /**
     * Metadata of source database server.
     */
    readonly sourceDbServerMetadata: outputs.dbforpostgresql.DbServerMetadataResponse;
    /**
     * Identifier of the source database server resource, when 'sourceType' is 'PostgreSQLSingleServer'. For other source types this must be set to ipaddress:port@username or hostname:port@username.
     */
    readonly sourceDbServerResourceId?: string;
    /**
     * Source server type used for the migration: ApsaraDB_RDS, AWS, AWS_AURORA, AWS_EC2, AWS_RDS, AzureVM, Crunchy_PostgreSQL, Digital_Ocean_Droplets, Digital_Ocean_PostgreSQL, EDB, EDB_Oracle_Server, EDB_PostgreSQL, GCP, GCP_AlloyDB, GCP_CloudSQL, GCP_Compute, Heroku_PostgreSQL, Huawei_Compute, Huawei_RDS, OnPremises, PostgreSQLCosmosDB, PostgreSQLFlexibleServer, PostgreSQLSingleServer, or Supabase_PostgreSQL
     */
    readonly sourceType?: string;
    /**
     * SSL mode used by a migration. Default SSL mode for 'PostgreSQLSingleServer' is 'VerifyFull'. Default SSL mode for other source types is 'Prefer'.
     */
    readonly sslMode?: string;
    /**
     * Indicates if data migration must start right away.
     */
    readonly startDataMigration?: string;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: outputs.dbforpostgresql.SystemDataResponse;
    /**
     * Resource tags.
     */
    readonly tags?: {
        [key: string]: string;
    };
    /**
     * Fully qualified domain name (FQDN) or IP address of the target server. This property is optional. When provided, the migration service will always use it to connect to the target server.
     */
    readonly targetDbServerFullyQualifiedDomainName?: string;
    /**
     * Metadata of target database server.
     */
    readonly targetDbServerMetadata: outputs.dbforpostgresql.DbServerMetadataResponse;
    /**
     * Identifier of the target database server resource.
     */
    readonly targetDbServerResourceId: string;
    /**
     * Indicates if cutover must be triggered for the entire migration.
     */
    readonly triggerCutover?: string;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: string;
}
/**
 * Gets information about a migration.
 *
 * Uses Azure REST API version 2024-08-01.
 *
 * Other available API versions: 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 function getMigrationOutput(args: GetMigrationOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetMigrationResult>;
export interface GetMigrationOutputArgs {
    /**
     * Name of migration.
     */
    migrationName: pulumi.Input<string>;
    /**
     * Name of resource group of target database server.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Identifier of subscription of target database server.
     */
    subscriptionId?: pulumi.Input<string>;
    /**
     * Name of target database server.
     */
    targetDbServerName: pulumi.Input<string>;
}
