// <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>
    /// The purpose for existing, from the standpoint of a simulator instance
    /// or
    /// brain version.
    /// </summary>
    public partial class Purpose
    {
        /// <summary>
        /// Initializes a new instance of the Purpose class.
        /// </summary>
        public Purpose()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the Purpose class.
        /// </summary>
        /// <param name="action">Possible values include: 'Inactive', 'Debug',
        /// 'Train', 'Assess'</param>
        public Purpose(PurposeTypesAction? action = default(PurposeTypesAction?), PurposeTarget target = default(PurposeTarget))
        {
            Action = action;
            Target = target;
            CustomInit();
        }

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

        /// <summary>
        /// Gets or sets possible values include: 'Inactive', 'Debug', 'Train',
        /// 'Assess'
        /// </summary>
        [JsonProperty(PropertyName = "action")]
        public PurposeTypesAction? Action { get; set; }

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

    }
}
