/**
 * Data Safe API
 * APIs for using Oracle Data Safe.
 * OpenAPI spec version: 20181201
 *
 *
 * NOTE: This class is auto generated by OracleSDKGenerator.
 * Do not edit the class manually.
 *
 * Copyright (c) 2020, 2022, Oracle and/or its affiliates.  All rights reserved.
 * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
 */ import * as model from "../model" ; import common = require ( "oci-common" ) ; /**
 * The summary of information about the database user. It includes details such as user type, account status,
 * last login time, user creation time, authentication type, user profile, and time and date of the last password change.
 * It also contains the user category derived from these user details, as well as granted privileges.
 *
 */ export interface UserSummary { /**
     * The unique user key. This is a system-generated identifier. Use ListUsers to get the user key for a user.
     */ "key" : string ; /**
     * The database user name.
     */ "userName" : string ; /**
     * The user category based on the privileges and other details of the user.
     */ "userCategory" ? : UserSummary . UserCategory ; /**
     * The user account status.
     */ "accountStatus" ? : UserSummary . AccountStatus ; /**
     * The OCID of the target database.
     */ "targetId" : string ; /**
     * The date and time when the user last logged in, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */ "timeLastLogin" ? : Date ; /**
     * The date and time when the user was created in the database, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */ "timeUserCreated" ? : Date ; /**
     * The user authentication method.
     */ "authenticationType" ? : UserSummary . AuthenticationType ; /**
     * The user profile name.
     */ "userProfile" ? : string ; /**
     * The date and time when the user password was last changed, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */ "timePasswordChanged" ? : Date ; /**
      * The user type, which can be a combination of the following:
  * <p>
  'Admin Privileged': The user has administrative privileges.
  * 'Application': The user is an Oracle E-Business Suite Applications (EBS) or Fusion Applications (FA) user.
  * 'Privileged': The user is a privileged user.
  * 'Schema': The user is EXPIRED & LOCKED / EXPIRED / LOCKED, or a schema-only account (authentication type is NONE).
  * 'Non-privileged': The user is a non-privileged user.
  *
      */ "userTypes" ? : Array < UserSummary . UserTypes > ; /**
     * The admin roles granted to the user.
     */ "adminRoles" ? : Array < UserSummary . AdminRoles > ; } export namespace UserSummary { export enum UserCategory { Critical = "CRITICAL" , High = "HIGH" , Medium = "MEDIUM" , Low = "LOW" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export enum AccountStatus { Open = "OPEN" , Locked = "LOCKED" , Expired = "EXPIRED" , ExpiredAndLocked = "EXPIRED_AND_LOCKED" , None = "NONE" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export enum AuthenticationType { Password = "PASSWORD" , None = "NONE" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export enum UserTypes { AdminPrivileged = "ADMIN_PRIVILEGED" , Application = "APPLICATION" , Privileged = "PRIVILEGED" , Schema = "SCHEMA" , NonPrivileged = "NON_PRIVILEGED" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export enum AdminRoles { PdbDba = "PDB_DBA" , Dba = "DBA" , DvAdmin = "DV_ADMIN" , AuditAdmin = "AUDIT_ADMIN" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } }