import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Security Assessments in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of security assessments.
 *
 * The ListSecurityAssessments operation returns only the assessments in the specified `compartmentId`.
 * The list does not include any subcompartments of the compartmentId passed.
 *
 * The parameter `accessLevel` specifies whether to return only those compartments for which the
 * requestor has INSPECT permissions on at least one resource directly
 * or indirectly (ACCESSIBLE) (the resource can be in a subcompartment) or to return Not Authorized if
 * Principal doesn't have access to even one of the child compartments. This is valid only when
 * `compartmentIdInSubtree` is set to `true`.
 *
 * The parameter `compartmentIdInSubtree` applies when you perform ListSecurityAssessments on the
 * `compartmentId` passed and when it is set to true, the entire hierarchy of compartments can be returned.
 * To get a full list of all compartments and subcompartments in the tenancy (root compartment),
 * set the parameter `compartmentIdInSubtree` to true and `accessLevel` to ACCESSIBLE.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testSecurityAssessments = oci.datasafe.getSecurityAssessments({
 *     compartmentId: compartmentId,
 *     accessLevel: securityAssessmentAccessLevel,
 *     compartmentIdInSubtree: securityAssessmentCompartmentIdInSubtree === "true",
 *     displayName: securityAssessmentDisplayName,
 *     isBaseline: securityAssessmentIsBaseline === "true",
 *     isScheduleAssessment: securityAssessmentIsScheduleAssessment === "true",
 *     scheduleAssessmentId: testScheduleAssessment.id,
 *     state: securityAssessmentState,
 *     targetDatabaseGroupId: testTargetDatabaseGroup.id,
 *     targetId: testTarget.id,
 *     targetType: securityAssessmentTargetType,
 *     templateAssessmentId: testTemplateAssessment.id,
 *     timeCreatedGreaterThanOrEqualTo: securityAssessmentTimeCreatedGreaterThanOrEqualTo,
 *     timeCreatedLessThan: securityAssessmentTimeCreatedLessThan,
 *     triggeredBy: securityAssessmentTriggeredBy,
 *     type: securityAssessmentType,
 * });
 * ```
 */
export declare function getSecurityAssessments(args: GetSecurityAssessmentsArgs, opts?: pulumi.InvokeOptions): Promise<GetSecurityAssessmentsResult>;
/**
 * A collection of arguments for invoking getSecurityAssessments.
 */
export interface GetSecurityAssessmentsArgs {
    /**
     * Valid values are RESTRICTED and ACCESSIBLE. Default is RESTRICTED. Setting this to ACCESSIBLE returns only those compartments for which the user has INSPECT permissions directly or indirectly (permissions can be on a resource in a subcompartment). When set to RESTRICTED permissions are checked and no partial results are displayed.
     */
    accessLevel?: string;
    /**
     * A filter to return only resources that match the specified compartment OCID.
     */
    compartmentId: string;
    /**
     * Default is false. When set to true, the hierarchy of compartments is traversed and all compartments and subcompartments in the tenancy are returned. Depends on the 'accessLevel' setting.
     */
    compartmentIdInSubtree?: boolean;
    /**
     * A filter to return only resources that match the specified display name.
     */
    displayName?: string;
    filters?: inputs.DataSafe.GetSecurityAssessmentsFilter[];
    /**
     * A filter to return only the security assessments that are set as a baseline.
     */
    isBaseline?: boolean;
    /**
     * A filter to return only security assessments of type save schedule.
     */
    isScheduleAssessment?: boolean;
    /**
     * The OCID of the security assessment of type SAVE_SCHEDULE.
     */
    scheduleAssessmentId?: string;
    /**
     * A filter to return only resources that match the specified lifecycle state.
     */
    state?: string;
    /**
     * A filter to return the target database group that matches the specified OCID.
     */
    targetDatabaseGroupId?: string;
    /**
     * A filter to return only items related to a specific target OCID.
     */
    targetId?: string;
    /**
     * A filter to return only only target database resources or target database group resources.
     */
    targetType?: string;
    /**
     * The OCID of the security assessment of type TEMPLATE.
     */
    templateAssessmentId?: string;
    /**
     * A filter to return only the resources that were created after the specified date and time, as defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Using TimeCreatedGreaterThanOrEqualToQueryParam parameter retrieves all resources created after that date.
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeCreatedGreaterThanOrEqualTo?: string;
    /**
     * Search for resources that were created before a specific date. Specifying this parameter corresponding `timeCreatedLessThan` parameter will retrieve all resources created before the specified created date, in "YYYY-MM-ddThh:mmZ" format with a Z offset, as defined by RFC 3339.
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeCreatedLessThan?: string;
    /**
     * A filter to return only security assessments that were created by either user or system.
     */
    triggeredBy?: string;
    /**
     * A filter to return only items that match the specified security assessment type.
     */
    type?: string;
}
/**
 * A collection of values returned by getSecurityAssessments.
 */
export interface GetSecurityAssessmentsResult {
    readonly accessLevel?: string;
    /**
     * The OCID of the compartment that contains the security assessment.
     */
    readonly compartmentId: string;
    readonly compartmentIdInSubtree?: boolean;
    /**
     * The display name of the security assessment.
     */
    readonly displayName?: string;
    readonly filters?: outputs.DataSafe.GetSecurityAssessmentsFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Indicates whether or not the security assessment is set as a baseline. This is applicable only for saved security assessments.
     */
    readonly isBaseline?: boolean;
    readonly isScheduleAssessment?: boolean;
    readonly scheduleAssessmentId?: string;
    /**
     * The list of security_assessments.
     */
    readonly securityAssessments: outputs.DataSafe.GetSecurityAssessmentsSecurityAssessment[];
    /**
     * The current state of the security assessment.
     */
    readonly state?: string;
    /**
     * The OCID of the target database group that the group assessment is created for.
     */
    readonly targetDatabaseGroupId?: string;
    readonly targetId?: string;
    /**
     * Indicates whether the security assessment is for a target database or a target database group.
     */
    readonly targetType?: string;
    /**
     * The ocid of a security assessment which is of type TEMPLATE, this will be null or empty when type is TEMPLATE.
     */
    readonly templateAssessmentId?: string;
    readonly timeCreatedGreaterThanOrEqualTo?: string;
    readonly timeCreatedLessThan?: string;
    /**
     * Indicates whether the security assessment was created by system or by a user.
     */
    readonly triggeredBy?: string;
    /**
     * The type of the security assessment. Possible values are:
     */
    readonly type?: string;
}
/**
 * This data source provides the list of Security Assessments in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of security assessments.
 *
 * The ListSecurityAssessments operation returns only the assessments in the specified `compartmentId`.
 * The list does not include any subcompartments of the compartmentId passed.
 *
 * The parameter `accessLevel` specifies whether to return only those compartments for which the
 * requestor has INSPECT permissions on at least one resource directly
 * or indirectly (ACCESSIBLE) (the resource can be in a subcompartment) or to return Not Authorized if
 * Principal doesn't have access to even one of the child compartments. This is valid only when
 * `compartmentIdInSubtree` is set to `true`.
 *
 * The parameter `compartmentIdInSubtree` applies when you perform ListSecurityAssessments on the
 * `compartmentId` passed and when it is set to true, the entire hierarchy of compartments can be returned.
 * To get a full list of all compartments and subcompartments in the tenancy (root compartment),
 * set the parameter `compartmentIdInSubtree` to true and `accessLevel` to ACCESSIBLE.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testSecurityAssessments = oci.datasafe.getSecurityAssessments({
 *     compartmentId: compartmentId,
 *     accessLevel: securityAssessmentAccessLevel,
 *     compartmentIdInSubtree: securityAssessmentCompartmentIdInSubtree === "true",
 *     displayName: securityAssessmentDisplayName,
 *     isBaseline: securityAssessmentIsBaseline === "true",
 *     isScheduleAssessment: securityAssessmentIsScheduleAssessment === "true",
 *     scheduleAssessmentId: testScheduleAssessment.id,
 *     state: securityAssessmentState,
 *     targetDatabaseGroupId: testTargetDatabaseGroup.id,
 *     targetId: testTarget.id,
 *     targetType: securityAssessmentTargetType,
 *     templateAssessmentId: testTemplateAssessment.id,
 *     timeCreatedGreaterThanOrEqualTo: securityAssessmentTimeCreatedGreaterThanOrEqualTo,
 *     timeCreatedLessThan: securityAssessmentTimeCreatedLessThan,
 *     triggeredBy: securityAssessmentTriggeredBy,
 *     type: securityAssessmentType,
 * });
 * ```
 */
export declare function getSecurityAssessmentsOutput(args: GetSecurityAssessmentsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetSecurityAssessmentsResult>;
/**
 * A collection of arguments for invoking getSecurityAssessments.
 */
export interface GetSecurityAssessmentsOutputArgs {
    /**
     * Valid values are RESTRICTED and ACCESSIBLE. Default is RESTRICTED. Setting this to ACCESSIBLE returns only those compartments for which the user has INSPECT permissions directly or indirectly (permissions can be on a resource in a subcompartment). When set to RESTRICTED permissions are checked and no partial results are displayed.
     */
    accessLevel?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only resources that match the specified compartment OCID.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * Default is false. When set to true, the hierarchy of compartments is traversed and all compartments and subcompartments in the tenancy are returned. Depends on the 'accessLevel' setting.
     */
    compartmentIdInSubtree?: pulumi.Input<boolean | undefined>;
    /**
     * A filter to return only resources that match the specified display name.
     */
    displayName?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.DataSafe.GetSecurityAssessmentsFilterArgs>[] | undefined>;
    /**
     * A filter to return only the security assessments that are set as a baseline.
     */
    isBaseline?: pulumi.Input<boolean | undefined>;
    /**
     * A filter to return only security assessments of type save schedule.
     */
    isScheduleAssessment?: pulumi.Input<boolean | undefined>;
    /**
     * The OCID of the security assessment of type SAVE_SCHEDULE.
     */
    scheduleAssessmentId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only resources that match the specified lifecycle state.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * A filter to return the target database group that matches the specified OCID.
     */
    targetDatabaseGroupId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items related to a specific target OCID.
     */
    targetId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only only target database resources or target database group resources.
     */
    targetType?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the security assessment of type TEMPLATE.
     */
    templateAssessmentId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only the resources that were created after the specified date and time, as defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Using TimeCreatedGreaterThanOrEqualToQueryParam parameter retrieves all resources created after that date.
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeCreatedGreaterThanOrEqualTo?: pulumi.Input<string | undefined>;
    /**
     * Search for resources that were created before a specific date. Specifying this parameter corresponding `timeCreatedLessThan` parameter will retrieve all resources created before the specified created date, in "YYYY-MM-ddThh:mmZ" format with a Z offset, as defined by RFC 3339.
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeCreatedLessThan?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only security assessments that were created by either user or system.
     */
    triggeredBy?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified security assessment type.
     */
    type?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getSecurityAssessments.d.ts.map