aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/DataStore/Tango.DataStore.CLI/Options.cs
blob: fd91a572288ee3190be5c883dd1726d0faa7d990 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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; }
    }
}