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 Referential Relation resource in Oracle Cloud Infrastructure Data Safe service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-safe/latest/SensitiveDataModelReferentialRelation
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datasafe
 *
 * Creates a new referential relation in the specified sensitive data model.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testSensitiveDataModelReferentialRelation = new oci.datasafe.SensitiveDataModelReferentialRelation("test_sensitive_data_model_referential_relation", {
 *     child: {
 *         appName: sensitiveDataModelReferentialRelationChildAppName,
 *         columnGroups: sensitiveDataModelReferentialRelationChildColumnGroup,
 *         object: sensitiveDataModelReferentialRelationChildObject,
 *         objectType: sensitiveDataModelReferentialRelationChildObjectType,
 *         schemaName: sensitiveDataModelReferentialRelationChildSchemaName,
 *         sensitiveTypeIds: sensitiveDataModelReferentialRelationChildSensitiveTypeIds,
 *     },
 *     parent: {
 *         appName: sensitiveDataModelReferentialRelationParentAppName,
 *         columnGroups: sensitiveDataModelReferentialRelationParentColumnGroup,
 *         object: sensitiveDataModelReferentialRelationParentObject,
 *         objectType: sensitiveDataModelReferentialRelationParentObjectType,
 *         schemaName: sensitiveDataModelReferentialRelationParentSchemaName,
 *         sensitiveTypeIds: sensitiveDataModelReferentialRelationParentSensitiveTypeIds,
 *     },
 *     relationType: sensitiveDataModelReferentialRelationRelationType,
 *     sensitiveDataModelId: testSensitiveDataModel.id,
 *     isSensitive: sensitiveDataModelReferentialRelationIsSensitive === "true",
 * });
 * ```
 *
 * ## Import
 *
 * SensitiveDataModelReferentialRelations can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataSafe/sensitiveDataModelReferentialRelation:SensitiveDataModelReferentialRelation test_sensitive_data_model_referential_relation "sensitiveDataModels/{sensitiveDataModelId}/referentialRelations/{referentialRelationKey}"
 * ```
 */
export declare class SensitiveDataModelReferentialRelation extends pulumi.CustomResource {
    /**
     * Get an existing SensitiveDataModelReferentialRelation 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?: SensitiveDataModelReferentialRelationState, opts?: pulumi.CustomResourceOptions): SensitiveDataModelReferentialRelation;
    /**
     * Returns true if the given object is an instance of SensitiveDataModelReferentialRelation.  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 SensitiveDataModelReferentialRelation;
    /**
     * columnsInfo object has details of column group with schema details.
     */
    readonly child: pulumi.Output<outputs.DataSafe.SensitiveDataModelReferentialRelationChild>;
    /**
     * Add to sensitive data model if passed true. If false is passed, then the columns will not be added in the sensitive data model as sensitive columns and  if sensitive type OCIDs are assigned to the columns, then the sensitive type OCIDs will not be retained.
     */
    readonly isSensitive: pulumi.Output<boolean>;
    /**
     * The unique key that identifies the referential relation. It's numeric and unique within a sensitive data model.
     */
    readonly key: pulumi.Output<string>;
    /**
     * columnsInfo object has details of column group with schema details.
     */
    readonly parent: pulumi.Output<outputs.DataSafe.SensitiveDataModelReferentialRelationParent>;
    /**
     * The type of referential relationship the sensitive column has with its 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>;
    /**
     * The OCID of the sensitive data model.
     *
     *
     * ** 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 sensitiveDataModelId: pulumi.Output<string>;
    /**
     * The current state of the referential relation.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Create a SensitiveDataModelReferentialRelation 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: SensitiveDataModelReferentialRelationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SensitiveDataModelReferentialRelation resources.
 */
export interface SensitiveDataModelReferentialRelationState {
    /**
     * columnsInfo object has details of column group with schema details.
     */
    child?: pulumi.Input<inputs.DataSafe.SensitiveDataModelReferentialRelationChild | undefined>;
    /**
     * Add to sensitive data model if passed true. If false is passed, then the columns will not be added in the sensitive data model as sensitive columns and  if sensitive type OCIDs are assigned to the columns, then the sensitive type OCIDs will not be retained.
     */
    isSensitive?: pulumi.Input<boolean | undefined>;
    /**
     * The unique key that identifies the referential relation. It's numeric and unique within a sensitive data model.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * columnsInfo object has details of column group with schema details.
     */
    parent?: pulumi.Input<inputs.DataSafe.SensitiveDataModelReferentialRelationParent | undefined>;
    /**
     * The type of referential relationship the sensitive column has with its 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 OCID of the sensitive data model.
     *
     *
     * ** 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
     */
    sensitiveDataModelId?: pulumi.Input<string | undefined>;
    /**
     * The current state of the referential relation.
     */
    state?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a SensitiveDataModelReferentialRelation resource.
 */
export interface SensitiveDataModelReferentialRelationArgs {
    /**
     * columnsInfo object has details of column group with schema details.
     */
    child: pulumi.Input<inputs.DataSafe.SensitiveDataModelReferentialRelationChild>;
    /**
     * Add to sensitive data model if passed true. If false is passed, then the columns will not be added in the sensitive data model as sensitive columns and  if sensitive type OCIDs are assigned to the columns, then the sensitive type OCIDs will not be retained.
     */
    isSensitive?: pulumi.Input<boolean | undefined>;
    /**
     * columnsInfo object has details of column group with schema details.
     */
    parent: pulumi.Input<inputs.DataSafe.SensitiveDataModelReferentialRelationParent>;
    /**
     * The type of referential relationship the sensitive column has with its 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>;
    /**
     * The OCID of the sensitive data model.
     *
     *
     * ** 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
     */
    sensitiveDataModelId: pulumi.Input<string>;
}
//# sourceMappingURL=sensitiveDataModelReferentialRelation.d.ts.map