using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace PepperDash.Essentials
{
///
/// Represents a MobileControlConfig
///
public class MobileControlConfig
{
///
/// Gets or sets the ServerUrl
///
[JsonProperty("serverUrl")]
public string ServerUrl { get; set; }
///
/// Gets or sets the ClientAppUrl
///
[JsonProperty("clientAppUrl")]
public string ClientAppUrl { get; set; }
///
/// Gets or sets the DirectServer
///
[JsonProperty("directServer")]
public MobileControlDirectServerPropertiesConfig DirectServer { get; set; }
///
/// Gets or sets the ApplicationConfig
///
[JsonProperty("applicationConfig")]
public MobileControlApplicationConfig ApplicationConfig { get; set; } = null;
///
/// Gets or sets the EnableApiServer
///
[JsonProperty("enableApiServer")]
public bool EnableApiServer { get; set; } = true;
}
///
/// Represents a MobileControlDirectServerPropertiesConfig
///
public class MobileControlDirectServerPropertiesConfig
{
///
/// Gets or sets the EnableDirectServer
///
[JsonProperty("enableDirectServer")]
public bool EnableDirectServer { get; set; }
///
/// Gets or sets the Port
///
[JsonProperty("port")]
public int Port { get; set; }
///
/// Gets or sets the Logging
///
[JsonProperty("logging")]
public MobileControlLoggingConfig Logging { get; set; }
///
/// Gets or sets the AutomaticallyForwardPortToCSLAN
///
[JsonProperty("automaticallyForwardPortToCSLAN")]
public bool? AutomaticallyForwardPortToCSLAN { get; set; }
///
/// Gets or sets the CSLanUiDeviceKeys
///
///
/// A list of device keys for the CS LAN UI. These devices will get the CS LAN IP address instead of the LAN IP Address
///
[JsonProperty("csLanUiDeviceKeys")]
public List CSLanUiDeviceKeys { get; set; }
///
/// Initializes a new instance of the MobileControlDirectServerPropertiesConfig class.
///
public MobileControlDirectServerPropertiesConfig()
{
Logging = new MobileControlLoggingConfig();
}
}
///
/// Represents a MobileControlLoggingConfig
///
public class MobileControlLoggingConfig
{
///
/// Gets or sets the EnableRemoteLogging
///
[JsonProperty("enableRemoteLogging")]
public bool EnableRemoteLogging { get; set; }
///
/// Gets or sets the Host
///
[JsonProperty("host")]
public string Host { get; set; }
///
/// Gets or sets the Port
///
[JsonProperty("port")]
public int Port { get; set; }
}
///
/// Represents a MobileControlRoomBridgePropertiesConfig
///
public class MobileControlRoomBridgePropertiesConfig
{
///
/// Gets or sets the Key
///
[JsonProperty("key")]
public string Key { get; set; }
///
/// Gets or sets the RoomKey
///
[JsonProperty("roomKey")]
public string RoomKey { get; set; }
}
///
/// Represents a MobileControlSimplRoomBridgePropertiesConfig
///
public class MobileControlSimplRoomBridgePropertiesConfig
{
///
/// Gets or sets the EiscId
///
[JsonProperty("eiscId")]
public string EiscId { get; set; }
}
///
/// Represents a MobileControlApplicationConfig
///
public class MobileControlApplicationConfig
{
///
/// Gets or sets the ApiPath
///
[JsonProperty("apiPath")]
public string ApiPath { get; set; }
///
/// Gets or sets the GatewayAppPath
///
[JsonProperty("gatewayAppPath")]
public string GatewayAppPath { get; set; }
///
/// Gets or sets the EnableDev
///
[JsonProperty("enableDev")]
public bool? EnableDev { get; set; }
///
/// Gets or sets the LogoPath
///
[JsonProperty("logoPath")]
public string LogoPath { get; set; }
///
/// Gets or sets the IconSet
///
[JsonProperty("iconSet")]
[JsonConverter(typeof(StringEnumConverter))]
public MCIconSet? IconSet { get; set; }
///
/// Gets or sets the LoginMode
///
[JsonProperty("loginMode")]
public string LoginMode { get; set; }
///
/// Gets or sets the Modes
///
[JsonProperty("modes")]
public Dictionary Modes { get; set; }
///
/// Gets or sets the Logging
///
[JsonProperty("enableRemoteLogging")]
public bool Logging { get; set; }
///
/// Gets or sets the PartnerMetadata
///
[JsonProperty("partnerMetadata", NullValueHandling = NullValueHandling.Ignore)]
public List PartnerMetadata { get; set; }
}
///
/// Represents a MobileControlPartnerMetadata
///
public class MobileControlPartnerMetadata
{
///
/// Gets or sets the Role
///
[JsonProperty("role")]
public string Role { get; set; }
///
/// Gets or sets the Description
///
[JsonProperty("description")]
public string Description { get; set; }
///
/// Gets or sets the LogoPath
///
[JsonProperty("logoPath")]
public string LogoPath { get; set; }
}
///
/// Represents a McMode
///
public class McMode
{
///
/// Gets or sets the ListPageText
///
[JsonProperty("listPageText")]
public string ListPageText { get; set; }
///
/// Gets or sets the LoginHelpText
///
[JsonProperty("loginHelpText")]
public string LoginHelpText { get; set; }
///
/// Gets or sets the PasscodePageText
///
[JsonProperty("passcodePageText")]
public string PasscodePageText { get; set; }
}
///
/// Enumeration of MCIconSet values
///
public enum MCIconSet
{
///
/// Google icon set
///
GOOGLE,
///
/// Habanero icon set
///
HABANERO,
///
/// Neo icon set
///
NEO
}
}