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 User Assessment User Analytics in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of aggregated user details from the specified user assessment. This provides information about the overall state.
 * of database user security.  For example, the user details include how many users have the DBA role and how many users are in
 * the critical category. This data is especially useful content for dashboards or to support analytics.
 *
 * When you perform the ListUserAnalytics operation, if the parameter compartmentIdInSubtree is set to "true," and if the
 * parameter accessLevel is set to ACCESSIBLE, then the operation returns compartments in which the requestor has READ
 * permissions on at least one resource, directly or indirectly (in subcompartments). If the operation is performed at the
 * root compartment and the requestor does not have access to at least one subcompartment of the compartment specified by
 * compartmentId, then "Not Authorized" is returned.
 *
 * The parameter compartmentIdInSubtree applies when you perform ListUserAnalytics on the compartmentId passed and when it is
 * set to true, the entire hierarchy of compartments can be returned.
 *
 * To use ListUserAnalytics to get a full list of all compartments and subcompartments in the tenancy from the 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 testUserAssessmentUserAnalytics = oci.datasafe.getUserAssessmentUserAnalytics({
 *     userAssessmentId: testUserAssessment.id,
 *     accessLevel: userAssessmentUserAnalyticAccessLevel,
 *     accountStatus: userAssessmentUserAnalyticAccountStatus,
 *     authenticationType: userAssessmentUserAnalyticAuthenticationType,
 *     compartmentIdInSubtree: userAssessmentUserAnalyticCompartmentIdInSubtree === "true",
 *     targetId: testTarget.id,
 *     timeLastLoginGreaterThanOrEqualTo: userAssessmentUserAnalyticTimeLastLoginGreaterThanOrEqualTo,
 *     timeLastLoginLessThan: userAssessmentUserAnalyticTimeLastLoginLessThan,
 *     timePasswordExpiryGreaterThanOrEqualTo: userAssessmentUserAnalyticTimePasswordExpiryGreaterThanOrEqualTo,
 *     timePasswordExpiryLessThan: userAssessmentUserAnalyticTimePasswordExpiryLessThan,
 *     timePasswordLastChangedGreaterThanOrEqualTo: userAssessmentUserAnalyticTimePasswordLastChangedGreaterThanOrEqualTo,
 *     timePasswordLastChangedLessThan: userAssessmentUserAnalyticTimePasswordLastChangedLessThan,
 *     timeUserCreatedGreaterThanOrEqualTo: userAssessmentUserAnalyticTimeUserCreatedGreaterThanOrEqualTo,
 *     timeUserCreatedLessThan: userAssessmentUserAnalyticTimeUserCreatedLessThan,
 *     userCategory: userAssessmentUserAnalyticUserCategory,
 *     userKey: userAssessmentUserAnalyticUserKey,
 *     userName: testUser.name,
 * });
 * ```
 */
export declare function getUserAssessmentUserAnalytics(args: GetUserAssessmentUserAnalyticsArgs, opts?: pulumi.InvokeOptions): Promise<GetUserAssessmentUserAnalyticsResult>;
/**
 * A collection of arguments for invoking getUserAssessmentUserAnalytics.
 */
export interface GetUserAssessmentUserAnalyticsArgs {
    /**
     * 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 items that match the specified account status.
     */
    accountStatus?: string;
    /**
     * A filter to return only items that match the specified authentication type.
     */
    authenticationType?: 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;
    filters?: inputs.DataSafe.GetUserAssessmentUserAnalyticsFilter[];
    /**
     * A filter to return only items related to a specific target OCID.
     */
    targetId?: string;
    /**
     * A filter to return users whose last login time in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeLastLoginGreaterThanOrEqualTo?: string;
    /**
     * A filter to return users whose last login time in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeLastLoginLessThan?: string;
    /**
     * A filter to return users whose password expiry date in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordExpiryGreaterThanOrEqualTo?: string;
    /**
     * A filter to return users whose password expiry date in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordExpiryLessThan?: string;
    /**
     * A filter to return users whose last password change in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordLastChangedGreaterThanOrEqualTo?: string;
    /**
     * A filter to return users whose last password change in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordLastChangedLessThan?: string;
    /**
     * A filter to return users whose creation time in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeUserCreatedGreaterThanOrEqualTo?: string;
    /**
     * A filter to return users whose creation time in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeUserCreatedLessThan?: string;
    /**
     * The OCID of the user assessment.
     */
    userAssessmentId: string;
    /**
     * A filter to return only items that match the specified user category.
     */
    userCategory?: string;
    /**
     * A filter to return only items that match the specified user key.
     */
    userKey?: string;
    /**
     * A filter to return only items that match the specified user name.
     */
    userName?: string;
}
/**
 * A collection of values returned by getUserAssessmentUserAnalytics.
 */
export interface GetUserAssessmentUserAnalyticsResult {
    readonly accessLevel?: string;
    readonly accountStatus?: string;
    readonly authenticationType?: string;
    readonly compartmentIdInSubtree?: boolean;
    readonly filters?: outputs.DataSafe.GetUserAssessmentUserAnalyticsFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly targetId?: string;
    readonly timeLastLoginGreaterThanOrEqualTo?: string;
    readonly timeLastLoginLessThan?: string;
    readonly timePasswordExpiryGreaterThanOrEqualTo?: string;
    readonly timePasswordExpiryLessThan?: string;
    readonly timePasswordLastChangedGreaterThanOrEqualTo?: string;
    readonly timePasswordLastChangedLessThan?: string;
    readonly timeUserCreatedGreaterThanOrEqualTo?: string;
    readonly timeUserCreatedLessThan?: string;
    /**
     * The list of user_aggregations.
     */
    readonly userAggregations: outputs.DataSafe.GetUserAssessmentUserAnalyticsUserAggregation[];
    readonly userAssessmentId: string;
    readonly userCategory?: string;
    readonly userKey?: string;
    readonly userName?: string;
}
/**
 * This data source provides the list of User Assessment User Analytics in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of aggregated user details from the specified user assessment. This provides information about the overall state.
 * of database user security.  For example, the user details include how many users have the DBA role and how many users are in
 * the critical category. This data is especially useful content for dashboards or to support analytics.
 *
 * When you perform the ListUserAnalytics operation, if the parameter compartmentIdInSubtree is set to "true," and if the
 * parameter accessLevel is set to ACCESSIBLE, then the operation returns compartments in which the requestor has READ
 * permissions on at least one resource, directly or indirectly (in subcompartments). If the operation is performed at the
 * root compartment and the requestor does not have access to at least one subcompartment of the compartment specified by
 * compartmentId, then "Not Authorized" is returned.
 *
 * The parameter compartmentIdInSubtree applies when you perform ListUserAnalytics on the compartmentId passed and when it is
 * set to true, the entire hierarchy of compartments can be returned.
 *
 * To use ListUserAnalytics to get a full list of all compartments and subcompartments in the tenancy from the 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 testUserAssessmentUserAnalytics = oci.datasafe.getUserAssessmentUserAnalytics({
 *     userAssessmentId: testUserAssessment.id,
 *     accessLevel: userAssessmentUserAnalyticAccessLevel,
 *     accountStatus: userAssessmentUserAnalyticAccountStatus,
 *     authenticationType: userAssessmentUserAnalyticAuthenticationType,
 *     compartmentIdInSubtree: userAssessmentUserAnalyticCompartmentIdInSubtree === "true",
 *     targetId: testTarget.id,
 *     timeLastLoginGreaterThanOrEqualTo: userAssessmentUserAnalyticTimeLastLoginGreaterThanOrEqualTo,
 *     timeLastLoginLessThan: userAssessmentUserAnalyticTimeLastLoginLessThan,
 *     timePasswordExpiryGreaterThanOrEqualTo: userAssessmentUserAnalyticTimePasswordExpiryGreaterThanOrEqualTo,
 *     timePasswordExpiryLessThan: userAssessmentUserAnalyticTimePasswordExpiryLessThan,
 *     timePasswordLastChangedGreaterThanOrEqualTo: userAssessmentUserAnalyticTimePasswordLastChangedGreaterThanOrEqualTo,
 *     timePasswordLastChangedLessThan: userAssessmentUserAnalyticTimePasswordLastChangedLessThan,
 *     timeUserCreatedGreaterThanOrEqualTo: userAssessmentUserAnalyticTimeUserCreatedGreaterThanOrEqualTo,
 *     timeUserCreatedLessThan: userAssessmentUserAnalyticTimeUserCreatedLessThan,
 *     userCategory: userAssessmentUserAnalyticUserCategory,
 *     userKey: userAssessmentUserAnalyticUserKey,
 *     userName: testUser.name,
 * });
 * ```
 */
export declare function getUserAssessmentUserAnalyticsOutput(args: GetUserAssessmentUserAnalyticsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetUserAssessmentUserAnalyticsResult>;
/**
 * A collection of arguments for invoking getUserAssessmentUserAnalytics.
 */
export interface GetUserAssessmentUserAnalyticsOutputArgs {
    /**
     * 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 items that match the specified account status.
     */
    accountStatus?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified authentication type.
     */
    authenticationType?: pulumi.Input<string | undefined>;
    /**
     * 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>;
    filters?: pulumi.Input<pulumi.Input<inputs.DataSafe.GetUserAssessmentUserAnalyticsFilterArgs>[] | undefined>;
    /**
     * A filter to return only items related to a specific target OCID.
     */
    targetId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose last login time in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timeLastLoginGreaterThanOrEqualTo?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose last login time in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeLastLoginLessThan?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose password expiry date in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordExpiryGreaterThanOrEqualTo?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose password expiry date in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordExpiryLessThan?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose last password change in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordLastChangedGreaterThanOrEqualTo?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose last password change in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     *
     * **Example:** 2016-12-19T16:39:57.600Z
     */
    timePasswordLastChangedLessThan?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose creation time in the database is greater than or equal to the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeUserCreatedGreaterThanOrEqualTo?: pulumi.Input<string | undefined>;
    /**
     * A filter to return users whose creation time in the database is less than the date and time specified, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). **Example:** 2016-12-19T16:39:57.600Z
     */
    timeUserCreatedLessThan?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the user assessment.
     */
    userAssessmentId: pulumi.Input<string>;
    /**
     * A filter to return only items that match the specified user category.
     */
    userCategory?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified user key.
     */
    userKey?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified user name.
     */
    userName?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getUserAssessmentUserAnalytics.d.ts.map