import * as pulumi from "@pulumi/pulumi";
/**
 * This data source provides details about a specific Protection Policy resource in Oracle Cloud Infrastructure Recovery service.
 *
 * Gets information about a specified protection policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testProtectionPolicy = oci.recoverymod.getProtectionPolicy({
 *     protectionPolicyId: testProtectionPolicyOciRecoveryProtectionPolicy.id,
 * });
 * ```
 */
export declare function getProtectionPolicy(args: GetProtectionPolicyArgs, opts?: pulumi.InvokeOptions): Promise<GetProtectionPolicyResult>;
/**
 * A collection of arguments for invoking getProtectionPolicy.
 */
export interface GetProtectionPolicyArgs {
    /**
     * The protection policy OCID.
     */
    protectionPolicyId: string;
}
/**
 * A collection of values returned by getProtectionPolicy.
 */
export interface GetProtectionPolicyResult {
    /**
     * The maximum number of days to retain backups for a protected database. Specify a period ranging from a minimum 14 days to a maximum 95 days. For example, specify the value 55 if you want to retain backups for 55 days.
     */
    readonly backupRetentionPeriodInDays: number;
    /**
     * The OCID of the compartment that contains the protection policy.
     */
    readonly compartmentId: string;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`. For more information, see [Resource Tags](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/resourcetags.htm)
     */
    readonly definedTags: {
        [key: string]: string;
    };
    /**
     * A user provided name for the protection policy.
     */
    readonly displayName: string;
    /**
     * Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: {
        [key: string]: string;
    };
    /**
     * The protection policy OCID.
     */
    readonly id: string;
    /**
     * Set to TRUE if the policy is Oracle-defined, and FALSE for a user-defined custom policy. You can modify only the custom policies.
     */
    readonly isPredefinedPolicy: boolean;
    /**
     * Detailed description about the current lifecycle state of the protection policy. For example, it can be used to provide actionable information for a resource in a Failed state.
     */
    readonly lifecycleDetails: string;
    /**
     * Indicates whether the protection policy enforces Recovery Service to retain backups in the same cloud service environment where your Oracle Database is provisioned.
     */
    readonly mustEnforceCloudLocality: boolean;
    /**
     * An RFC3339 formatted datetime string that specifies the exact date and time for the retention lock to take effect and permanently lock the retention period defined in the policy.
     */
    readonly policyLockedDateTime: string;
    readonly protectionPolicyId: string;
    /**
     * The current state of the protection policy.
     */
    readonly state: string;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`. For more information, see [Resource Tags](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/resourcetags.htm)
     */
    readonly systemTags: {
        [key: string]: string;
    };
    /**
     * An RFC3339 formatted datetime string that indicates the created time for the protection policy. For example: '2020-05-22T21:10:29.600Z'.
     */
    readonly timeCreated: string;
    /**
     * An RFC3339 formatted datetime string that indicates the updated time for the protection policy. For example: '2020-05-22T21:10:29.600Z'.
     */
    readonly timeUpdated: string;
}
/**
 * This data source provides details about a specific Protection Policy resource in Oracle Cloud Infrastructure Recovery service.
 *
 * Gets information about a specified protection policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testProtectionPolicy = oci.recoverymod.getProtectionPolicy({
 *     protectionPolicyId: testProtectionPolicyOciRecoveryProtectionPolicy.id,
 * });
 * ```
 */
export declare function getProtectionPolicyOutput(args: GetProtectionPolicyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetProtectionPolicyResult>;
/**
 * A collection of arguments for invoking getProtectionPolicy.
 */
export interface GetProtectionPolicyOutputArgs {
    /**
     * The protection policy OCID.
     */
    protectionPolicyId: pulumi.Input<string>;
}
//# sourceMappingURL=getProtectionPolicy.d.ts.map