using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace ProxyTunnel.Models
{
    /// <summary>
    /// Any data about the api consumer that may be useful for debugging, and/or telemetry data (billing, usage reports, etc).
    /// This is the place for data that is NOT tied to an inContact script action, but related to behind-the-scenes infrastructure
    /// </summary>
    [Description("Any data about the api consumer that may be useful for debugging, and or telemetry data billing, usage reports, etc.")]
    public class SystemTelemetryData
    {
        /// <summary>
        /// Host name of the API caller
        /// </summary>
        [Description("Host name of the API caller")]
        public string consumerProcessHost { get; set; }

        /// <summary>
        /// Process/application name of the API caller.  For example, 'EsnMediaServer.exe'
        /// </summary>
        [Description("Process/application name of the API caller.  For example, EsnMediaServer.exe")]
        public string consumerProcessName { get; set; }

        /// <summary>
        /// Any version information about the application calling the API
        /// </summary>
        [Description("Any version information about the application calling the API")]
        public string consumerProcessVersion { get; set; }

        /// <summary>
        /// If applicable and available, supply inContact cluster alias (for example: 'C7', or 'HC19')
        /// </summary>
        [Description("If applicable and available, supply inContact cluster alias for example C7, or HC19")]
        public string inContactClusterAlias { get; set; }

        /// <summary>
        /// If applicable and available, supply inContact script engine host name (for example: 'lax-c4cor01' or 'aoa-c32cor01')
        /// </summary>
        [Description("If applicable and available, supply inContact script engine host name for example lax-c4cor01 or aoa-c32cor01")]
        public string inContactScriptEngineHost { get; set; }

        /// <summary>
        /// Arbitrary and extensible data about the API consumer
        /// </summary>
        [Description("Arbitrary and extensible data about the API consumer")]
        public Dictionary<string,string> consumerMetaData { get; set; }
    }
}
