<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 Newtonsoft.Json.Converters;
    using System.Runtime;
    using System.Runtime.Serialization;

    /// <summary>
    /// Defines values for SimulatorSessionTypesStatus.
    /// </summary>
    [JsonConverter(typeof(StringEnumConverter))]
    public enum SimulatorSessionTypesStatus
    {
        [EnumMember(Value = "Deregistered")]
        Deregistered,
        [EnumMember(Value = "Attachable")]
        Attachable,
        [EnumMember(Value = "Attached")]
        Attached,
        [EnumMember(Value = "Detaching")]
        Detaching,
        [EnumMember(Value = "Rejected")]
        Rejected
    }
    internal static class SimulatorSessionTypesStatusEnumExtension
    {
        internal static string ToSerializedValue(this SimulatorSessionTypesStatus? value)
        {
            return value == null ? null : ((SimulatorSessionTypesStatus)value).ToSerializedValue();
        }

        internal static string ToSerializedValue(this SimulatorSessionTypesStatus value)
        {
            switch( value )
            {
                case SimulatorSessionTypesStatus.Deregistered:
                    return "Deregistered";
                case SimulatorSessionTypesStatus.Attachable:
                    return "Attachable";
                case SimulatorSessionTypesStatus.Attached:
                    return "Attached";
                case SimulatorSessionTypesStatus.Detaching:
                    return "Detaching";
                case SimulatorSessionTypesStatus.Rejected:
                    return "Rejected";
            }
            return null;
        }

        internal static SimulatorSessionTypesStatus? ParseSimulatorSessionTypesStatus(this string value)
        {
            switch( value )
            {
                case "Deregistered":
                    return SimulatorSessionTypesStatus.Deregistered;
                case "Attachable":
                    return SimulatorSessionTypesStatus.Attachable;
                case "Attached":
                    return SimulatorSessionTypesStatus.Attached;
                case "Detaching":
                    return SimulatorSessionTypesStatus.Detaching;
                case "Rejected":
                    return SimulatorSessionTypesStatus.Rejected;
            }
            return null;
        }
    }
}
