import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Masking Policy resource in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets the details of the specified masking policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testMaskingPolicy = oci.datasafe.getMaskingPolicy({
 *     maskingPolicyId: testMaskingPolicyOciDataSafeMaskingPolicy.id,
 * });
 * ```
 */
export declare function getMaskingPolicy(args: GetMaskingPolicyArgs, opts?: pulumi.InvokeOptions): Promise<GetMaskingPolicyResult>;
/**
 * A collection of arguments for invoking getMaskingPolicy.
 */
export interface GetMaskingPolicyArgs {
    /**
     * The OCID of the masking policy.
     */
    maskingPolicyId: string;
}
/**
 * A collection of values returned by getMaskingPolicy.
 */
export interface GetMaskingPolicyResult {
    readonly addMaskingColumnsFromSdmTrigger: number;
    /**
     * Specifies whether target database credentials are required to perform masking with this policy
     */
    readonly areTargetCredentialsRequired: boolean;
    /**
     * The source of masking columns.
     */
    readonly columnSources: outputs.DataSafe.GetMaskingPolicyColumnSource[];
    /**
     * The OCID of the compartment that contains the masking policy.
     */
    readonly compartmentId: 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: {
        [key: string]: string;
    };
    /**
     * The description of the masking policy.
     */
    readonly description: string;
    /**
     * The display name of the masking policy.
     */
    readonly displayName: 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: {
        [key: string]: string;
    };
    readonly generateHealthReportTrigger: number;
    /**
     * The OCID of the masking policy.
     */
    readonly id: string;
    /**
     * Indicates if the temporary tables created during a masking operation should be dropped after masking. It's enabled by default. Set this attribute to false to preserve the temporary tables. Masking creates temporary tables that map the original sensitive  data values to mask values. By default, these temporary tables are dropped after masking. But, in some cases, you may want  to preserve this information to track how masking changed your data. Note that doing so compromises security. These tables  must be dropped before the database is available for unprivileged users.
     */
    readonly isDropTempTablesEnabled: boolean;
    /**
     * Indicates if redo logging is enabled during a masking operation. It's disabled by default. Set this attribute to true to enable redo logging. By default, masking disables redo logging and flashback logging to purge any original unmasked  data from logs. However, in certain circumstances when you only want to test masking, rollback changes, and retry masking, you could enable logging and use a flashback database to retrieve the original unmasked data after it has been masked.
     */
    readonly isRedoLoggingEnabled: boolean;
    /**
     * Indicates if statistics gathering is enabled. It's enabled by default. Set this attribute to false to disable statistics gathering. The masking process gathers statistics on masked database tables after masking completes.
     */
    readonly isRefreshStatsEnabled: boolean;
    readonly maskingPolicyId: string;
    /**
     * Specifies options to enable parallel execution when running data masking. Allowed values are 'NONE' (no parallelism), 'DEFAULT' (the Oracle Database computes the optimum degree of parallelism) or an integer value to be used as the degree of parallelism. Parallel execution helps effectively use multiple CPUs and improve masking performance. Refer to the Oracle Database parallel execution framework when choosing an explicit degree of parallelism.
     */
    readonly parallelDegree: string;
    /**
     * A post-masking script, which can contain SQL and PL/SQL statements. It's executed after the core masking script generated using the masking policy. It's usually used to perform additional transformation or cleanup work after masking.
     */
    readonly postMaskingScript: string;
    /**
     * A pre-masking script, which can contain SQL and PL/SQL statements. It's executed before  the core masking script generated using the masking policy. It's usually used to perform any preparation or prerequisite work before masking data.
     */
    readonly preMaskingScript: string;
    /**
     * Specifies how to recompile invalid objects post data masking. Allowed values are 'SERIAL' (recompile in serial),  'PARALLEL' (recompile in parallel), 'NONE' (do not recompile). If it's set to PARALLEL, the value of parallelDegree attribute is used. Use the built-in UTL_RECOMP package to recompile any remaining invalid objects after masking completes.
     */
    readonly recompile: string;
    /**
     * The current state of the masking policy.
     */
    readonly state: string;
    /**
     * The date and time the masking policy was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeCreated: string;
    /**
     * The date and time the masking policy was last updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339)
     */
    readonly timeUpdated: string;
}
/**
 * This data source provides details about a specific Masking Policy resource in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets the details of the specified masking policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testMaskingPolicy = oci.datasafe.getMaskingPolicy({
 *     maskingPolicyId: testMaskingPolicyOciDataSafeMaskingPolicy.id,
 * });
 * ```
 */
export declare function getMaskingPolicyOutput(args: GetMaskingPolicyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetMaskingPolicyResult>;
/**
 * A collection of arguments for invoking getMaskingPolicy.
 */
export interface GetMaskingPolicyOutputArgs {
    /**
     * The OCID of the masking policy.
     */
    maskingPolicyId: pulumi.Input<string>;
}
//# sourceMappingURL=getMaskingPolicy.d.ts.map