import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Discovery Job resource in Oracle Cloud Infrastructure Data Safe service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-safe/latest/DiscoveryJob
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datasafe
 *
 * Performs incremental data discovery for the specified sensitive data model. It uses the target database associated
 * with the sensitive data model.
 * After performing data discovery, you can use ListDiscoveryJobResults to view the discovery results, PatchDiscoveryJobResults
 * to specify the action you want perform on these results, and then ApplyDiscoveryJobResults to process the results
 * and apply them to the sensitive data model.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testDiscoveryJob = new oci.datasafe.DiscoveryMod("test_discovery_job", {
 *     compartmentId: compartmentId,
 *     sensitiveDataModelId: testSensitiveDataModel.id,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     discoveryType: discoveryJobDiscoveryType,
 *     displayName: discoveryJobDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     isAppDefinedRelationDiscoveryEnabled: discoveryJobIsAppDefinedRelationDiscoveryEnabled === "true",
 *     isIncludeAllSchemas: discoveryJobIsIncludeAllSchemas === "true",
 *     isIncludeAllSensitiveTypes: discoveryJobIsIncludeAllSensitiveTypes === "true",
 *     isSampleDataCollectionEnabled: discoveryJobIsSampleDataCollectionEnabled === "true",
 *     schemasForDiscoveries: discoveryJobSchemasForDiscovery,
 *     sensitiveTypeGroupIdsForDiscoveries: discoveryJobSensitiveTypeGroupIdsForDiscovery,
 *     sensitiveTypeIdsForDiscoveries: discoveryJobSensitiveTypeIdsForDiscovery,
 *     tablesForDiscoveries: [{
 *         schemaName: discoveryJobTablesForDiscoverySchemaName,
 *         tableNames: discoveryJobTablesForDiscoveryTableNames,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * DiscoveryJobs can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataSafe/discoveryMod:DiscoveryMod test_discovery_job "id"
 * ```
 */
export declare class DiscoveryMod extends pulumi.CustomResource {
    /**
     * Get an existing DiscoveryMod 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?: DiscoveryModState, opts?: pulumi.CustomResourceOptions): DiscoveryMod;
    /**
     * Returns true if the given object is an instance of DiscoveryMod.  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 DiscoveryMod;
    /**
     * (Updatable) The OCID of the compartment where the discovery job resource should be created.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The type of the discovery job. It defines the job's scope. NEW identifies new sensitive columns in the target database that are not in the sensitive data model. DELETED identifies columns that are present in the sensitive data model but have been deleted from the target database. MODIFIED identifies columns that are present in the target database as well as the sensitive data model but some of their attributes have been modified. ALL covers all the above three scenarios and reports new, deleted and modified columns.
     */
    readonly discoveryType: pulumi.Output<string>;
    /**
     * A user-friendly name for the discovery job. Does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * 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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Indicates if the discovery job should identify potential application-level (non-dictionary) referential relationships between columns. Note that data discovery automatically identifies and adds database-level (dictionary-defined) relationships. This option helps identify application-level relationships that are not defined in the database dictionary, which in turn, helps identify additional sensitive columns and preserve referential integrity during data masking. It's disabled by default and should be used only if there is a need to identify application-level relationships.
     */
    readonly isAppDefinedRelationDiscoveryEnabled: pulumi.Output<boolean>;
    /**
     * Indicates if all the schemas should be scanned by the discovery job. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle). If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    readonly isIncludeAllSchemas: pulumi.Output<boolean>;
    /**
     * Indicates if all the existing sensitive types should be used by the discovery job. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery. If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    readonly isIncludeAllSensitiveTypes: pulumi.Output<boolean>;
    /**
     * Indicates if the discovery job should collect and store sample data values for the discovered columns. Sample data helps review the discovered columns and ensure that they actually contain sensitive data. As it collects original data from the target database, it's disabled by default and should be used only if it's acceptable to store sample data in Data Safe's repository in Oracle Cloud. Note that sample data values are not collected for columns with the following data types: LONG, LOB, RAW, XMLTYPE and BFILE.
     */
    readonly isSampleDataCollectionEnabled: pulumi.Output<boolean>;
    /**
     * The schemas to be scanned by the discovery job. If not provided, the schemasForDiscovery attribute of the sensitive data model is used to get the list of schemas.
     */
    readonly schemasForDiscoveries: pulumi.Output<string[]>;
    /**
     * The OCID of the sensitive data model.
     */
    readonly sensitiveDataModelId: pulumi.Output<string>;
    /**
     * The OCIDs of the sensitive type groups to be used by the discovery job. All the sensitive types present in sensitive type group will be used for discovery.
     */
    readonly sensitiveTypeGroupIdsForDiscoveries: pulumi.Output<string[]>;
    /**
     * The OCIDs of the sensitive types to be used by the discovery job. If not provided, the sensitiveTypeIdsForDiscovery attribute of the sensitive data model is used to get the list of sensitive types.
     */
    readonly sensitiveTypeIdsForDiscoveries: pulumi.Output<string[]>;
    /**
     * The current state of the discovery job.
     */
    readonly state: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The data discovery jobs will scan the tables specified here, including both schemas and tables. In the absence  of explicit input, the list of tables is obtained from the tablesForDiscovery attribute of the sensitive data model.
     */
    readonly tablesForDiscoveries: pulumi.Output<outputs.DataSafe.DiscoveryModTablesForDiscovery[]>;
    /**
     * The OCID of the target database associated with the discovery job.
     */
    readonly targetId: pulumi.Output<string>;
    /**
     * The date and time the discovery job finished, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339)..
     */
    readonly timeFinished: pulumi.Output<string>;
    /**
     * The date and time the discovery job started, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeStarted: pulumi.Output<string>;
    /**
     * The total number of columns scanned by the discovery job.
     */
    readonly totalColumnsScanned: pulumi.Output<string>;
    /**
     * The total number of deleted sensitive columns identified by the discovery job.
     */
    readonly totalDeletedSensitiveColumns: pulumi.Output<string>;
    /**
     * The total number of modified sensitive columns identified by the discovery job.
     */
    readonly totalModifiedSensitiveColumns: pulumi.Output<string>;
    /**
     * The total number of new sensitive columns identified by the discovery job.
     */
    readonly totalNewSensitiveColumns: pulumi.Output<string>;
    /**
     * The total number of objects (tables and editioning views) scanned by the discovery job.
     */
    readonly totalObjectsScanned: pulumi.Output<string>;
    /**
     * The total number of schemas scanned by the discovery job.
     */
    readonly totalSchemasScanned: pulumi.Output<string>;
    /**
     * Create a DiscoveryMod 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: DiscoveryModArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering DiscoveryMod resources.
 */
export interface DiscoveryModState {
    /**
     * (Updatable) The OCID of the compartment where the discovery job resource should be created.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The type of the discovery job. It defines the job's scope. NEW identifies new sensitive columns in the target database that are not in the sensitive data model. DELETED identifies columns that are present in the sensitive data model but have been deleted from the target database. MODIFIED identifies columns that are present in the target database as well as the sensitive data model but some of their attributes have been modified. ALL covers all the above three scenarios and reports new, deleted and modified columns.
     */
    discoveryType?: pulumi.Input<string | undefined>;
    /**
     * A user-friendly name for the discovery job. Does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * 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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Indicates if the discovery job should identify potential application-level (non-dictionary) referential relationships between columns. Note that data discovery automatically identifies and adds database-level (dictionary-defined) relationships. This option helps identify application-level relationships that are not defined in the database dictionary, which in turn, helps identify additional sensitive columns and preserve referential integrity during data masking. It's disabled by default and should be used only if there is a need to identify application-level relationships.
     */
    isAppDefinedRelationDiscoveryEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the schemas should be scanned by the discovery job. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle). If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    isIncludeAllSchemas?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the existing sensitive types should be used by the discovery job. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery. If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    isIncludeAllSensitiveTypes?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the discovery job should collect and store sample data values for the discovered columns. Sample data helps review the discovered columns and ensure that they actually contain sensitive data. As it collects original data from the target database, it's disabled by default and should be used only if it's acceptable to store sample data in Data Safe's repository in Oracle Cloud. Note that sample data values are not collected for columns with the following data types: LONG, LOB, RAW, XMLTYPE and BFILE.
     */
    isSampleDataCollectionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The schemas to be scanned by the discovery job. If not provided, the schemasForDiscovery attribute of the sensitive data model is used to get the list of schemas.
     */
    schemasForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The OCID of the sensitive data model.
     */
    sensitiveDataModelId?: pulumi.Input<string | undefined>;
    /**
     * The OCIDs of the sensitive type groups to be used by the discovery job. All the sensitive types present in sensitive type group will be used for discovery.
     */
    sensitiveTypeGroupIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The OCIDs of the sensitive types to be used by the discovery job. If not provided, the sensitiveTypeIdsForDiscovery attribute of the sensitive data model is used to get the list of sensitive types.
     */
    sensitiveTypeIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The current state of the discovery job.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The data discovery jobs will scan the tables specified here, including both schemas and tables. In the absence  of explicit input, the list of tables is obtained from the tablesForDiscovery attribute of the sensitive data model.
     */
    tablesForDiscoveries?: pulumi.Input<pulumi.Input<inputs.DataSafe.DiscoveryModTablesForDiscovery>[] | undefined>;
    /**
     * The OCID of the target database associated with the discovery job.
     */
    targetId?: pulumi.Input<string | undefined>;
    /**
     * The date and time the discovery job finished, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339)..
     */
    timeFinished?: pulumi.Input<string | undefined>;
    /**
     * The date and time the discovery job started, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    timeStarted?: pulumi.Input<string | undefined>;
    /**
     * The total number of columns scanned by the discovery job.
     */
    totalColumnsScanned?: pulumi.Input<string | undefined>;
    /**
     * The total number of deleted sensitive columns identified by the discovery job.
     */
    totalDeletedSensitiveColumns?: pulumi.Input<string | undefined>;
    /**
     * The total number of modified sensitive columns identified by the discovery job.
     */
    totalModifiedSensitiveColumns?: pulumi.Input<string | undefined>;
    /**
     * The total number of new sensitive columns identified by the discovery job.
     */
    totalNewSensitiveColumns?: pulumi.Input<string | undefined>;
    /**
     * The total number of objects (tables and editioning views) scanned by the discovery job.
     */
    totalObjectsScanned?: pulumi.Input<string | undefined>;
    /**
     * The total number of schemas scanned by the discovery job.
     */
    totalSchemasScanned?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a DiscoveryMod resource.
 */
export interface DiscoveryModArgs {
    /**
     * (Updatable) The OCID of the compartment where the discovery job resource should be created.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The type of the discovery job. It defines the job's scope. NEW identifies new sensitive columns in the target database that are not in the sensitive data model. DELETED identifies columns that are present in the sensitive data model but have been deleted from the target database. MODIFIED identifies columns that are present in the target database as well as the sensitive data model but some of their attributes have been modified. ALL covers all the above three scenarios and reports new, deleted and modified columns.
     */
    discoveryType?: pulumi.Input<string | undefined>;
    /**
     * A user-friendly name for the discovery job. Does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * 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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Indicates if the discovery job should identify potential application-level (non-dictionary) referential relationships between columns. Note that data discovery automatically identifies and adds database-level (dictionary-defined) relationships. This option helps identify application-level relationships that are not defined in the database dictionary, which in turn, helps identify additional sensitive columns and preserve referential integrity during data masking. It's disabled by default and should be used only if there is a need to identify application-level relationships.
     */
    isAppDefinedRelationDiscoveryEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the schemas should be scanned by the discovery job. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle). If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    isIncludeAllSchemas?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the existing sensitive types should be used by the discovery job. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery. If both attributes are not provided, the configuration from the sensitive data model is used.
     */
    isIncludeAllSensitiveTypes?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if the discovery job should collect and store sample data values for the discovered columns. Sample data helps review the discovered columns and ensure that they actually contain sensitive data. As it collects original data from the target database, it's disabled by default and should be used only if it's acceptable to store sample data in Data Safe's repository in Oracle Cloud. Note that sample data values are not collected for columns with the following data types: LONG, LOB, RAW, XMLTYPE and BFILE.
     */
    isSampleDataCollectionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The schemas to be scanned by the discovery job. If not provided, the schemasForDiscovery attribute of the sensitive data model is used to get the list of schemas.
     */
    schemasForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The OCID of the sensitive data model.
     */
    sensitiveDataModelId: pulumi.Input<string>;
    /**
     * The OCIDs of the sensitive type groups to be used by the discovery job. All the sensitive types present in sensitive type group will be used for discovery.
     */
    sensitiveTypeGroupIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The OCIDs of the sensitive types to be used by the discovery job. If not provided, the sensitiveTypeIdsForDiscovery attribute of the sensitive data model is used to get the list of sensitive types.
     */
    sensitiveTypeIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The data discovery jobs will scan the tables specified here, including both schemas and tables. In the absence  of explicit input, the list of tables is obtained from the tablesForDiscovery attribute of the sensitive data model.
     */
    tablesForDiscoveries?: pulumi.Input<pulumi.Input<inputs.DataSafe.DiscoveryModTablesForDiscovery>[] | undefined>;
}
//# sourceMappingURL=discoveryMod.d.ts.map