hcsschema

package
v0.0.0-...-1359b6c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CimMountFlagNone         uint32 = 0x0
	CimMountFlagChildOnly    uint32 = 0x1
	CimMountFlagEnableDax    uint32 = 0x2
	CimMountFlagCacheFiles   uint32 = 0x4
	CimMountFlagCacheRegions uint32 = 0x8
)
View Source
const (
	CPUCapacityProperty           = 0x00010000
	CPUSchedulingPriorityProperty = 0x00020000
	IdleLPReserveProperty         = 0x00030000
)

Variables

View Source
var (
	// ContextOAuth2 takes a oauth2.TokenSource as authentication for the request.
	ContextOAuth2 = contextKey("token")

	// ContextBasicAuth takes BasicAuth as authentication for the request.
	ContextBasicAuth = contextKey("basic")

	// ContextAccessToken takes a string oauth2 access token as authentication for the request.
	ContextAccessToken = contextKey("accesstoken")

	// ContextAPIKey takes an APIKey as authentication for the request
	ContextAPIKey = contextKey("apikey")
)

Functions

This section is empty.

Types

type APIKey

type APIKey struct {
	Key    string
	Prefix string
}

APIKey provides API key based authentication to a request passed via context using ContextAPIKey

type Attachment

type Attachment struct {
	Type_ string `json:"Type,omitempty"`

	Path string `json:"Path,omitempty"`

	IgnoreFlushes bool `json:"IgnoreFlushes,omitempty"`

	CachingMode string `json:"CachingMode,omitempty"`

	NoWriteHardening bool `json:"NoWriteHardening,omitempty"`

	DisableExpansionOptimization bool `json:"DisableExpansionOptimization,omitempty"`

	IgnoreRelativeLocator bool `json:"IgnoreRelativeLocator,omitempty"`

	CaptureIoAttributionContext bool `json:"CaptureIoAttributionContext,omitempty"`

	ReadOnly bool `json:"ReadOnly,omitempty"`

	SupportCompressedVolumes bool `json:"SupportCompressedVolumes,omitempty"`

	AlwaysAllowSparseFiles bool `json:"AlwaysAllowSparseFiles,omitempty"`

	ExtensibleVirtualDiskType string `json:"ExtensibleVirtualDiskType,omitempty"`
}

type BasicAuth

type BasicAuth struct {
	UserName string `json:"userName,omitempty"`
	Password string `json:"password,omitempty"`
}

BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth

type Battery

type Battery struct {
}

type CPUGroupOperation

type CPUGroupOperation string
const (
	CreateGroup CPUGroupOperation = "CreateGroup"
	DeleteGroup CPUGroupOperation = "DeleteGroup"
	SetProperty CPUGroupOperation = "SetProperty"
)

type CPUGroupPropertyCode

type CPUGroupPropertyCode uint32

type CacheQueryStatsResponse

type CacheQueryStatsResponse struct {
	L3OccupancyBytes int32 `json:"L3OccupancyBytes,omitempty"`

	L3TotalBwBytes int32 `json:"L3TotalBwBytes,omitempty"`

	L3LocalBwBytes int32 `json:"L3LocalBwBytes,omitempty"`
}

type Chipset

type Chipset struct {
	Uefi *Uefi `json:"Uefi,omitempty"`

	IsNumLockDisabled bool `json:"IsNumLockDisabled,omitempty"`

	BaseBoardSerialNumber string `json:"BaseBoardSerialNumber,omitempty"`

	ChassisSerialNumber string `json:"ChassisSerialNumber,omitempty"`

	ChassisAssetTag string `json:"ChassisAssetTag,omitempty"`

	UseUtc bool `json:"UseUtc,omitempty"`

	// LinuxKernelDirect - Added in v2.2 Builds >=181117
	LinuxKernelDirect *LinuxKernelDirect `json:"LinuxKernelDirect,omitempty"`
}

type CimMount

type CimMount struct {
	ImagePath      string `json:"ImagePath,omitempty"`
	FileSystemName string `json:"FileSystemName,omitempty"`
	VolumeGuid     string `json:"VolumeGuid,omitempty"`
	MountFlags     uint32 `json:"MountFlags,omitempty"`
}

type CloseHandle

type CloseHandle struct {
	Handle guestrequest.STDIOHandle `json:"Handle,omitempty"` // NOTE: Swagger generated as string. Locally updated.
}

type ComPort

type ComPort struct {
	NamedPipe string `json:"NamedPipe,omitempty"`

	OptimizeForDebugger bool `json:"OptimizeForDebugger,omitempty"`
}

ComPort specifies the named pipe that will be used for the port, with empty string indicating a disconnected port.

type ComputeSystem

type ComputeSystem struct {
	Owner string `json:"Owner,omitempty"`

	SchemaVersion *Version `json:"SchemaVersion,omitempty"`

	HostingSystemId string `json:"HostingSystemId,omitempty"`

	HostedSystem interface{} `json:"HostedSystem,omitempty"`

	Container *Container `json:"Container,omitempty"`

	VirtualMachine *VirtualMachine `json:"VirtualMachine,omitempty"`

	ShouldTerminateOnLastHandleClosed bool `json:"ShouldTerminateOnLastHandleClosed,omitempty"`
}

type Configuration

type Configuration struct {
	BasePath      string            `json:"basePath,omitempty"`
	Host          string            `json:"host,omitempty"`
	Scheme        string            `json:"scheme,omitempty"`
	DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
	UserAgent     string            `json:"userAgent,omitempty"`
	HTTPClient    *http.Client
}

func NewConfiguration

func NewConfiguration() *Configuration

func (*Configuration) AddDefaultHeader

func (c *Configuration) AddDefaultHeader(key string, value string)

type ConsoleSize

type ConsoleSize struct {
	Height uint16 `json:"Height,omitempty"`

	Width uint16 `json:"Width,omitempty"`
}

type Container

type Container struct {
	GuestOs *GuestOs `json:"GuestOs,omitempty"`

	Storage *Storage `json:"Storage,omitempty"`

	MappedDirectories []MappedDirectory `json:"MappedDirectories,omitempty"`

	MappedPipes []MappedPipe `json:"MappedPipes,omitempty"`

	Memory *Memory `json:"Memory,omitempty"`

	Processor *Processor `json:"Processor,omitempty"`

	Networking *Networking `json:"Networking,omitempty"`

	HvSocket *HvSocket `json:"HvSocket,omitempty"`

	ContainerCredentialGuard *ContainerCredentialGuardState `json:"ContainerCredentialGuard,omitempty"`

	RegistryChanges *RegistryChanges `json:"RegistryChanges,omitempty"`

	AssignedDevices []Device `json:"AssignedDevices,omitempty"`

	AdditionalDeviceNamespace *ContainerDefinitionDevice `json:"AdditionalDeviceNamespace,omitempty"`
}

type ContainerCredentialGuardAddInstanceRequest

type ContainerCredentialGuardAddInstanceRequest struct {
	Id             string `json:"Id,omitempty"`
	CredentialSpec string `json:"CredentialSpec,omitempty"`
	Transport      string `json:"Transport,omitempty"`
}

type ContainerCredentialGuardHvSocketServiceConfig

type ContainerCredentialGuardHvSocketServiceConfig struct {
	ServiceId     string                 `json:"ServiceId,omitempty"`
	ServiceConfig *HvSocketServiceConfig `json:"ServiceConfig,omitempty"`
}

type ContainerCredentialGuardInstance

type ContainerCredentialGuardInstance struct {
	Id              string                                         `json:"Id,omitempty"`
	CredentialGuard *ContainerCredentialGuardState                 `json:"CredentialGuard,omitempty"`
	HvSocketConfig  *ContainerCredentialGuardHvSocketServiceConfig `json:"HvSocketConfig,omitempty"`
}

type ContainerCredentialGuardModifyOperation

type ContainerCredentialGuardModifyOperation string
const (
	AddInstance    ContainerCredentialGuardModifyOperation = "AddInstance"
	RemoveInstance ContainerCredentialGuardModifyOperation = "RemoveInstance"
)

type ContainerCredentialGuardOperationRequest

type ContainerCredentialGuardOperationRequest struct {
	Operation        ContainerCredentialGuardModifyOperation `json:"Operation,omitempty"`
	OperationDetails interface{}                             `json:"OperationDetails,omitempty"`
}

type ContainerCredentialGuardRemoveInstanceRequest

type ContainerCredentialGuardRemoveInstanceRequest struct {
	Id string `json:"Id,omitempty"`
}

type ContainerCredentialGuardState

type ContainerCredentialGuardState struct {

	//  Authentication cookie for calls to a Container Credential Guard instance.
	Cookie string `json:"Cookie,omitempty"`

	//  Name of the RPC endpoint of the Container Credential Guard instance.
	RpcEndpoint string `json:"RpcEndpoint,omitempty"`

	//  Transport used for the configured Container Credential Guard instance.
	Transport string `json:"Transport,omitempty"`

	//  Credential spec used for the configured Container Credential Guard instance.
	CredentialSpec string `json:"CredentialSpec,omitempty"`
}

type ContainerCredentialGuardSystemInfo

type ContainerCredentialGuardSystemInfo struct {
	Instances []ContainerCredentialGuardInstance `json:"Instances,omitempty"`
}

type ContainerDefinitionDevice

type ContainerDefinitionDevice struct {
	DeviceExtension []DeviceExtension `json:"device_extension,omitempty"`
}

type ContainerMemoryInformation

type ContainerMemoryInformation struct {
	TotalPhysicalBytes int32 `json:"TotalPhysicalBytes,omitempty"`

	TotalUsage int32 `json:"TotalUsage,omitempty"`

	CommittedBytes int32 `json:"CommittedBytes,omitempty"`

	SharedCommittedBytes int32 `json:"SharedCommittedBytes,omitempty"`

	CommitLimitBytes int32 `json:"CommitLimitBytes,omitempty"`

	PeakCommitmentBytes int32 `json:"PeakCommitmentBytes,omitempty"`
}

memory usage as viewed from within the container

type CpuGroup

type CpuGroup struct {
	Id string `json:"Id,omitempty"`
}

CPU groups allow Hyper-V administrators to better manage and allocate the host's CPU resources across guest virtual machines

type CpuGroupAffinity

type CpuGroupAffinity struct {
	LogicalProcessorCount int32   `json:"LogicalProcessorCount,omitempty"`
	LogicalProcessors     []int32 `json:"LogicalProcessors,omitempty"`
}

type CpuGroupConfig

type CpuGroupConfig struct {
	GroupId         string             `json:"GroupId,omitempty"`
	Affinity        *CpuGroupAffinity  `json:"Affinity,omitempty"`
	GroupProperties []CpuGroupProperty `json:"GroupProperties,omitempty"`
	// Hypervisor CPU group IDs exposed to clients
	HypervisorGroupId uint64 `json:"HypervisorGroupId,omitempty"`
}

type CpuGroupConfigurations

type CpuGroupConfigurations struct {
	CpuGroups []CpuGroupConfig `json:"CpuGroups,omitempty"`
}

Structure used to return cpu groups for a Service property query

type CpuGroupProperty

type CpuGroupProperty struct {
	PropertyCode  uint32 `json:"PropertyCode,omitempty"`
	PropertyValue uint32 `json:"PropertyValue,omitempty"`
}

type CreateGroupOperation

type CreateGroupOperation struct {
	GroupId               string   `json:"GroupId,omitempty"`
	LogicalProcessorCount uint32   `json:"LogicalProcessorCount,omitempty"`
	LogicalProcessors     []uint32 `json:"LogicalProcessors,omitempty"`
}

Create group operation settings

type DebugOptions

type DebugOptions struct {
	// BugcheckSavedStateFileName is the path for the file in which the guest VM state will be saved when
	// the guest crashes.
	BugcheckSavedStateFileName string `json:"BugcheckSavedStateFileName,omitempty"`
	// BugcheckNoCrashdumpSavedStateFileName is the path of the file in which the guest VM state will be
	// saved when the guest crashes but the guest isn't able to generate the crash dump. This usually
	// happens in early boot failures.
	BugcheckNoCrashdumpSavedStateFileName string `json:"BugcheckNoCrashdumpSavedStateFileName,omitempty"`
	TripleFaultSavedStateFileName         string `json:"TripleFaultSavedStateFileName,omitempty"`
	FirmwareDumpFileName                  string `json:"FirmwareDumpFileName,omitempty"`
}

type DeleteGroupOperation

type DeleteGroupOperation struct {
	GroupId string `json:"GroupId,omitempty"`
}

Delete group operation settings

type Device

type Device struct {
	//  The type of device to assign to the container.
	Type DeviceType `json:"Type,omitempty"`
	//  The interface class guid of the device interfaces to assign to the  container.  Only used when Type is ClassGuid.
	InterfaceClassGuid string `json:"InterfaceClassGuid,omitempty"`
	//  The location path of the device to assign to the container.  Only used when Type is DeviceInstanceID.
	LocationPath string `json:"LocationPath,omitempty"`
}

type DeviceCategory

type DeviceCategory struct {
	Name           string           `json:"name,omitempty"`
	InterfaceClass []InterfaceClass `json:"interface_class,omitempty"`
}

type DeviceExtension

type DeviceExtension struct {
	DeviceCategory *DeviceCategory           `json:"device_category,omitempty"`
	Namespace      *DeviceExtensionNamespace `json:"namespace,omitempty"`
}

type DeviceExtensionNamespace

type DeviceExtensionNamespace struct {
	Ob     *ObjectNamespace `json:"ob,omitempty"`
	Device *DeviceNamespace `json:"device,omitempty"`
}

type DeviceInstance

type DeviceInstance struct {
	Id             string           `json:"id,omitempty"`
	LocationPath   string           `json:"location_path,omitempty"`
	PortName       string           `json:"port_name,omitempty"`
	InterfaceClass []InterfaceClass `json:"interface_class,omitempty"`
}

type DeviceNamespace

type DeviceNamespace struct {
	RequiresDriverstore bool             `json:"requires_driverstore,omitempty"`
	DeviceCategory      []DeviceCategory `json:"device_category,omitempty"`
	DeviceInstance      []DeviceInstance `json:"device_instance,omitempty"`
}

type DeviceType

type DeviceType string
const (
	ClassGUID        DeviceType = "ClassGuid"
	DeviceInstanceID DeviceType = "DeviceInstance"
	GPUMirror        DeviceType = "GpuMirror"
)

type Devices

type Devices struct {
	ComPorts map[string]ComPort `json:"ComPorts,omitempty"`

	Scsi map[string]Scsi `json:"Scsi,omitempty"`

	VirtualPMem *VirtualPMemController `json:"VirtualPMem,omitempty"`

	NetworkAdapters map[string]NetworkAdapter `json:"NetworkAdapters,omitempty"`

	VideoMonitor *VideoMonitor `json:"VideoMonitor,omitempty"`

	Keyboard *Keyboard `json:"Keyboard,omitempty"`

	Mouse *Mouse `json:"Mouse,omitempty"`

	HvSocket *HvSocket2 `json:"HvSocket,omitempty"`

	EnhancedModeVideo *EnhancedModeVideo `json:"EnhancedModeVideo,omitempty"`

	GuestCrashReporting *GuestCrashReporting `json:"GuestCrashReporting,omitempty"`

	VirtualSmb *VirtualSmb `json:"VirtualSmb,omitempty"`

	Plan9 *Plan9 `json:"Plan9,omitempty"`

	Battery *Battery `json:"Battery,omitempty"`

	FlexibleIov map[string]FlexibleIoDevice `json:"FlexibleIov,omitempty"`

	SharedMemory *SharedMemoryConfiguration `json:"SharedMemory,omitempty"`

	// TODO: This is pre-release support in schema 2.3. Need to add build number
	// docs when a public build with this is out.
	VirtualPci map[string]VirtualPciDevice `json:",omitempty"`
}

type EnhancedModeVideo

type EnhancedModeVideo struct {
	ConnectionOptions *RdpConnectionOptions `json:"ConnectionOptions,omitempty"`
}

type FileSystemFilterType

type FileSystemFilterType string
const (
	UnionFS FileSystemFilterType = "UnionFS"
	WCIFS   FileSystemFilterType = "WCIFS"
)

type FlexibleIoDevice

type FlexibleIoDevice struct {
	EmulatorId string `json:"EmulatorId,omitempty"`

	HostingModel string `json:"HostingModel,omitempty"`

	Configuration []string `json:"Configuration,omitempty"`
}

type GuestConnection

type GuestConnection struct {

	//  Use Vsock rather than Hyper-V sockets to communicate with the guest service.
	UseVsock bool `json:"UseVsock,omitempty"`

	//  Don't disconnect the guest connection when pausing the virtual machine.
	UseConnectedSuspend bool `json:"UseConnectedSuspend,omitempty"`
}

type GuestConnectionInfo

type GuestConnectionInfo struct {

	//  Each schema version x.y stands for the range of versions a.b where a==x  and b<=y. This list comes from the SupportedSchemaVersions field in  GcsCapabilities.
	SupportedSchemaVersions []Version `json:"SupportedSchemaVersions,omitempty"`

	ProtocolVersion int32 `json:"ProtocolVersion,omitempty"`

	GuestDefinedCapabilities *interface{} `json:"GuestDefinedCapabilities,omitempty"`
}

Information about the guest.

type GuestCrashReporting

type GuestCrashReporting struct {
	WindowsCrashSettings *WindowsCrashReporting `json:"WindowsCrashSettings,omitempty"`
}

type GuestOs

type GuestOs struct {
	HostName string `json:"HostName,omitempty"`
}

type GuestState

type GuestState struct {

	//  The path to an existing file uses for persistent guest state storage.  An empty string indicates the system should initialize new transient, in-memory guest state.
	GuestStateFilePath string `json:"GuestStateFilePath,omitempty"`

	//  The guest state file type affected by different guest isolation modes - whether a file or block storage.
	GuestStateFileType string `json:"GuestStateFileType,omitempty"`

	//  The path to an existing file for persistent runtime state storage.  An empty string indicates the system should initialize new transient, in-memory runtime state.
	RuntimeStateFilePath string `json:"RuntimeStateFilePath,omitempty"`

	//  If true, the guest state and runtime state files will be used as templates  to populate transient, in-memory state instead of using the files as persistent backing store.
	ForceTransientState bool `json:"ForceTransientState,omitempty"`
}

type HostProcessorModificationRequest

type HostProcessorModificationRequest struct {
	Operation        CPUGroupOperation `json:"Operation,omitempty"`
	OperationDetails interface{}       `json:"OperationDetails,omitempty"`
}

Structure used to request a service processor modification

type HostedSystem

type HostedSystem struct {
	SchemaVersion *Version `json:"SchemaVersion,omitempty"`

	Container *Container `json:"Container,omitempty"`
}

type HvSocket

type HvSocket struct {
	Config *HvSocketSystemConfig `json:"Config,omitempty"`

	EnablePowerShellDirect bool `json:"EnablePowerShellDirect,omitempty"`
}

type HvSocket2

type HvSocket2 struct {
	HvSocketConfig *HvSocketSystemConfig `json:"HvSocketConfig,omitempty"`
}

HvSocket configuration for a VM

type HvSocketAddress

type HvSocketAddress struct {
	LocalAddress  string `json:"LocalAddress,omitempty"`
	ParentAddress string `json:"ParentAddress,omitempty"`
}

This class defines address settings applied to a VM by the GCS every time a VM starts or restores.

type HvSocketServiceConfig

type HvSocketServiceConfig struct {

	//  SDDL string that HvSocket will check before allowing a host process to bind  to this specific service.  If not specified, defaults to the system DefaultBindSecurityDescriptor, defined in  HvSocketSystemWpConfig in V1.
	BindSecurityDescriptor string `json:"BindSecurityDescriptor,omitempty"`

	//  SDDL string that HvSocket will check before allowing a host process to connect  to this specific service.  If not specified, defaults to the system DefaultConnectSecurityDescriptor, defined in  HvSocketSystemWpConfig in V1.
	ConnectSecurityDescriptor string `json:"ConnectSecurityDescriptor,omitempty"`

	//  If true, HvSocket will process wildcard binds for this service/system combination.  Wildcard binds are secured in the registry at  SOFTWARE/Microsoft/Windows NT/CurrentVersion/Virtualization/HvSocket/WildcardDescriptors
	AllowWildcardBinds bool `json:"AllowWildcardBinds,omitempty"`

	// Disabled controls whether the HvSocket service is accepting connection requests.
	// This set to true will make the service refuse all incoming connections as well as cancel
	// any connections already established. The service itself will still be active however
	// and can be re-enabled at a future time.
	Disabled bool `json:"Disabled,omitempty"`
}

type HvSocketSystemConfig

type HvSocketSystemConfig struct {

	//  SDDL string that HvSocket will check before allowing a host process to bind  to an unlisted service for this specific container/VM (not wildcard binds).
	DefaultBindSecurityDescriptor string `json:"DefaultBindSecurityDescriptor,omitempty"`

	//  SDDL string that HvSocket will check before allowing a host process to connect  to an unlisted service in the VM/container.
	DefaultConnectSecurityDescriptor string `json:"DefaultConnectSecurityDescriptor,omitempty"`

	ServiceTable map[string]HvSocketServiceConfig `json:"ServiceTable,omitempty"`
}

This is the HCS Schema version of the HvSocket configuration. The VMWP version is located in Config.Devices.IC in V1.

type InterfaceClass

type InterfaceClass struct {
	Type_      string `json:"type,omitempty"`
	Identifier string `json:"identifier,omitempty"`
	Recurse    bool   `json:"recurse,omitempty"`
}

type InterruptModerationName

type InterruptModerationName string
const (
	DefaultName  InterruptModerationName = "Default"
	AdaptiveName InterruptModerationName = "Adaptive"
	OffName      InterruptModerationName = "Off"
	LowName      InterruptModerationName = "Low"
	MediumName   InterruptModerationName = "Medium"
	HighName     InterruptModerationName = "High"
)

The valid interrupt moderation modes for I/O virtualization (IOV) offloading.

type InterruptModerationValue

type InterruptModerationValue uint32
const (
	DefaultValue InterruptModerationValue = iota
	AdaptiveValue
	OffValue
	LowValue    InterruptModerationValue = 100
	MediumValue InterruptModerationValue = 200
	HighValue   InterruptModerationValue = 300
)

type IovSettings

type IovSettings struct {
	// The weight assigned to this port for I/O virtualization (IOV) offloading.
	// Setting this to 0 disables IOV offloading.
	OffloadWeight *uint32 `json:"OffloadWeight,omitempty"`

	// The number of queue pairs requested for this port for I/O virtualization (IOV) offloading.
	QueuePairsRequested *uint32 `json:"QueuePairsRequested,omitempty"`

	// The interrupt moderation mode for I/O virtualization (IOV) offloading.
	InterruptModeration *InterruptModerationName `json:"InterruptModeration,omitempty"`
}

type IsolationSettings

type IsolationSettings struct {
	// Guest isolation type options to decide virtual trust levels of virtual machine
	IsolationType string `json:"IsolationType,omitempty"`
	// Configuration to debug HCL layer for HCS VM TODO: Task 31102306: Miss the way to prevent the exposure of private debug configuration in HCS TODO: Think about the secret configurations which are private in VMMS VM (only edit by hvsedit)
	DebugHost string `json:"DebugHost,omitempty"`
	DebugPort int64  `json:"DebugPort,omitempty"`
	// Optional data passed by host on isolated virtual machine start
	LaunchData string `json:"LaunchData,omitempty"`
	HclEnabled *bool  `json:"HclEnabled,omitempty"`
}

type Keyboard

type Keyboard struct {
}

type Layer

type Layer struct {
	Id string `json:"Id,omitempty"`

	Path string `json:"Path,omitempty"`

	PathType string `json:"PathType,omitempty"`

	//  Unspecified defaults to Enabled
	Cache string `json:"Cache,omitempty"`
}

type LinuxKernelDirect

type LinuxKernelDirect struct {
	KernelFilePath string `json:"KernelFilePath,omitempty"`

	InitRdPath string `json:"InitRdPath,omitempty"`

	KernelCmdLine string `json:"KernelCmdLine,omitempty"`
}

type LogicalProcessor

type LogicalProcessor struct {
	LpIndex     uint32 `json:"LpIndex,omitempty"`
	NodeNumber  uint8  `json:"NodeNumber,omitempty"`
	PackageId   uint32 `json:"PackageId,omitempty"`
	CoreId      uint32 `json:"CoreId,omitempty"`
	RootVpIndex int32  `json:"RootVpIndex,omitempty"`
}

type MappedDirectory

type MappedDirectory struct {
	HostPath string `json:"HostPath,omitempty"`

	HostPathType string `json:"HostPathType,omitempty"`

	ContainerPath string `json:"ContainerPath,omitempty"`

	ReadOnly bool `json:"ReadOnly,omitempty"`
}

type MappedPipe

type MappedPipe struct {
	ContainerPipeName string `json:"ContainerPipeName,omitempty"`

	HostPath string `json:"HostPath,omitempty"`

	HostPathType string `json:"HostPathType,omitempty"`
}

type Memory

type Memory struct {
	SizeInMB uint64 `json:"SizeInMB,omitempty"`
}

type MemoryBackingType

type MemoryBackingType string
const (
	MemoryBackingType_PHYSICAL MemoryBackingType = "Physical"
	MemoryBackingType_VIRTUAL  MemoryBackingType = "Virtual"
	MemoryBackingType_HYBRID   MemoryBackingType = "Hybrid"
)

List of MemoryBackingType

type MemoryInformationForVm

type MemoryInformationForVm struct {
	VirtualNodeCount uint32 `json:"VirtualNodeCount,omitempty"`

	VirtualMachineMemory *VmMemory `json:"VirtualMachineMemory,omitempty"`

	VirtualNodes []VirtualNodeInfo `json:"VirtualNodes,omitempty"`
}

type MemoryStats

type MemoryStats struct {
	MemoryUsageCommitBytes uint64 `json:"MemoryUsageCommitBytes,omitempty"`

	MemoryUsageCommitPeakBytes uint64 `json:"MemoryUsageCommitPeakBytes,omitempty"`

	MemoryUsagePrivateWorkingSetBytes uint64 `json:"MemoryUsagePrivateWorkingSetBytes,omitempty"`
}

Memory runtime statistics

type ModificationRequest

type ModificationRequest struct {
	PropertyType PropertyType `json:"PropertyType,omitempty"`
	Settings     interface{}  `json:"Settings,omitempty"`
}

type ModifySettingRequest

type ModifySettingRequest struct {
	ResourcePath string `json:"ResourcePath,omitempty"`

	RequestType guestrequest.RequestType `json:"RequestType,omitempty"` // NOTE: Swagger generated as string. Locally updated.

	Settings interface{} `json:"Settings,omitempty"` // NOTE: Swagger generated as *interface{}. Locally updated

	GuestRequest interface{} `json:"GuestRequest,omitempty"` // NOTE: Swagger generated as *interface{}. Locally updated
}

type Mouse

type Mouse struct {
}

type NetworkAdapter

type NetworkAdapter struct {
	EndpointId string `json:"EndpointId,omitempty"`
	MacAddress string `json:"MacAddress,omitempty"`
	// The I/O virtualization (IOV) offloading configuration.
	IovSettings *IovSettings `json:"IovSettings,omitempty"`
}

type Networking

type Networking struct {
	AllowUnqualifiedDnsQuery bool `json:"AllowUnqualifiedDnsQuery,omitempty"`

	DnsSearchList string `json:"DnsSearchList,omitempty"`

	NetworkSharedContainerName string `json:"NetworkSharedContainerName,omitempty"`

	//  Guid in windows; string in linux
	Namespace string `json:"Namespace,omitempty"`

	NetworkAdapters []string `json:"NetworkAdapters,omitempty"`
}

type Numa

type Numa struct {
	VirtualNodeCount       uint8         `json:"VirtualNodeCount,omitempty"`
	PreferredPhysicalNodes []int64       `json:"PreferredPhysicalNodes,omitempty"`
	Settings               []NumaSetting `json:"Settings,omitempty"`
	MaxSizePerNode         uint64        `json:"MaxSizePerNode,omitempty"`
}

type NumaNode

type NumaNode struct {
	VirtualNodeIndex  uint32 `json:"VirtualNodeIndex,omitempty"`
	PhysicalNodeIndex uint32 `json:"PhysicalNodeIndex,omitempty"`
}

type NumaNodeMemory

type NumaNodeMemory struct {
	// Total physical memory on on this physical NUMA node that is consumable by the VMs.
	TotalConsumableMemoryInPages uint64 `json:"TotalConsumableMemoryInPages,omitempty"`
	// Currently available physical memory on this physical NUMA node for the VMs.
	AvailableMemoryInPages uint64 `json:"AvailableMemoryInPages,omitempty"`
}

type NumaNodeProcessor

type NumaNodeProcessor struct {
	TotalAssignedProcessors  uint32 `json:"TotalAssignedProcessors,omitempty"`
	TotalAvailableProcessors uint32 `json:"TotalAvailableProcessors,omitempty"`
}

type NumaProcessors

type NumaProcessors struct {
	CountPerNode  Range  `json:"count_per_node,omitempty"`
	NodePerSocket uint32 `json:"node_per_socket,omitempty"`
}

type NumaSetting

type NumaSetting struct {
	VirtualNodeNumber   uint32            `json:"VirtualNodeNumber,omitempty"`
	PhysicalNodeNumber  uint32            `json:"PhysicalNodeNumber,omitempty"`
	VirtualSocketNumber uint32            `json:"VirtualSocketNumber,omitempty"`
	CountOfProcessors   uint32            `json:"CountOfProcessors,omitempty"`
	CountOfMemoryBlocks uint64            `json:"CountOfMemoryBlocks,omitempty"`
	MemoryBackingType   MemoryBackingType `json:"MemoryBackingType,omitempty"`
}

type ObjectDirectory

type ObjectDirectory struct {
	Name    string            `json:"name,omitempty"`
	Clonesd string            `json:"clonesd,omitempty"`
	Shadow  string            `json:"shadow,omitempty"`
	Symlink []ObjectSymlink   `json:"symlink,omitempty"`
	Objdir  []ObjectDirectory `json:"objdir,omitempty"`
}

type ObjectNamespace

type ObjectNamespace struct {
	Shadow  string            `json:"shadow,omitempty"`
	Symlink []ObjectSymlink   `json:"symlink,omitempty"`
	Objdir  []ObjectDirectory `json:"objdir,omitempty"`
}
type ObjectSymlink struct {
	Name        string `json:"name,omitempty"`
	Path        string `json:"path,omitempty"`
	Scope       string `json:"scope,omitempty"`
	Pathtoclone string `json:"pathtoclone,omitempty"`
	AccessMask  int32  `json:"access_mask,omitempty"`
}

type PauseNotification

type PauseNotification struct {
	Reason string `json:"Reason,omitempty"`
}

Notification data that is indicated to components running in the Virtual Machine.

type PauseOptions

type PauseOptions struct {
	SuspensionLevel string `json:"SuspensionLevel,omitempty"`

	HostedNotification *PauseNotification `json:"HostedNotification,omitempty"`
}

Options for HcsPauseComputeSystem

type Plan9

type Plan9 struct {
	Shares []Plan9Share `json:"Shares,omitempty"`
}

type Plan9Share

type Plan9Share struct {
	Name string `json:"Name,omitempty"`

	//  The name by which the guest operation system can access this share, via  the aname parameter in the Plan9 protocol.
	AccessName string `json:"AccessName,omitempty"`

	Path string `json:"Path,omitempty"`

	Port int32 `json:"Port,omitempty"`

	// Flags are marked private. Until they are exported correctly
	//
	// ReadOnly      0x00000001
	// LinuxMetadata 0x00000004
	// CaseSensitive 0x00000008
	Flags int32 `json:"Flags,omitempty"`

	ReadOnly bool `json:"ReadOnly,omitempty"`

	UseShareRootIdentity bool `json:"UseShareRootIdentity,omitempty"`

	AllowedFiles []string `json:"AllowedFiles,omitempty"`
}

type ProcessDetails

type ProcessDetails struct {
	ProcessId int32 `json:"ProcessId,omitempty"`

	ImageName string `json:"ImageName,omitempty"`

	CreateTimestamp time.Time `json:"CreateTimestamp,omitempty"`

	UserTime100ns int32 `json:"UserTime100ns,omitempty"`

	KernelTime100ns int32 `json:"KernelTime100ns,omitempty"`

	MemoryCommitBytes int32 `json:"MemoryCommitBytes,omitempty"`

	MemoryWorkingSetPrivateBytes int32 `json:"MemoryWorkingSetPrivateBytes,omitempty"`

	MemoryWorkingSetSharedBytes int32 `json:"MemoryWorkingSetSharedBytes,omitempty"`
}

Information about a process running in a container

type ProcessModifyRequest

type ProcessModifyRequest struct {
	Operation guestrequest.ProcessModifyOperation `json:"Operation,omitempty"` // NOTE: Swagger generated as string. Locally updated.

	ConsoleSize *ConsoleSize `json:"ConsoleSize,omitempty"`

	CloseHandle *CloseHandle `json:"CloseHandle,omitempty"`
}

Passed to HcsRpc_ModifyProcess

type ProcessParameters

type ProcessParameters struct {
	ApplicationName string `json:"ApplicationName,omitempty"`

	CommandLine string `json:"CommandLine,omitempty"`

	//  optional alternative to CommandLine, currently only supported by Linux GCS
	CommandArgs []string `json:"CommandArgs,omitempty"`

	User string `json:"User,omitempty"`

	WorkingDirectory string `json:"WorkingDirectory,omitempty"`

	Environment map[string]string `json:"Environment,omitempty"`

	//  if set, will run as low-privilege process
	RestrictedToken bool `json:"RestrictedToken,omitempty"`

	//  if set, ignore StdErrPipe
	EmulateConsole bool `json:"EmulateConsole,omitempty"`

	CreateStdInPipe bool `json:"CreateStdInPipe,omitempty"`

	CreateStdOutPipe bool `json:"CreateStdOutPipe,omitempty"`

	CreateStdErrPipe bool `json:"CreateStdErrPipe,omitempty"`

	//  height then width
	ConsoleSize []int32 `json:"ConsoleSize,omitempty"`

	//  if set, find an existing session for the user and create the process in it
	UseExistingLogin bool `json:"UseExistingLogin,omitempty"`

	//  if set, use the legacy console instead of conhost
	UseLegacyConsole bool `json:"UseLegacyConsole,omitempty"`
}

type ProcessStatus

type ProcessStatus struct {
	ProcessId uint32 `json:"ProcessId,omitempty"` // NOTE: Swagger generated as int32. Locally updated to match documentation.

	Exited bool `json:"Exited,omitempty"`

	ExitCode uint32 `json:"ExitCode,omitempty"` // NOTE: Swagger generated as int32. Locally updated to match documentation.

	LastWaitResult int32 `json:"LastWaitResult,omitempty"`
}

Status of a process running in a container

type Processor

type Processor struct {
	Count int32 `json:"Count,omitempty"`

	Maximum int32 `json:"Maximum,omitempty"`

	Weight int32 `json:"Weight,omitempty"`
}

type ProcessorLimits

type ProcessorLimits struct {
	// Maximum amount of host CPU resources that the virtual machine can use.
	Limit uint64 `json:"Limit,omitempty"`
	// Value describing the relative priority of this virtual machine compared to other virtual machines.
	Weight uint64 `json:"Weight,omitempty"`
	// Minimum amount of host CPU resources that the virtual machine is guaranteed.
	Reservation uint64 `json:"Reservation,omitempty"`
	// Provides the target maximum CPU frequency, in MHz, for a virtual machine.
	MaximumFrequencyMHz uint32 `json:"MaximumFrequencyMHz,omitempty"`
}

ProcessorLimits is used when modifying processor scheduling limits of a virtual machine.

type ProcessorStats

type ProcessorStats struct {
	TotalRuntime100ns uint64 `json:"TotalRuntime100ns,omitempty"`

	RuntimeUser100ns uint64 `json:"RuntimeUser100ns,omitempty"`

	RuntimeKernel100ns uint64 `json:"RuntimeKernel100ns,omitempty"`
}

CPU runtime statistics

type ProcessorTopology

type ProcessorTopology struct {
	LogicalProcessorCount uint32             `json:"LogicalProcessorCount,omitempty"`
	LogicalProcessors     []LogicalProcessor `json:"LogicalProcessors,omitempty"`
}

type Properties

type Properties struct {
	Id string `json:"Id,omitempty"`

	SystemType string `json:"SystemType,omitempty"`

	RuntimeOsType string `json:"RuntimeOsType,omitempty"`

	Name string `json:"Name,omitempty"`

	Owner string `json:"Owner,omitempty"`

	RuntimeId string `json:"RuntimeId,omitempty"`

	RuntimeTemplateId string `json:"RuntimeTemplateId,omitempty"`

	State string `json:"State,omitempty"`

	Stopped bool `json:"Stopped,omitempty"`

	ExitType string `json:"ExitType,omitempty"`

	Memory *MemoryInformationForVm `json:"Memory,omitempty"`

	Statistics *Statistics `json:"Statistics,omitempty"`

	ProcessList []ProcessDetails `json:"ProcessList,omitempty"`

	TerminateOnLastHandleClosed bool `json:"TerminateOnLastHandleClosed,omitempty"`

	HostingSystemId string `json:"HostingSystemId,omitempty"`

	SharedMemoryRegionInfo []SharedMemoryRegionInfo `json:"SharedMemoryRegionInfo,omitempty"`

	GuestConnectionInfo *GuestConnectionInfo `json:"GuestConnectionInfo,omitempty"`

	// Metrics is not part of the API for HCS but this is used for LCOW v2 to
	// return the full cgroup metrics from the guest.
	Metrics *v1.Metrics `json:"LCOWMetrics,omitempty"`
}

type PropertyQuery

type PropertyQuery struct {
	PropertyTypes []PropertyType `json:"PropertyTypes,omitempty"`
}

By default the basic properties will be returned. This query provides a way to request specific properties.

type PropertyType

type PropertyType string
const (
	PTMemory                      PropertyType = "Memory"
	PTGuestMemory                 PropertyType = "GuestMemory"
	PTStatistics                  PropertyType = "Statistics"
	PTProcessList                 PropertyType = "ProcessList"
	PTTerminateOnLastHandleClosed PropertyType = "TerminateOnLastHandleClosed"
	PTSharedMemoryRegion          PropertyType = "SharedMemoryRegion"
	PTContainerCredentialGuard    PropertyType = "ContainerCredentialGuard" // This field is not generated by swagger. This was added manually.
	PTGuestConnection             PropertyType = "GuestConnection"
	PTICHeartbeatStatus           PropertyType = "ICHeartbeatStatus"
	PTProcessorTopology           PropertyType = "ProcessorTopology"
	PTCPUGroup                    PropertyType = "CpuGroup"
)

type Range

type Range struct {
	Max uint32 `json:"max,omitempty"`
}

type RdpConnectionOptions

type RdpConnectionOptions struct {
	AccessSids []string `json:"AccessSids,omitempty"`

	NamedPipe string `json:"NamedPipe,omitempty"`
}

type RegistryChanges

type RegistryChanges struct {
	AddValues []RegistryValue `json:"AddValues,omitempty"`

	DeleteKeys []RegistryKey `json:"DeleteKeys,omitempty"`
}

type RegistryHive

type RegistryHive string
const (
	RegistryHive_SYSTEM   RegistryHive = "System"
	RegistryHive_SOFTWARE RegistryHive = "Software"
	RegistryHive_SECURITY RegistryHive = "Security"
	RegistryHive_SAM      RegistryHive = "Sam"
)

List of RegistryHive

type RegistryKey

type RegistryKey struct {
	Hive RegistryHive `json:"Hive,omitempty"`

	Name string `json:"Name,omitempty"`

	Volatile bool `json:"Volatile,omitempty"`
}

type RegistryValue

type RegistryValue struct {
	Key *RegistryKey `json:"Key,omitempty"`

	Name string `json:"Name,omitempty"`

	Type_ RegistryValueType `json:"Type,omitempty"`

	//  One and only one value type must be set.
	StringValue string `json:"StringValue,omitempty"`

	BinaryValue string `json:"BinaryValue,omitempty"`

	DWordValue int32 `json:"DWordValue,omitempty"`

	QWordValue int32 `json:"QWordValue,omitempty"`

	//  Only used if RegistryValueType is CustomType  The data is in BinaryValue
	CustomType int32 `json:"CustomType,omitempty"`
}

type RegistryValueType

type RegistryValueType string
const (
	RegistryValueType_NONE            RegistryValueType = "None"
	RegistryValueType_STRING          RegistryValueType = "String"
	RegistryValueType_EXPANDED_STRING RegistryValueType = "ExpandedString"
	RegistryValueType_MULTI_STRING    RegistryValueType = "MultiString"
	RegistryValueType_BINARY          RegistryValueType = "Binary"
	RegistryValueType_D_WORD          RegistryValueType = "DWord"
	RegistryValueType_Q_WORD          RegistryValueType = "QWord"
	RegistryValueType_CUSTOM_TYPE     RegistryValueType = "CustomType"
)

List of RegistryValueType

type RestoreState

type RestoreState struct {

	//  The path to the save state file to restore the system from.
	SaveStateFilePath string `json:"SaveStateFilePath,omitempty"`

	//  The ID of the template system to clone this new system off of. An empty  string indicates the system should not be cloned from a template.
	TemplateSystemId string `json:"TemplateSystemId,omitempty"`
}

type SaveOptions

type SaveOptions struct {

	//  The type of save operation to be performed.
	SaveType string `json:"SaveType,omitempty"`

	//  The path to the file that will container the saved state.
	SaveStateFilePath string `json:"SaveStateFilePath,omitempty"`
}

type Scsi

type Scsi struct {

	//  Map of attachments, where the key is the integer LUN number on the controller.
	Attachments map[string]Attachment `json:"Attachments,omitempty"`
}

type SecuritySettings

type SecuritySettings struct {
	// Enablement of Trusted Platform Module on the computer system
	EnableTpm bool               `json:"EnableTpm,omitempty"`
	Isolation *IsolationSettings `json:"Isolation,omitempty"`
}

type ServiceProperties

type ServiceProperties struct {
	// Changed Properties field to []json.RawMessage from []interface{} to avoid having to
	// remarshal sp.Properties[n] and unmarshal into the type(s) we want.
	Properties []json.RawMessage `json:"Properties,omitempty"`
}

type SharedMemoryConfiguration

type SharedMemoryConfiguration struct {
	Regions []SharedMemoryRegion `json:"Regions,omitempty"`
}

type SharedMemoryRegion

type SharedMemoryRegion struct {
	SectionName string `json:"SectionName,omitempty"`

	StartOffset int32 `json:"StartOffset,omitempty"`

	Length int32 `json:"Length,omitempty"`

	AllowGuestWrite bool `json:"AllowGuestWrite,omitempty"`

	HiddenFromGuest bool `json:"HiddenFromGuest,omitempty"`
}

type SharedMemoryRegionInfo

type SharedMemoryRegionInfo struct {
	SectionName string `json:"SectionName,omitempty"`

	GuestPhysicalAddress int32 `json:"GuestPhysicalAddress,omitempty"`
}

type SiloProperties

type SiloProperties struct {
	Enabled bool `json:"Enabled,omitempty"`

	JobName string `json:"JobName,omitempty"`
}

Silo job information

type Statistics

type Statistics struct {
	Timestamp time.Time `json:"Timestamp,omitempty"`

	ContainerStartTime time.Time `json:"ContainerStartTime,omitempty"`

	Uptime100ns uint64 `json:"Uptime100ns,omitempty"`

	Processor *ProcessorStats `json:"Processor,omitempty"`

	Memory *MemoryStats `json:"Memory,omitempty"`

	Storage *StorageStats `json:"Storage,omitempty"`
}

Runtime statistics for a container

type Storage

type Storage struct {

	//  List of layers that describe the parent hierarchy for a container's  storage. These layers combined together, presented as a disposable  and/or committable working storage, are used by the container to  record all changes done to the parent layers.
	Layers []Layer `json:"Layers,omitempty"`

	//  Path that points to the scratch space of a container, where parent  layers are combined together to present a new disposable and/or committable  layer with the changes done during its runtime.
	Path string `json:"Path,omitempty"`

	QoS *StorageQoS `json:"QoS,omitempty"`
}

type StorageQoS

type StorageQoS struct {
	IopsMaximum int32 `json:"IopsMaximum,omitempty"`

	BandwidthMaximum int32 `json:"BandwidthMaximum,omitempty"`
}

type StorageStats

type StorageStats struct {
	ReadCountNormalized uint64 `json:"ReadCountNormalized,omitempty"`

	ReadSizeBytes uint64 `json:"ReadSizeBytes,omitempty"`

	WriteCountNormalized uint64 `json:"WriteCountNormalized,omitempty"`

	WriteSizeBytes uint64 `json:"WriteSizeBytes,omitempty"`
}

Storage runtime statistics

type SystemTime

type SystemTime struct {
	Year int32 `json:"Year,omitempty"`

	Month int32 `json:"Month,omitempty"`

	DayOfWeek int32 `json:"DayOfWeek,omitempty"`

	Day int32 `json:"Day,omitempty"`

	Hour int32 `json:"Hour,omitempty"`

	Minute int32 `json:"Minute,omitempty"`

	Second int32 `json:"Second,omitempty"`

	Milliseconds int32 `json:"Milliseconds,omitempty"`
}

type TimeZoneInformation

type TimeZoneInformation struct {
	Bias int32 `json:"Bias,omitempty"`

	StandardName string `json:"StandardName,omitempty"`

	StandardDate *SystemTime `json:"StandardDate,omitempty"`

	StandardBias int32 `json:"StandardBias,omitempty"`

	DaylightName string `json:"DaylightName,omitempty"`

	DaylightDate *SystemTime `json:"DaylightDate,omitempty"`

	DaylightBias int32 `json:"DaylightBias,omitempty"`
}

type Topology

type Topology struct {
	Memory    *VirtualMachineMemory    `json:"Memory,omitempty"`
	Processor *VirtualMachineProcessor `json:"Processor,omitempty"`
	Numa      *Numa                    `json:"Numa,omitempty"`
}

type Uefi

type Uefi struct {
	EnableDebugger bool `json:"EnableDebugger,omitempty"`

	ApplySecureBootTemplate string `json:"ApplySecureBootTemplate,omitempty"`

	SecureBootTemplateId string `json:"SecureBootTemplateId,omitempty"`

	BootThis *UefiBootEntry `json:"BootThis,omitempty"`

	Console string `json:"Console,omitempty"`
}

type UefiBootEntry

type UefiBootEntry struct {
	DeviceType string `json:"DeviceType,omitempty"`

	DevicePath string `json:"DevicePath,omitempty"`

	DiskNumber int32 `json:"DiskNumber,omitempty"`

	OptionalData string `json:"OptionalData,omitempty"`

	VmbFsRootPath string `json:"VmbFsRootPath,omitempty"`
}

type Version

type Version struct {
	Major int32 `json:"Major,omitempty"`

	Minor int32 `json:"Minor,omitempty"`
}

type VideoMonitor

type VideoMonitor struct {
	HorizontalResolution int32 `json:"HorizontalResolution,omitempty"`

	VerticalResolution int32 `json:"VerticalResolution,omitempty"`

	ConnectionOptions *RdpConnectionOptions `json:"ConnectionOptions,omitempty"`
}

type VirtualMachine

type VirtualMachine struct {
	Version *Version `json:"Version,omitempty"`
	// When set to true, the virtual machine will treat a reset as a stop, releasing resources and cleaning up state.
	StopOnReset      bool              `json:"StopOnReset,omitempty"`
	Chipset          *Chipset          `json:"Chipset,omitempty"`
	ComputeTopology  *Topology         `json:"ComputeTopology,omitempty"`
	Devices          *Devices          `json:"Devices,omitempty"`
	GuestState       *GuestState       `json:"GuestState,omitempty"`
	RestoreState     *RestoreState     `json:"RestoreState,omitempty"`
	RegistryChanges  *RegistryChanges  `json:"RegistryChanges,omitempty"`
	StorageQoS       *StorageQoS       `json:"StorageQoS,omitempty"`
	DebugOptions     *DebugOptions     `json:"DebugOptions,omitempty"`
	GuestConnection  *GuestConnection  `json:"GuestConnection,omitempty"`
	SecuritySettings *SecuritySettings `json:"SecuritySettings,omitempty"`
}

Configuration of a virtual machine, used during its creation to set up and/or use resources.

type VirtualMachineMemory

type VirtualMachineMemory struct {
	SizeInMB uint64             `json:"SizeInMB,omitempty"`
	Backing  *MemoryBackingType `json:"Backing,omitempty"`
	// If enabled, then the VM's memory is backed by the Windows pagefile rather than physically backed, statically allocated memory.
	AllowOvercommit bool `json:"AllowOvercommit,omitempty"`
	// If enabled, then the memory hot hint feature is exposed to the VM, allowing it to prefetch pages into its working set. (if supported by the guest operating system).
	EnableHotHint bool `json:"EnableHotHint,omitempty"`
	// If enabled, then the memory cold hint feature is exposed to the VM, allowing it to trim zeroed pages from its working set (if supported by the guest operating system).
	EnableColdHint bool `json:"EnableColdHint,omitempty"`
	// If enabled, then the memory cold discard hint feature is exposed to the VM, allowing it to trim non-zeroed pages from the working set (if supported by the guest operating system).
	EnableColdDiscardHint bool `json:"EnableColdDiscardHint,omitempty"`
	// If enabled, then commit is not charged for each backing page until first access.
	EnableDeferredCommit bool `json:"EnableDeferredCommit,omitempty"`
	// Low MMIO region allocated below 4GB
	LowMMIOGapInMB uint64 `json:"LowMmioGapInMB,omitempty"`
	// High MMIO region allocated above 4GB (base and size)
	HighMMIOBaseInMB uint64           `json:"HighMmioBaseInMB,omitempty"`
	HighMMIOGapInMB  uint64           `json:"HighMmioGapInMB,omitempty"`
	SlitType         *VirtualSlitType `json:"SlitType,omitempty"`
}

type VirtualMachineProcessor

type VirtualMachineProcessor struct {
	Count                  uint32          `json:"Count,omitempty"`
	Limit                  uint64          `json:"Limit,omitempty"`
	Weight                 uint64          `json:"Weight,omitempty"`
	Reservation            uint64          `json:"Reservation,omitempty"`
	CpuGroup               *CpuGroup       `json:"CpuGroup,omitempty"`
	NumaProcessorsSettings *NumaProcessors `json:"NumaProcessorsSettings,omitempty"`
}

type VirtualNodeInfo

type VirtualNodeInfo struct {
	VirtualNodeIndex int32 `json:"VirtualNodeIndex,omitempty"`

	PhysicalNodeNumber int32 `json:"PhysicalNodeNumber,omitempty"`

	VirtualProcessorCount int32 `json:"VirtualProcessorCount,omitempty"`

	MemoryUsageInPages int32 `json:"MemoryUsageInPages,omitempty"`
}

type VirtualPMemController

type VirtualPMemController struct {
	Devices map[string]VirtualPMemDevice `json:"Devices,omitempty"`

	MaximumCount uint32 `json:"MaximumCount,omitempty"`

	MaximumSizeBytes uint64 `json:"MaximumSizeBytes,omitempty"`

	Backing string `json:"Backing,omitempty"`
}

type VirtualPMemDevice

type VirtualPMemDevice struct {
	HostPath string `json:"HostPath,omitempty"`

	ReadOnly bool `json:"ReadOnly,omitempty"`

	ImageFormat string `json:"ImageFormat,omitempty"`
}

type VirtualPMemMapping

type VirtualPMemMapping struct {
	HostPath    string `json:"HostPath,omitempty"`
	ImageFormat string `json:"ImageFormat,omitempty"`
}

type VirtualPciDevice

type VirtualPciDevice struct {
	Functions             []VirtualPciFunction `json:",omitempty"`
	PropagateNumaAffinity *bool                `json:"PropagateNumaAffinity,omitempty"`
}

TODO: PropagateNumaAffinity is pre-release/experimental field in schema 2.11. Need to add build number docs when a public build with this is out.

type VirtualPciFunction

type VirtualPciFunction struct {
	DeviceInstancePath string `json:",omitempty"`

	VirtualFunction uint16 `json:",omitempty"`
}

TODO: This is pre-release support in schema 2.3. Need to add build number docs when a public build with this is out.

type VirtualSlitType

type VirtualSlitType string

VirtualSlitType : Indicates if a virtual SLIT should ne enabled for a VM and the type of virtual SLIT to be enabled.

const (
	VirtualSlitType_NONE                       VirtualSlitType = "None"
	VirtualSlitType_FIRMWARE                   VirtualSlitType = "Firmware"
	VirtualSlitType_MEASURED                   VirtualSlitType = "Measured"
	VirtualSlitType_FIRMWARE_FALLBACK_MEASURED VirtualSlitType = "FirmwareFallbackMeasured"
)

List of VirtualSlitType

type VirtualSmb

type VirtualSmb struct {
	Shares []VirtualSmbShare `json:"Shares,omitempty"`

	DirectFileMappingInMB int64 `json:"DirectFileMappingInMB,omitempty"`
}

type VirtualSmbShare

type VirtualSmbShare struct {
	Name string `json:"Name,omitempty"`

	Path string `json:"Path,omitempty"`

	AllowedFiles []string `json:"AllowedFiles,omitempty"`

	Options *VirtualSmbShareOptions `json:"Options,omitempty"`
}

type VirtualSmbShareOptions

type VirtualSmbShareOptions struct {
	ReadOnly bool `json:"ReadOnly,omitempty"`

	//  convert exclusive access to shared read access
	ShareRead bool `json:"ShareRead,omitempty"`

	//  all opens will use cached I/O
	CacheIo bool `json:"CacheIo,omitempty"`

	//  disable oplock support
	NoOplocks bool `json:"NoOplocks,omitempty"`

	//  Acquire the backup privilege when attempting to open
	TakeBackupPrivilege bool `json:"TakeBackupPrivilege,omitempty"`

	//  Use the identity of the share root when opening
	UseShareRootIdentity bool `json:"UseShareRootIdentity,omitempty"`

	//  disable Direct Mapping
	NoDirectmap bool `json:"NoDirectmap,omitempty"`

	//  disable Byterange locks
	NoLocks bool `json:"NoLocks,omitempty"`

	//  disable Directory CHange Notifications
	NoDirnotify bool `json:"NoDirnotify,omitempty"`

	//  share is use for VM shared memory
	VmSharedMemory bool `json:"VmSharedMemory,omitempty"`

	//  allow access only to the files specified in AllowedFiles
	RestrictFileAccess bool `json:"RestrictFileAccess,omitempty"`

	//  disable all oplocks except Level II
	ForceLevelIIOplocks bool `json:"ForceLevelIIOplocks,omitempty"`

	//  Allow the host to reparse this base layer
	ReparseBaseLayer bool `json:"ReparseBaseLayer,omitempty"`

	//  Enable pseudo-oplocks
	PseudoOplocks bool `json:"PseudoOplocks,omitempty"`

	//  All opens will use non-cached IO
	NonCacheIo bool `json:"NonCacheIo,omitempty"`

	//  Enable pseudo directory change notifications
	PseudoDirnotify bool `json:"PseudoDirnotify,omitempty"`

	//  Block directory enumeration, renames, and deletes.
	SingleFileMapping bool `json:"SingleFileMapping,omitempty"`
}

type VmMemory

type VmMemory struct {
	AvailableMemory int32 `json:"AvailableMemory,omitempty"`

	AvailableMemoryBuffer int32 `json:"AvailableMemoryBuffer,omitempty"`

	ReservedMemory uint64 `json:"ReservedMemory,omitempty"`

	AssignedMemory uint64 `json:"AssignedMemory,omitempty"`

	SlpActive bool `json:"SlpActive,omitempty"`

	BalancingEnabled bool `json:"BalancingEnabled,omitempty"`

	DmOperationInProgress bool `json:"DmOperationInProgress,omitempty"`
}

type WindowsCrashReporting

type WindowsCrashReporting struct {
	DumpFileName string `json:"DumpFileName,omitempty"`

	MaxDumpSize int64 `json:"MaxDumpSize,omitempty"`
}

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL