github.com/microsoft/moc@v0.17.1/rpc/common/moc_common_computecommon.proto (about)

     1  // Copyright (c) Microsoft Corporation.
     2  // Licensed under the Apache v2.0 license.
     3  
     4  syntax = "proto3";
     5  option go_package = "github.com/microsoft/moc/rpc/common";
     6  
     7  package moc;
     8  import "google/protobuf/descriptor.proto";
     9  
    10  enum UserType {
    11  	ROOT = 0;
    12  	USER = 1;
    13  }
    14  
    15  enum ProcessorType {
    16  	None = 0;
    17  	Intel = 1;
    18  	Intel64 = 2;
    19  	AMD = 3;
    20  	AMD64 = 4;
    21  	ARM = 5;
    22  	ARM64 = 6;
    23  }
    24  
    25  enum OperatingSystemBootstrapEngine {
    26  	CLOUD_INIT = 0; // For both cloud-init and cloudbase-init
    27  	WINDOWS_ANSWER_FILES = 1;
    28  }
    29  
    30  enum OperatingSystemType {
    31  	WINDOWS = 0;
    32  	LINUX = 1;
    33  }
    34  
    35  enum VirtualMachineSizeType {
    36  	Default = 0;
    37  	Standard_A2_v2 = 2;
    38  	Standard_A4_v2 = 3;
    39  	Standard_D2s_v3 = 4;
    40  	Standard_D4s_v3 = 5;
    41  	Standard_D8s_v3 = 6;
    42  	Standard_D16s_v3 = 7;
    43  	Standard_D32s_v3 = 8;
    44  	Standard_DS2_v2 = 9;
    45  	Standard_DS3_v2 = 10;
    46  	Standard_DS4_v2 = 11;
    47  	Standard_DS5_v2 = 12;
    48  	Standard_DS13_v2 = 13;
    49  	Standard_K8S_v1 = 14;
    50  	Standard_K8S2_v1 = 15;
    51  	Standard_K8S3_v1 = 16;
    52  	Standard_K8S4_v1 = 17;
    53  	Standard_NK6 = 18;
    54  	Standard_NK12 = 19;
    55  	Standard_NV6 = 20;
    56  	Standard_NV12 = 21;
    57  	Standard_K8S5_v1 = 22;
    58  	Standard_DS2_v2_HPN = 23;
    59  	Standard_DS3_v2_HPN = 24;
    60  	Standard_DS4_v2_HPN = 25;
    61  	Standard_F2s_HPN = 26;
    62  	Standard_F4s_HPN = 27;
    63  	Standard_F8s_HPN = 28;
    64  	Standard_F16s_HPN = 29;
    65  	Standard_NC4_A2 = 30;
    66  	Standard_NC8_A2 = 31;
    67  	Standard_NC16_A2 = 32;
    68  	Standard_NC32_A2 = 33;
    69  	Standard_NC4_A30 = 34;
    70  	Standard_NC8_A30 = 35;
    71  	Standard_NC16_A30 = 36;
    72  	Standard_NC32_A30 = 37;
    73  	Standard_NC4_A100_40 = 38;
    74  	Standard_NC8_A100_40 = 39;
    75  	Standard_NC16_A100_40 = 40;
    76  	Standard_NC32_A100_40 = 41;
    77  	Standard_NC4_A100_80 = 42;
    78  	Standard_NC8_A100_80 = 43;
    79  	Standard_NC16_A100_80 = 44;
    80  	Standard_NC32_A100_80 = 45;
    81  	Standard_NC4_A16 = 46;
    82  	Standard_NC8_A16 = 47;
    83  	Standard_NC16_A16 = 48;
    84  	Standard_NC32_A16 = 49;
    85  	Custom_A2 = 95;
    86  	Custom_NK = 96;
    87  	Custom_Gpupv = 97;
    88  	Custom = 98;
    89  	Unsupported = 99;
    90  }
    91  
    92  enum WinRMProtocolType {
    93  	HTTP = 0;
    94  	HTTPS = 1;
    95  }
    96  
    97  message WinRMListener {
    98  	WinRMProtocolType Protocol = 1;
    99  }
   100  
   101  message WinRMConfiguration {
   102  	repeated WinRMListener Listeners = 1;
   103  }
   104  
   105  message Gpu {
   106  	enum AssignmentType {
   107  		GpuDDA = 0;
   108  		GpuP = 1;
   109  	}
   110  
   111  	AssignmentType assignment = 1;
   112  	int32 partitionSizeGB = 2;
   113  }
   114  
   115  message VirtualMachineCustomSize {
   116  	int32 cpuCount = 1;
   117  	int32 memoryMB = 2;
   118  	int32 gpuCount = 3;
   119  	repeated Gpu gpuList = 4;
   120  }
   121  
   122  message DynamicMemoryConfiguration {
   123  	uint64 maximumMemoryMB = 1;
   124  	uint64 minimumMemoryMB = 2;
   125  	uint32 targetMemoryBuffer = 3;
   126  }
   127  
   128  enum PowerState {
   129  	Unknown = 0;
   130  	Running = 1 ;
   131  	Off = 2;
   132  	Paused = 3;
   133  	Critical = 4;
   134  	Saved = 5;
   135  }
   136  
   137  enum VirtualMachineOperation {
   138  	START = 0;
   139  	STOP = 1;
   140  	RESET = 2;
   141  	REPAIR_GUEST_AGENT = 3;
   142  	PAUSE = 4;
   143  	SAVE = 5;
   144  }
   145  
   146  enum VirtualMachineRunCommandExecutionState {
   147  	ExecutionState_UNKNOWN = 0;
   148  	ExecutionState_FAILED = 1;
   149  	ExecutionState_SUCCEEDED = 2;
   150  	ExecutionState_PENDING = 3;
   151  	ExecutionState_REBOOTING = 4;
   152  }
   153  
   154  message VirtualMachineRunCommandInputParameter {
   155      string Name = 1;
   156      string Value = 2 [(sensitivejson) = true];
   157  }
   158  
   159  message VirtualMachineRunCommandScriptSource {
   160  	string Script = 1 [(sensitivecompute) = true];
   161  	string ScriptURI = 2;
   162  	string CommandID = 3;
   163  }
   164  
   165  message VirtualMachineRunCommandInstanceView {
   166  	VirtualMachineRunCommandExecutionState ExecutionState = 1;
   167  	int32 ExitCode = 2;
   168  	string Output = 3;
   169  	string Error = 4;
   170  }
   171  
   172  // describes the the capabilities of this node in terms of what type of VM can be created
   173  // In the future when CVM comes, another bool will be added to check hardware capability.
   174  message VirtualMachineCapabilities {
   175  	bool IsolatedVmCapable =  1;
   176  }
   177  
   178  message InstanceViewStatus {
   179  	enum StatusLevelType {
   180  		Unknown = 0;
   181  		Info = 1 ;
   182  		Warning = 2;
   183  		Error = 3;
   184  	}
   185  
   186  	string code = 1;
   187  	StatusLevelType level = 2;
   188  	string displayStatus = 3;
   189  	string message = 4;
   190  	string time = 5;
   191  }
   192  
   193  message VirtualMachineAgentInstanceView {
   194  	string vmAgentVersion = 1;
   195  	repeated InstanceViewStatus statuses = 2;
   196  }
   197  
   198  message GuestAgentConfiguration {
   199  	bool enabled = 1;
   200  }
   201  
   202  /* Values fetched from Win32_Processor class.
   203  Documentation here:
   204  https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor#properties */
   205  
   206  enum Architecture {
   207  	x86 = 0;
   208  	MIPS = 1;
   209  	Alpha = 2;
   210  	PowerPC = 3;
   211  	ARM_Architecture = 5;
   212  	ia64 = 6;
   213  	x64 = 9;
   214  	ARM64_Architecture = 12;
   215  }
   216  
   217  extend google.protobuf.FieldOptions {
   218  	bool sensitivecompute = 50002;
   219  	bool sensitivejson = 50003;
   220  }
   221  
   222  enum SecurityType {
   223          NOTCONFIGURED = 0;
   224          TRUSTEDLAUNCH = 1;
   225          CONFIDENTIALVM = 2;
   226  }
   227  
   228  message ProxyConfiguration {
   229  	string httpProxy = 1 [(sensitivecompute) = true];
   230  	string httpsProxy = 2 [(sensitivecompute) = true];
   231  	repeated string noProxy = 3;
   232  	string trustedCa = 4 [(sensitivecompute) = true];
   233  }