using CommandLine; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.DataStore.Web; using Tango.Web; namespace Tango.DataStore.CLI { public class OptionsBase { [Option(longName: "email", HelpText = "Email address.")] public String Email { get; set; } [Option(longName: "password", HelpText = "Password.")] public String Password { get; set; } [Option(longName: "env", HelpText = "The target environment.", Required = true)] public DeploymentSlot Environment { get; set; } } [Verb("get", HelpText = "Get a data store item.")] public class GetOptions : OptionsBase { [Option(longName: "sn", HelpText = "Machine serial number. if not specified will return only global values.")] public String MachineSerialNumber { get; set; } [Option(longName: "collection", HelpText = "Collection name.\nIf not specified will return all collections.\nIf 'key' if specified the 'collection' must be specified.")] public String Collection { get; set; } [Option(longName: "key", HelpText = "Item key. If not specified will return the entire collection.")] public String Key { get; set; } } [Verb("put", HelpText = "Put a new, or update an existing data store item.")] public class PutOptions : OptionsBase { [Option(longName: "sn", HelpText = "Machine serial number. If not specified will put a value on the global data store.")] public String MachineSerialNumber { get; set; } [Option(longName: "collection", HelpText = "New or existing collection name.", Required = true)] public String Collection { get; set; } [Option(longName: "key", HelpText = "New or existing item key", Required = true)] public String Key { get; set; } [Option(longName: "data-type", HelpText = "Item data type", Required = true)] public Web.DataType DataType { get; set; } [Option(longName: "proto-type", HelpText = "Protobuf message type when data-type is 'Proto'.")] public MessageType ProtoMessageType { get; set; } [Option(longName: "value", HelpText = "Item value", Required = true)] public String Value { get; set; } } [Verb("login-config", HelpText = "Stores the specified credentials for use with the --auto-login flag.")] public class LoginConfig { [Option(longName: "email", HelpText = "Email address.")] public String Email { get; set; } [Option(longName: "password", HelpText = "Password.")] public String Password { get; set; } } }