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 Users in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of users of the specified user assessment. The result contains the database user details for each user, such
 * as user type, account status, last login time, user creation time, authentication type, user profile, and the date and time
 * of the latest password change. It also contains the user category derived from these user details as well as privileges
 * granted to each user.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testUserAssessmentUsers = oci.datasafe.getUserAssessmentUsers({
 *     userAssessmentId: testUserAssessment.id,
 *     accessLevel: userAssessmentUserAccessLevel,
 *     accountStatus: userAssessmentUserAccountStatus,
 *     areAllSchemasAccessible: userAssessmentUserAreAllSchemasAccessible === "true",
 *     authenticationType: userAssessmentUserAuthenticationType,
 *     compartmentIdInSubtree: userAssessmentUserCompartmentIdInSubtree === "true",
 *     schemaLists: userAssessmentUserSchemaList,
 *     targetId: testTarget.id,
 *     timeLastLoginGreaterThanOrEqualTo: userAssessmentUserTimeLastLoginGreaterThanOrEqualTo,
 *     timeLastLoginLessThan: userAssessmentUserTimeLastLoginLessThan,
 *     timePasswordExpiryGreaterThanOrEqualTo: userAssessmentUserTimePasswordExpiryGreaterThanOrEqualTo,
 *     timePasswordExpiryLessThan: userAssessmentUserTimePasswordExpiryLessThan,
 *     timePasswordLastChangedGreaterThanOrEqualTo: userAssessmentUserTimePasswordLastChangedGreaterThanOrEqualTo,
 *     timePasswordLastChangedLessThan: userAssessmentUserTimePasswordLastChangedLessThan,
 *     timeUserCreatedGreaterThanOrEqualTo: userAssessmentUserTimeUserCreatedGreaterThanOrEqualTo,
 *     timeUserCreatedLessThan: userAssessmentUserTimeUserCreatedLessThan,
 *     userCategory: userAssessmentUserUserCategory,
 *     userKey: userAssessmentUserUserKey,
 *     userName: testUser.name,
 *     userProfile: userAssessmentUserUserProfile,
 *     userRole: userAssessmentUserUserRole,
 *     userType: userAssessmentUserUserType,
 * });
 * ```
 */
export declare function getUserAssessmentUsers(args: GetUserAssessmentUsersArgs, opts?: pulumi.InvokeOptions): Promise<GetUserAssessmentUsersResult>;
/**
 * A collection of arguments for invoking getUserAssessmentUsers.
 */
export interface GetUserAssessmentUsersArgs {
    /**
     * 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 criteria that all schemas can be accessed by a user.
     */
    areAllSchemasAccessible?: boolean;
    /**
     * 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.GetUserAssessmentUsersFilter[];
    /**
     * A filter to return items that contain the specified schema list.
     */
    schemaLists?: string[];
    /**
     * 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 filter to return only items that match the specified user profile.
     */
    userProfile?: string;
    /**
     * A filter to return only items that match the specified user role.
     */
    userRole?: string;
    /**
     * A filter to return only items that match the specified user type. The possible values can be
     * * ADMIN_PRIVILEGED
     * * APPLICATION
     * * PRIVILEGED
     * * SCHEMA
     * * NON_PRIVILEGED as specified by '#/definitions/userTypes'.
     */
    userType?: string;
}
/**
 * A collection of values returned by getUserAssessmentUsers.
 */
export interface GetUserAssessmentUsersResult {
    readonly accessLevel?: string;
    /**
     * The status of the user account.
     */
    readonly accountStatus?: string;
    /**
     * Indicates whether the user has access to all the schemas.
     */
    readonly areAllSchemasAccessible?: boolean;
    /**
     * The user authentication method.
     */
    readonly authenticationType?: string;
    readonly compartmentIdInSubtree?: boolean;
    readonly filters?: outputs.DataSafe.GetUserAssessmentUsersFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The list of database schemas current user can access.
     */
    readonly schemaLists?: string[];
    /**
     * The OCID of the target database.
     */
    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;
    readonly userAssessmentId: string;
    /**
     * The user category based on the privileges and other details of the user.
     */
    readonly userCategory?: string;
    readonly userKey?: string;
    /**
     * The database user name.
     */
    readonly userName?: string;
    /**
     * The user profile name.
     */
    readonly userProfile?: string;
    readonly userRole?: string;
    readonly userType?: string;
    /**
     * The list of users.
     */
    readonly users: outputs.DataSafe.GetUserAssessmentUsersUser[];
}
/**
 * This data source provides the list of User Assessment Users in Oracle Cloud Infrastructure Data Safe service.
 *
 * Gets a list of users of the specified user assessment. The result contains the database user details for each user, such
 * as user type, account status, last login time, user creation time, authentication type, user profile, and the date and time
 * of the latest password change. It also contains the user category derived from these user details as well as privileges
 * granted to each user.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testUserAssessmentUsers = oci.datasafe.getUserAssessmentUsers({
 *     userAssessmentId: testUserAssessment.id,
 *     accessLevel: userAssessmentUserAccessLevel,
 *     accountStatus: userAssessmentUserAccountStatus,
 *     areAllSchemasAccessible: userAssessmentUserAreAllSchemasAccessible === "true",
 *     authenticationType: userAssessmentUserAuthenticationType,
 *     compartmentIdInSubtree: userAssessmentUserCompartmentIdInSubtree === "true",
 *     schemaLists: userAssessmentUserSchemaList,
 *     targetId: testTarget.id,
 *     timeLastLoginGreaterThanOrEqualTo: userAssessmentUserTimeLastLoginGreaterThanOrEqualTo,
 *     timeLastLoginLessThan: userAssessmentUserTimeLastLoginLessThan,
 *     timePasswordExpiryGreaterThanOrEqualTo: userAssessmentUserTimePasswordExpiryGreaterThanOrEqualTo,
 *     timePasswordExpiryLessThan: userAssessmentUserTimePasswordExpiryLessThan,
 *     timePasswordLastChangedGreaterThanOrEqualTo: userAssessmentUserTimePasswordLastChangedGreaterThanOrEqualTo,
 *     timePasswordLastChangedLessThan: userAssessmentUserTimePasswordLastChangedLessThan,
 *     timeUserCreatedGreaterThanOrEqualTo: userAssessmentUserTimeUserCreatedGreaterThanOrEqualTo,
 *     timeUserCreatedLessThan: userAssessmentUserTimeUserCreatedLessThan,
 *     userCategory: userAssessmentUserUserCategory,
 *     userKey: userAssessmentUserUserKey,
 *     userName: testUser.name,
 *     userProfile: userAssessmentUserUserProfile,
 *     userRole: userAssessmentUserUserRole,
 *     userType: userAssessmentUserUserType,
 * });
 * ```
 */
export declare function getUserAssessmentUsersOutput(args: GetUserAssessmentUsersOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetUserAssessmentUsersResult>;
/**
 * A collection of arguments for invoking getUserAssessmentUsers.
 */
export interface GetUserAssessmentUsersOutputArgs {
    /**
     * 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 criteria that all schemas can be accessed by a user.
     */
    areAllSchemasAccessible?: pulumi.Input<boolean | 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.GetUserAssessmentUsersFilterArgs>[] | undefined>;
    /**
     * A filter to return items that contain the specified schema list.
     */
    schemaLists?: pulumi.Input<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 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>;
    /**
     * A filter to return only items that match the specified user profile.
     */
    userProfile?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified user role.
     */
    userRole?: pulumi.Input<string | undefined>;
    /**
     * A filter to return only items that match the specified user type. The possible values can be
     * * ADMIN_PRIVILEGED
     * * APPLICATION
     * * PRIVILEGED
     * * SCHEMA
     * * NON_PRIVILEGED as specified by '#/definitions/userTypes'.
     */
    userType?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getUserAssessmentUsers.d.ts.map