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 }