<gh_stars>0// <auto-generated>
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
// </auto-generated>

namespace Microsoft.Bonsai.SimulatorApi.Models
{
    using Newtonsoft.Json;
    using System.Linq;

    /// <summary>
    /// This structure is passed (as a string) to a simulator running
    /// when launched by the Socrates backend.
    /// </summary>
    public partial class SimulatorContext
    {
        /// <summary>
        /// Initializes a new instance of the SimulatorContext class.
        /// </summary>
        public SimulatorContext()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the SimulatorContext class.
        /// </summary>
        /// <param name="deploymentMode">Possible values include:
        /// 'Unspecified', 'Hosted', 'Testing'</param>
        /// <param name="deploymentDetails">Where is this simulator
        /// deployed</param>
        /// <param name="simulatorClientId">A simulator id generated by the
        /// client</param>
        /// <param name="collection">The id of the collection</param>
        /// <param name="package">The id of the package</param>
        public SimulatorContext(SimulatorContextTypesDeploymentMode? deploymentMode = default(SimulatorContextTypesDeploymentMode?), string deploymentDetails = default(string), string simulatorClientId = default(string), string collection = default(string), string package = default(string), Purpose purpose = default(Purpose))
        {
            DeploymentMode = deploymentMode;
            DeploymentDetails = deploymentDetails;
            SimulatorClientId = simulatorClientId;
            Collection = collection;
            Package = package;
            Purpose = purpose;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets possible values include: 'Unspecified', 'Hosted',
        /// 'Testing'
        /// </summary>
        [JsonProperty(PropertyName = "deploymentMode")]
        public SimulatorContextTypesDeploymentMode? DeploymentMode { get; set; }

        /// <summary>
        /// Gets or sets where is this simulator deployed
        /// </summary>
        [JsonProperty(PropertyName = "deploymentDetails")]
        public string DeploymentDetails { get; set; }

        /// <summary>
        /// Gets or sets a simulator id generated by the client
        /// </summary>
        [JsonProperty(PropertyName = "simulatorClientId")]
        public string SimulatorClientId { get; set; }

        /// <summary>
        /// Gets or sets the id of the collection
        /// </summary>
        [JsonProperty(PropertyName = "collection")]
        public string Collection { get; set; }

        /// <summary>
        /// Gets or sets the id of the package
        /// </summary>
        [JsonProperty(PropertyName = "package")]
        public string Package { get; set; }

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

    }
}
