import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Assessment resource in Oracle Cloud Infrastructure Database Migration service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/database-migration/latest/Assessment
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/databasemigration
 *
 * Create an Assessment resource that contains all the details to perform the
 * database assessment operation, such as source and destination database
 * details, network throughput, accepted downtime etc.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testAssessment = new oci.databasemigration.Assessment("test_assessment", {
 *     acceptableDowntime: assessmentAcceptableDowntime,
 *     compartmentId: compartmentId,
 *     databaseCombination: assessmentDatabaseCombination,
 *     databaseDataSize: assessmentDatabaseDataSize,
 *     ddlExpectation: assessmentDdlExpectation,
 *     networkSpeedMegabitPerSecond: assessmentNetworkSpeedMegabitPerSecond,
 *     sourceDatabaseConnection: {
 *         id: assessmentSourceDatabaseConnectionId,
 *     },
 *     targetDatabaseConnection: {
 *         connectionType: assessmentTargetDatabaseConnectionConnectionType,
 *         databaseVersion: assessmentTargetDatabaseConnectionDatabaseVersion,
 *         id: assessmentTargetDatabaseConnectionId,
 *         technologySubType: assessmentTargetDatabaseConnectionTechnologySubType,
 *         technologyType: assessmentTargetDatabaseConnectionTechnologyType,
 *     },
 *     bulkIncludeExcludeData: assessmentBulkIncludeExcludeData,
 *     creationType: assessmentCreationType,
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     description: assessmentDescription,
 *     displayName: assessmentDisplayName,
 *     excludeObjects: [{
 *         object: assessmentExcludeObjectsObject,
 *         isOmitExcludedTableFromReplication: assessmentExcludeObjectsIsOmitExcludedTableFromReplication === "true",
 *         owner: assessmentExcludeObjectsOwner,
 *         schema: assessmentExcludeObjectsSchema,
 *         type: assessmentExcludeObjectsType,
 *     }],
 *     freeformTags: assessmentFreeformTags,
 *     includeObjects: [{
 *         object: assessmentIncludeObjectsObject,
 *         isOmitExcludedTableFromReplication: assessmentIncludeObjectsIsOmitExcludedTableFromReplication === "true",
 *         owner: assessmentIncludeObjectsOwner,
 *         schema: assessmentIncludeObjectsSchema,
 *         type: assessmentIncludeObjectsType,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Assessments can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DatabaseMigration/assessment:Assessment test_assessment "id"
 * ```
 */
export declare class Assessment extends pulumi.CustomResource {
    /**
     * Get an existing Assessment 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?: AssessmentState, opts?: pulumi.CustomResourceOptions): Assessment;
    /**
     * Returns true if the given object is an instance of Assessment.  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 Assessment;
    /**
     * (Updatable) Time allowed for the application downtime.
     */
    readonly acceptableDowntime: pulumi.Output<string>;
    /**
     * The migration type of the migration to be performed.
     */
    readonly assessmentMigrationType: pulumi.Output<string>;
    /**
     * Specifies the database objects to be excluded from the migration in bulk. The definition accepts input in a CSV format, newline separated for each entry. More details can be found in the documentation.
     */
    readonly bulkIncludeExcludeData: pulumi.Output<string>;
    /**
     * (Updatable) The OCID of the resource being referenced.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) The type of assessment creation.
     */
    readonly creationType: pulumi.Output<string>;
    /**
     * (Updatable) The combination of source and target databases participating in a migration. Example: ORACLE means the migration is meant for migrating Oracle source and target databases.
     */
    readonly databaseCombination: pulumi.Output<string>;
    /**
     * (Updatable) The size of a source database.
     */
    readonly databaseDataSize: pulumi.Output<string>;
    /**
     * (Updatable) DDL expectation values.
     */
    readonly ddlExpectation: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) A user-friendly description. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Database objects to exclude from migration, cannot be specified alongside 'includeObjects'
     */
    readonly excludeObjects: pulumi.Output<outputs.DatabaseMigration.AssessmentExcludeObject[]>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.  For more information, see Resource Tags. Example: {"Department": "Finance"}
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Database objects to include from migration, cannot be specified alongside 'excludeObjects'
     */
    readonly includeObjects: pulumi.Output<outputs.DatabaseMigration.AssessmentIncludeObject[]>;
    /**
     * True if CDB should be defined, false otherwise.
     */
    readonly isCdbSupported: pulumi.Output<boolean>;
    /**
     * The OCID of the resource being referenced.
     */
    readonly migrationId: pulumi.Output<string>;
    /**
     * (Updatable) A network speed in Megabits per second.
     */
    readonly networkSpeedMegabitPerSecond: pulumi.Output<string>;
    /**
     * (Updatable) Source Assessment Connection object
     */
    readonly sourceDatabaseConnection: pulumi.Output<outputs.DatabaseMigration.AssessmentSourceDatabaseConnection>;
    /**
     * The current state of the Assessment resource.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Target Assessment Connection object
     */
    readonly targetDatabaseConnection: pulumi.Output<outputs.DatabaseMigration.AssessmentTargetDatabaseConnection>;
    /**
     * An RFC3339 formatted datetime string such as `2016-08-25T21:10:29.600Z`.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * An RFC3339 formatted datetime string such as `2016-08-25T21:10:29.600Z`.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a Assessment 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: AssessmentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Assessment resources.
 */
export interface AssessmentState {
    /**
     * (Updatable) Time allowed for the application downtime.
     */
    acceptableDowntime?: pulumi.Input<string | undefined>;
    /**
     * The migration type of the migration to be performed.
     */
    assessmentMigrationType?: pulumi.Input<string | undefined>;
    /**
     * Specifies the database objects to be excluded from the migration in bulk. The definition accepts input in a CSV format, newline separated for each entry. More details can be found in the documentation.
     */
    bulkIncludeExcludeData?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the resource being referenced.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The type of assessment creation.
     */
    creationType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The combination of source and target databases participating in a migration. Example: ORACLE means the migration is meant for migrating Oracle source and target databases.
     */
    databaseCombination?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The size of a source database.
     */
    databaseDataSize?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) DDL expectation values.
     */
    ddlExpectation?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly description. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Database objects to exclude from migration, cannot be specified alongside 'includeObjects'
     */
    excludeObjects?: pulumi.Input<pulumi.Input<inputs.DatabaseMigration.AssessmentExcludeObject>[] | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.  For more information, see Resource Tags. Example: {"Department": "Finance"}
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Database objects to include from migration, cannot be specified alongside 'excludeObjects'
     */
    includeObjects?: pulumi.Input<pulumi.Input<inputs.DatabaseMigration.AssessmentIncludeObject>[] | undefined>;
    /**
     * True if CDB should be defined, false otherwise.
     */
    isCdbSupported?: pulumi.Input<boolean | undefined>;
    /**
     * The OCID of the resource being referenced.
     */
    migrationId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A network speed in Megabits per second.
     */
    networkSpeedMegabitPerSecond?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Source Assessment Connection object
     */
    sourceDatabaseConnection?: pulumi.Input<inputs.DatabaseMigration.AssessmentSourceDatabaseConnection | undefined>;
    /**
     * The current state of the Assessment resource.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Target Assessment Connection object
     */
    targetDatabaseConnection?: pulumi.Input<inputs.DatabaseMigration.AssessmentTargetDatabaseConnection | undefined>;
    /**
     * An RFC3339 formatted datetime string such as `2016-08-25T21:10:29.600Z`.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * An RFC3339 formatted datetime string such as `2016-08-25T21:10:29.600Z`.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Assessment resource.
 */
export interface AssessmentArgs {
    /**
     * (Updatable) Time allowed for the application downtime.
     */
    acceptableDowntime: pulumi.Input<string>;
    /**
     * Specifies the database objects to be excluded from the migration in bulk. The definition accepts input in a CSV format, newline separated for each entry. More details can be found in the documentation.
     */
    bulkIncludeExcludeData?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the resource being referenced.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) The type of assessment creation.
     */
    creationType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The combination of source and target databases participating in a migration. Example: ORACLE means the migration is meant for migrating Oracle source and target databases.
     */
    databaseCombination: pulumi.Input<string>;
    /**
     * (Updatable) The size of a source database.
     */
    databaseDataSize: pulumi.Input<string>;
    /**
     * (Updatable) DDL expectation values.
     */
    ddlExpectation: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly description. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.  Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Database objects to exclude from migration, cannot be specified alongside 'includeObjects'
     */
    excludeObjects?: pulumi.Input<pulumi.Input<inputs.DatabaseMigration.AssessmentExcludeObject>[] | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.  For more information, see Resource Tags. Example: {"Department": "Finance"}
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Database objects to include from migration, cannot be specified alongside 'excludeObjects'
     */
    includeObjects?: pulumi.Input<pulumi.Input<inputs.DatabaseMigration.AssessmentIncludeObject>[] | undefined>;
    /**
     * (Updatable) A network speed in Megabits per second.
     */
    networkSpeedMegabitPerSecond: pulumi.Input<string>;
    /**
     * (Updatable) Source Assessment Connection object
     */
    sourceDatabaseConnection: pulumi.Input<inputs.DatabaseMigration.AssessmentSourceDatabaseConnection>;
    /**
     * (Updatable) Target Assessment Connection object
     */
    targetDatabaseConnection: pulumi.Input<inputs.DatabaseMigration.AssessmentTargetDatabaseConnection>;
}
//# sourceMappingURL=assessment.d.ts.map