/* Options:
Date: 2025-11-04 06:37:42
Version: 8.71
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://evovoice.io
//GlobalNamespace: 
//MakePartial: True
//MakeVirtual: True
//MakeInternal: False
//MakeDataContractsExtensible: False
//AddNullableAnnotations: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//InitializeCollections: False
//ExportValueTypes: False
IncludeTypes: PatchUser.*
//ExcludeTypes: 
//AddNamespaces: 
//AddDefaultXmlNamespace: http://schemas.servicestack.net/types
*/
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Endpoints;
using Voice.Api.Authentication;
namespace Voice.Api.Authentication
{
    public enum DashboardPermissions
    {
        ViewFiles,
        ViewNotifications,
        ViewSessions,
        ViewEndpoints,
        ViewReports,
        ViewCustomers,
        ViewFlows,
        ViewCallCenter,
    }
    ///
    ///Update the specified login
    ///
    [Route("/users/{userId}", "PATCH")]
    [Api(Description="Update the specified login")]
    public partial class PatchUser
        : IReturn, IPatch
    {
        ///
        ///The account IDs that this user has access to
        ///
        [ApiMember(Description="The account IDs that this user has access to")]
        public virtual List AccountIds { get; set; }
        ///
        ///The ID of the user
        ///
        [ApiMember(Description="The ID of the user")]
        public virtual string UserId { get; set; }
        ///
        ///The user's first name
        ///
        [ApiMember(Description="The user's first name")]
        public virtual string FirstName { get; set; }
        ///
        ///The user's last name
        ///
        [ApiMember(Description="The user's last name")]
        public virtual string LastName { get; set; }
        ///
        ///The new password for the user (leave null to not change)
        ///
        [ApiMember(Description="The new password for the user (leave null to not change)")]
        public virtual string NewPassword { get; set; }
        ///
        ///The roles to associate with the login. Can only specify if system admin
        ///
        [ApiMember(Description="The roles to associate with the login. Can only specify if system admin")]
        public virtual List Roles { get; set; }
    }
    public partial class UserInfo
    {
        public virtual string Id { get; set; }
        public virtual bool IsAuthenticated { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Name { get; set; }
        public virtual string AvatarUrl { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual List Roles { get; set; }
        public virtual List AccountIds { get; set; }
        public virtual List AccountNames { get; set; }
        public virtual UserManagerAccess ManagerAccess { get; set; }
        public virtual List DashboardPermissions { get; set; }
    }
}
namespace Voice.Api.Endpoints
{
    public enum UserManagerAccess
    {
        ReadOnly,
        ReadWrite,
        ReadWriteDelete,
    }
}