// Code generated by Microsoft (R) AutoRest Code Generator 1.0.1.0
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.

namespace AutorestClient.Models
{
    using Newtonsoft.Json;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;

    /// <summary>
    /// AuthenticateResponse
    /// </summary>
    /// <remarks>
    /// AuthenticateResponse
    /// </remarks>
    public partial class AuthenticateResponse
    {
        /// <summary>
        /// Initializes a new instance of the AuthenticateResponse class.
        /// </summary>
        public AuthenticateResponse()
        {
          CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the AuthenticateResponse class.
        /// </summary>
        public AuthenticateResponse(string userId = default(string), string sessionId = default(string), string userName = default(string), string displayName = default(string), string referrerUrl = default(string), string bearerToken = default(string), string refreshToken = default(string), ResponseStatus responseStatus = default(ResponseStatus), IDictionary<string, string> meta = default(IDictionary<string, string>))
        {
            UserId = userId;
            SessionId = sessionId;
            UserName = userName;
            DisplayName = displayName;
            ReferrerUrl = referrerUrl;
            BearerToken = bearerToken;
            RefreshToken = refreshToken;
            ResponseStatus = responseStatus;
            Meta = meta;
            CustomInit();
        }

        /// <summary>
        /// An initialization method that performs custom operations like setting defaults
        /// </summary>
        partial void CustomInit();

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "UserId")]
        public string UserId { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "SessionId")]
        public string SessionId { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "UserName")]
        public string UserName { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "DisplayName")]
        public string DisplayName { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "ReferrerUrl")]
        public string ReferrerUrl { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "BearerToken")]
        public string BearerToken { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "RefreshToken")]
        public string RefreshToken { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "ResponseStatus")]
        public ResponseStatus ResponseStatus { get; set; }

        /// <summary>
        /// </summary>
        [JsonProperty(PropertyName = "Meta")]
        public IDictionary<string, string> Meta { get; set; }

    }
}
