import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Sensitive Data Model resource in Oracle Cloud Infrastructure Data Safe service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-safe/latest/SensitiveDataModel
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datasafe
 *
 * Creates a new sensitive data model. If schemas and sensitive types are provided, it automatically runs data discovery
 * and adds the discovered columns to the sensitive data model. Otherwise, it creates an empty sensitive data model
 * that can be updated later.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testSensitiveDataModel = new oci.datasafe.SensitiveDataModel("test_sensitive_data_model", {
 *     compartmentId: compartmentId,
 *     targetId: testTarget.id,
 *     appSuiteName: sensitiveDataModelAppSuiteName,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     description: sensitiveDataModelDescription,
 *     displayName: sensitiveDataModelDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     isAppDefinedRelationDiscoveryEnabled: sensitiveDataModelIsAppDefinedRelationDiscoveryEnabled === "true",
 *     isIncludeAllSchemas: sensitiveDataModelIsIncludeAllSchemas === "true",
 *     isIncludeAllSensitiveTypes: sensitiveDataModelIsIncludeAllSensitiveTypes === "true",
 *     isSampleDataCollectionEnabled: sensitiveDataModelIsSampleDataCollectionEnabled === "true",
 *     schemasForDiscoveries: sensitiveDataModelSchemasForDiscovery,
 *     sensitiveTypeGroupIdsForDiscoveries: sensitiveDataModelSensitiveTypeGroupIdsForDiscovery,
 *     sensitiveTypeIdsForDiscoveries: sensitiveDataModelSensitiveTypeIdsForDiscovery,
 *     tablesForDiscoveries: [{
 *         schemaName: sensitiveDataModelTablesForDiscoverySchemaName,
 *         tableNames: sensitiveDataModelTablesForDiscoveryTableNames,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * SensitiveDataModels can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataSafe/sensitiveDataModel:SensitiveDataModel test_sensitive_data_model "id"
 * ```
 */
export declare class SensitiveDataModel extends pulumi.CustomResource {
    /**
     * Get an existing SensitiveDataModel 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?: SensitiveDataModelState, opts?: pulumi.CustomResourceOptions): SensitiveDataModel;
    /**
     * Returns true if the given object is an instance of SensitiveDataModel.  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 SensitiveDataModel;
    /**
     * (Updatable) The application suite name identifying a collection of applications. It's useful only if maintaining a sensitive data model for a suite of applications.
     */
    readonly appSuiteName: pulumi.Output<string>;
    /**
     * (Updatable) The OCID of the compartment where the sensitive data model should be created.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) 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;
    }>;
    /**
     * (Updatable) The description of the sensitive data model.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) The display name of the sensitive data model. The name does not have to be unique, and it's changeable.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * (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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Indicates if data discovery jobs 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 in the associated target database should be scanned by data discovery jobs. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle).
     */
    readonly isIncludeAllSchemas: pulumi.Output<boolean>;
    /**
     * Indicates if all the existing sensitive types should be used by data discovery jobs. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery.
     */
    readonly isIncludeAllSensitiveTypes: pulumi.Output<boolean>;
    /**
     * (Updatable) Indicates if data discovery jobs 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>;
    /**
     * (Updatable) The schemas to be scanned by data discovery jobs.
     */
    readonly schemasForDiscoveries: pulumi.Output<string[]>;
    /**
     * (Updatable) The OCIDs of the sensitive type groups to be used by data discovery jobs. All the sensitive types present in sensitive type group will be used for discovery.
     */
    readonly sensitiveTypeGroupIdsForDiscoveries: pulumi.Output<string[]>;
    /**
     * (Updatable) The OCIDs of the sensitive types to be used by data discovery jobs. If OCID of a sensitive category is provided, all its child sensitive types are used for data discovery.
     */
    readonly sensitiveTypeIdsForDiscoveries: pulumi.Output<string[]>;
    /**
     * The current state of the sensitive data model.
     */
    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;
    }>;
    /**
     * (Updatable) The data discovery jobs will scan the tables specified here, including both schemas and tables. For instance, the input could be in the format: [{schemaName: "HR", tableName: ["T1", "T2"]}, {schemaName:  "OE", tableName : ["T3", "T4"]}].
     */
    readonly tablesForDiscoveries: pulumi.Output<outputs.DataSafe.SensitiveDataModelTablesForDiscovery[]>;
    /**
     * (Updatable) The OCID of the reference target database to be associated with the sensitive data model. All operations such as performing data discovery and adding columns manually are done in the context of the associated target database.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly targetId: pulumi.Output<string>;
    /**
     * The date and time the sensitive data model was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the sensitive data model was last updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a SensitiveDataModel 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: SensitiveDataModelArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SensitiveDataModel resources.
 */
export interface SensitiveDataModelState {
    /**
     * (Updatable) The application suite name identifying a collection of applications. It's useful only if maintaining a sensitive data model for a suite of applications.
     */
    appSuiteName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the compartment where the sensitive data model should be created.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) 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>;
    /**
     * (Updatable) The description of the sensitive data model.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The display name of the sensitive data model. The name does not have to be unique, and it's changeable.
     */
    displayName?: pulumi.Input<string | 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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Indicates if data discovery jobs 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 in the associated target database should be scanned by data discovery jobs. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle).
     */
    isIncludeAllSchemas?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the existing sensitive types should be used by data discovery jobs. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery.
     */
    isIncludeAllSensitiveTypes?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Indicates if data discovery jobs 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>;
    /**
     * (Updatable) The schemas to be scanned by data discovery jobs.
     */
    schemasForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The OCIDs of the sensitive type groups to be used by data discovery jobs. All the sensitive types present in sensitive type group will be used for discovery.
     */
    sensitiveTypeGroupIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The OCIDs of the sensitive types to be used by data discovery jobs. If OCID of a sensitive category is provided, all its child sensitive types are used for data discovery.
     */
    sensitiveTypeIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The current state of the sensitive data model.
     */
    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>;
    /**
     * (Updatable) The data discovery jobs will scan the tables specified here, including both schemas and tables. For instance, the input could be in the format: [{schemaName: "HR", tableName: ["T1", "T2"]}, {schemaName:  "OE", tableName : ["T3", "T4"]}].
     */
    tablesForDiscoveries?: pulumi.Input<pulumi.Input<inputs.DataSafe.SensitiveDataModelTablesForDiscovery>[] | undefined>;
    /**
     * (Updatable) The OCID of the reference target database to be associated with the sensitive data model. All operations such as performing data discovery and adding columns manually are done in the context of the associated target database.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    targetId?: pulumi.Input<string | undefined>;
    /**
     * The date and time the sensitive data model was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the sensitive data model was last updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a SensitiveDataModel resource.
 */
export interface SensitiveDataModelArgs {
    /**
     * (Updatable) The application suite name identifying a collection of applications. It's useful only if maintaining a sensitive data model for a suite of applications.
     */
    appSuiteName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the compartment where the sensitive data model should be created.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) 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>;
    /**
     * (Updatable) The description of the sensitive data model.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The display name of the sensitive data model. The name does not have to be unique, and it's changeable.
     */
    displayName?: pulumi.Input<string | 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](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Indicates if data discovery jobs 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 in the associated target database should be scanned by data discovery jobs. If it is set to true, sensitive data is discovered in all schemas (except for schemas maintained by Oracle).
     */
    isIncludeAllSchemas?: pulumi.Input<boolean | undefined>;
    /**
     * Indicates if all the existing sensitive types should be used by data discovery jobs. If it's set to true, the sensitiveTypeIdsForDiscovery attribute is ignored and all sensitive types are used for data discovery.
     */
    isIncludeAllSensitiveTypes?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Indicates if data discovery jobs 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>;
    /**
     * (Updatable) The schemas to be scanned by data discovery jobs.
     */
    schemasForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The OCIDs of the sensitive type groups to be used by data discovery jobs. All the sensitive types present in sensitive type group will be used for discovery.
     */
    sensitiveTypeGroupIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The OCIDs of the sensitive types to be used by data discovery jobs. If OCID of a sensitive category is provided, all its child sensitive types are used for data discovery.
     */
    sensitiveTypeIdsForDiscoveries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The data discovery jobs will scan the tables specified here, including both schemas and tables. For instance, the input could be in the format: [{schemaName: "HR", tableName: ["T1", "T2"]}, {schemaName:  "OE", tableName : ["T3", "T4"]}].
     */
    tablesForDiscoveries?: pulumi.Input<pulumi.Input<inputs.DataSafe.SensitiveDataModelTablesForDiscovery>[] | undefined>;
    /**
     * (Updatable) The OCID of the reference target database to be associated with the sensitive data model. All operations such as performing data discovery and adding columns manually are done in the context of the associated target database.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    targetId: pulumi.Input<string>;
}
//# sourceMappingURL=sensitiveDataModel.d.ts.map