import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Sensitive Data Models Sensitive Column resource in Oracle Cloud Infrastructure Data Safe service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-safe/latest/SensitiveDataModelsSensitiveColumn
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datasafe
 *
 * Creates a new sensitive column in the specified sensitive data model.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testSensitiveDataModelsSensitiveColumn = new oci.datasafe.SensitiveDataModelsSensitiveColumn("test_sensitive_data_models_sensitive_column", {
 *     columnName: sensitiveDataModelsSensitiveColumnColumnName,
 *     object: sensitiveDataModelsSensitiveColumnObject,
 *     schemaName: sensitiveDataModelsSensitiveColumnSchemaName,
 *     sensitiveDataModelId: testSensitiveDataModel.id,
 *     appDefinedChildColumnKeys: sensitiveDataModelsSensitiveColumnAppDefinedChildColumnKeys,
 *     appName: sensitiveDataModelsSensitiveColumnAppName,
 *     dataType: sensitiveDataModelsSensitiveColumnDataType,
 *     dbDefinedChildColumnKeys: sensitiveDataModelsSensitiveColumnDbDefinedChildColumnKeys,
 *     objectType: sensitiveDataModelsSensitiveColumnObjectType,
 *     parentColumnKeys: sensitiveDataModelsSensitiveColumnParentColumnKeys,
 *     relationType: sensitiveDataModelsSensitiveColumnRelationType,
 *     sensitiveTypeId: testSensitiveType.id,
 *     status: sensitiveDataModelsSensitiveColumnStatus,
 * });
 * ```
 *
 * ## Import
 *
 * SensitiveDataModelsSensitiveColumns can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataSafe/sensitiveDataModelsSensitiveColumn:SensitiveDataModelsSensitiveColumn test_sensitive_data_models_sensitive_column "sensitiveDataModels/{sensitiveDataModelId}/sensitiveColumns/{sensitiveColumnKey}"
 * ```
 */
export declare class SensitiveDataModelsSensitiveColumn extends pulumi.CustomResource {
    /**
     * Get an existing SensitiveDataModelsSensitiveColumn 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?: SensitiveDataModelsSensitiveColumnState, opts?: pulumi.CustomResourceOptions): SensitiveDataModelsSensitiveColumn;
    /**
     * Returns true if the given object is an instance of SensitiveDataModelsSensitiveColumn.  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 SensitiveDataModelsSensitiveColumn;
    /**
     * (Updatable) Unique keys identifying the columns that are application-level (non-dictionary) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    readonly appDefinedChildColumnKeys: pulumi.Output<string[]>;
    /**
     * The name of the application associated with the sensitive column. It's useful when the application name is different from the schema name. Otherwise, it can be ignored. If this attribute is not provided, it's automatically populated with the value provided for the schemaName attribute.
     */
    readonly appName: pulumi.Output<string>;
    /**
     * The composite key groups to which the sensitive column belongs. If the column is part of a composite key, it's assigned a column group. It helps identify and manage referential relationships that involve composite keys.
     */
    readonly columnGroups: pulumi.Output<string[]>;
    /**
     * The name of the sensitive column.
     */
    readonly columnName: pulumi.Output<string>;
    /**
     * The confidence level of the sensitive column associated with the sensitive type. The confidence level of the discovered sensitive columns can be either HIGH, MEDIUM or LOW. The confidence level will be NONE for manually added sensitive columns.
     */
    readonly confidenceLevel: pulumi.Output<string>;
    /**
     * List containing maps as values. Example: `{"Operations": [ {"CostCenter": "42"} ] }`
     */
    readonly confidenceLevelDetails: pulumi.Output<outputs.DataSafe.SensitiveDataModelsSensitiveColumnConfidenceLevelDetail[]>;
    /**
     * (Updatable) The data type of the sensitive column.
     */
    readonly dataType: pulumi.Output<string>;
    /**
     * (Updatable) Unique keys identifying the columns that are database-level (dictionary-defined) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    readonly dbDefinedChildColumnKeys: pulumi.Output<string[]>;
    /**
     * The estimated number of data values the column has in the associated database.
     */
    readonly estimatedDataValueCount: pulumi.Output<string>;
    /**
     * The unique key that identifies the sensitive column. It's numeric and unique within a sensitive data model.
     */
    readonly key: pulumi.Output<string>;
    /**
     * Details about the current state of the sensitive column.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The database object that contains the sensitive column.
     */
    readonly object: pulumi.Output<string>;
    /**
     * The type of the database object that contains the sensitive column.
     */
    readonly objectType: pulumi.Output<string>;
    /**
     * (Updatable) Unique keys identifying the columns that are parents of the sensitive column. At present, it accepts only one parent column key. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the parent column must be added to the sensitive data model before its key can be specified here. If this attribute is provided, the appDefinedChildColumnKeys or dbDefinedChildColumnKeys attribute of the parent column is automatically updated to reflect the relationship.
     */
    readonly parentColumnKeys: pulumi.Output<string[]>;
    /**
     * (Updatable) The type of referential relationship the sensitive column has with its parent. NONE indicates that the sensitive column does not have a parent. DB_DEFINED indicates that the relationship is defined in the database dictionary. APP_DEFINED indicates that the relationship is defined at the application level and not in the database dictionary.
     */
    readonly relationType: pulumi.Output<string>;
    /**
     * Original data values collected for the sensitive column from the associated database. Sample data helps review the column and ensure that it actually contains sensitive data. Note that sample data is retrieved by a data discovery job only if the isSampleDataCollectionEnabled attribute is set to true. At present, only one data value is collected per sensitive column.
     */
    readonly sampleDataValues: pulumi.Output<string[]>;
    /**
     * The database schema that contains the sensitive column.
     */
    readonly schemaName: pulumi.Output<string>;
    /**
     * The OCID of the sensitive data model.
     */
    readonly sensitiveDataModelId: pulumi.Output<string>;
    /**
     * (Updatable) The OCID of the sensitive type to be associated with the sensitive column.
     */
    readonly sensitiveTypeId: pulumi.Output<string>;
    /**
     * The source of the sensitive column. DISCOVERY indicates that the column was added to the sensitive data model using a data discovery job. MANUAL indicates that the column was added manually.
     */
    readonly source: pulumi.Output<string>;
    /**
     * The current state of the sensitive column.
     */
    readonly state: pulumi.Output<string>;
    /**
     * (Updatable) The status of the sensitive column. VALID means the column is considered sensitive. INVALID means the column is not considered sensitive. Tracking invalid columns in a sensitive data model helps ensure that an incremental data discovery job does not identify these columns as sensitive.
     *
     *
     * ** 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 status: pulumi.Output<string>;
    /**
     * The date and time, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339), the sensitive column was created in the sensitive data model.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339), the sensitive column was last updated in the sensitive data model.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a SensitiveDataModelsSensitiveColumn 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: SensitiveDataModelsSensitiveColumnArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SensitiveDataModelsSensitiveColumn resources.
 */
export interface SensitiveDataModelsSensitiveColumnState {
    /**
     * (Updatable) Unique keys identifying the columns that are application-level (non-dictionary) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    appDefinedChildColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the application associated with the sensitive column. It's useful when the application name is different from the schema name. Otherwise, it can be ignored. If this attribute is not provided, it's automatically populated with the value provided for the schemaName attribute.
     */
    appName?: pulumi.Input<string | undefined>;
    /**
     * The composite key groups to which the sensitive column belongs. If the column is part of a composite key, it's assigned a column group. It helps identify and manage referential relationships that involve composite keys.
     */
    columnGroups?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the sensitive column.
     */
    columnName?: pulumi.Input<string | undefined>;
    /**
     * The confidence level of the sensitive column associated with the sensitive type. The confidence level of the discovered sensitive columns can be either HIGH, MEDIUM or LOW. The confidence level will be NONE for manually added sensitive columns.
     */
    confidenceLevel?: pulumi.Input<string | undefined>;
    /**
     * List containing maps as values. Example: `{"Operations": [ {"CostCenter": "42"} ] }`
     */
    confidenceLevelDetails?: pulumi.Input<pulumi.Input<inputs.DataSafe.SensitiveDataModelsSensitiveColumnConfidenceLevelDetail>[] | undefined>;
    /**
     * (Updatable) The data type of the sensitive column.
     */
    dataType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Unique keys identifying the columns that are database-level (dictionary-defined) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    dbDefinedChildColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The estimated number of data values the column has in the associated database.
     */
    estimatedDataValueCount?: pulumi.Input<string | undefined>;
    /**
     * The unique key that identifies the sensitive column. It's numeric and unique within a sensitive data model.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * Details about the current state of the sensitive column.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The database object that contains the sensitive column.
     */
    object?: pulumi.Input<string | undefined>;
    /**
     * The type of the database object that contains the sensitive column.
     */
    objectType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Unique keys identifying the columns that are parents of the sensitive column. At present, it accepts only one parent column key. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the parent column must be added to the sensitive data model before its key can be specified here. If this attribute is provided, the appDefinedChildColumnKeys or dbDefinedChildColumnKeys attribute of the parent column is automatically updated to reflect the relationship.
     */
    parentColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The type of referential relationship the sensitive column has with its parent. NONE indicates that the sensitive column does not have a parent. DB_DEFINED indicates that the relationship is defined in the database dictionary. APP_DEFINED indicates that the relationship is defined at the application level and not in the database dictionary.
     */
    relationType?: pulumi.Input<string | undefined>;
    /**
     * Original data values collected for the sensitive column from the associated database. Sample data helps review the column and ensure that it actually contains sensitive data. Note that sample data is retrieved by a data discovery job only if the isSampleDataCollectionEnabled attribute is set to true. At present, only one data value is collected per sensitive column.
     */
    sampleDataValues?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The database schema that contains the sensitive column.
     */
    schemaName?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the sensitive data model.
     */
    sensitiveDataModelId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the sensitive type to be associated with the sensitive column.
     */
    sensitiveTypeId?: pulumi.Input<string | undefined>;
    /**
     * The source of the sensitive column. DISCOVERY indicates that the column was added to the sensitive data model using a data discovery job. MANUAL indicates that the column was added manually.
     */
    source?: pulumi.Input<string | undefined>;
    /**
     * The current state of the sensitive column.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The status of the sensitive column. VALID means the column is considered sensitive. INVALID means the column is not considered sensitive. Tracking invalid columns in a sensitive data model helps ensure that an incremental data discovery job does not identify these columns as sensitive.
     *
     *
     * ** 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
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The date and time, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339), the sensitive column was created in the sensitive data model.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339), the sensitive column was last updated in the sensitive data model.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a SensitiveDataModelsSensitiveColumn resource.
 */
export interface SensitiveDataModelsSensitiveColumnArgs {
    /**
     * (Updatable) Unique keys identifying the columns that are application-level (non-dictionary) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    appDefinedChildColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the application associated with the sensitive column. It's useful when the application name is different from the schema name. Otherwise, it can be ignored. If this attribute is not provided, it's automatically populated with the value provided for the schemaName attribute.
     */
    appName?: pulumi.Input<string | undefined>;
    /**
     * The name of the sensitive column.
     */
    columnName: pulumi.Input<string>;
    /**
     * (Updatable) The data type of the sensitive column.
     */
    dataType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Unique keys identifying the columns that are database-level (dictionary-defined) children of the sensitive column. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the child columns must be added to the sensitive data model before their keys can be specified here. If this attribute is provided, the parentColumnKeys and relationType attributes of the child columns are automatically updated to reflect the relationship.
     */
    dbDefinedChildColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The database object that contains the sensitive column.
     */
    object: pulumi.Input<string>;
    /**
     * The type of the database object that contains the sensitive column.
     */
    objectType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Unique keys identifying the columns that are parents of the sensitive column. At present, it accepts only one parent column key. This attribute can be used to establish relationship between columns in a sensitive data model. Note that the parent column must be added to the sensitive data model before its key can be specified here. If this attribute is provided, the appDefinedChildColumnKeys or dbDefinedChildColumnKeys attribute of the parent column is automatically updated to reflect the relationship.
     */
    parentColumnKeys?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The type of referential relationship the sensitive column has with its parent. NONE indicates that the sensitive column does not have a parent. DB_DEFINED indicates that the relationship is defined in the database dictionary. APP_DEFINED indicates that the relationship is defined at the application level and not in the database dictionary.
     */
    relationType?: pulumi.Input<string | undefined>;
    /**
     * The database schema that contains the sensitive column.
     */
    schemaName: pulumi.Input<string>;
    /**
     * The OCID of the sensitive data model.
     */
    sensitiveDataModelId: pulumi.Input<string>;
    /**
     * (Updatable) The OCID of the sensitive type to be associated with the sensitive column.
     */
    sensitiveTypeId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The status of the sensitive column. VALID means the column is considered sensitive. INVALID means the column is not considered sensitive. Tracking invalid columns in a sensitive data model helps ensure that an incremental data discovery job does not identify these columns as sensitive.
     *
     *
     * ** 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
     */
    status?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=sensitiveDataModelsSensitiveColumn.d.ts.map