// ContainerConfig is used as both the input of CreateContainer
// and to convert the parameters to JSON for passing onto the HCS
typeContainerConfigstruct{
SystemTypestring// HCS requires this to be hard-coded to "Container"
Namestring// Name of the container. We use the docker ID.
Ownerstring`json:",omitempty"`// The management platform that created this container
VolumePathstring`json:",omitempty"`// Windows volume path for scratch space. Used by Windows Server Containers only. Format \\?\\Volume{GUID}
IgnoreFlushesDuringBootbool`json:",omitempty"`// Optimization hint for container startup in Windows
LayerFolderPathstring`json:",omitempty"`// Where the layer folders are located. Used by Windows Server Containers only. Format %root%\windowsfilter\containerID
Layers[]Layer// List of storage layers. Required for Windows Server and Hyper-V Containers. Format ID=GUID;Path=%root%\windowsfilter\layerID
Credentialsstring`json:",omitempty"`// Credentials information
ProcessorCountuint32`json:",omitempty"`// Number of processors to assign to the container.
ProcessorWeightuint64`json:",omitempty"`// CPU shares (relative weight to other containers with cpu shares). Range is from 1 to 10000. A value of 0 results in default shares.
ProcessorMaximumint64`json:",omitempty"`// Specifies the portion of processor cycles that this container can use as a percentage times 100. Range is from 1 to 10000. A value of 0 results in no limit.
StorageIOPSMaximumuint64`json:",omitempty"`// Maximum Storage IOPS
StorageBandwidthMaximumuint64`json:",omitempty"`// Maximum Storage Bandwidth in bytes per second
StorageSandboxSizeuint64`json:",omitempty"`// Size in bytes that the container system drive should be expanded to if smaller
MemoryMaximumInMBint64`json:",omitempty"`// Maximum memory available to the container in Megabytes
HostNamestring`json:",omitempty"`// Hostname
MappedDirectories[]MappedDir`json:",omitempty"`// List of mapped directories (volumes/mounts)
MappedPipes[]MappedPipe`json:",omitempty"`// List of mapped Windows named pipes
HvPartitionbool// True if it a Hyper-V Container
NetworkSharedContainerNamestring`json:",omitempty"`// Name (ID) of the container that we will share the network stack with.
EndpointList[]string`json:",omitempty"`// List of networking endpoints to be attached to container
HvRuntime*HvRuntime`json:",omitempty"`// Hyper-V container settings. Used by Hyper-V containers only. Format ImagePath=%root%\BaseLayerID\UtilityVM
Servicingbool`json:",omitempty"`// True if this container is for servicing
AllowUnqualifiedDNSQuerybool`json:",omitempty"`// True to allow unqualified DNS name resolution
DNSSearchListstring`json:",omitempty"`// Comma seperated list of DNS suffixes to use for name resolution
ContainerTypestring`json:",omitempty"`// "Linux" for Linux containers on Windows. Omitted otherwise.
TerminateOnLastHandleClosedbool`json:",omitempty"`// Should HCS terminate the container once all handles have been closed
MappedVirtualDisks[]MappedVirtualDisk`json:",omitempty"`// Array of virtual disks to mount at start
AssignedDevices[]AssignedDevice`json:",omitempty"`// Array of devices to assign. NOTE: Support added in RS5