diff --git a/src/Docker.DotNet/Models/Actor.Generated.cs b/src/Docker.DotNet/Models/Actor.Generated.cs index 6704d520..d108c49b 100644 --- a/src/Docker.DotNet/Models/Actor.Generated.cs +++ b/src/Docker.DotNet/Models/Actor.Generated.cs @@ -1,6 +1,13 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Actor describes something that generates events, + /// like a container, or a network, or a volume. + /// It has a defined name and a set of attributes. + /// The container attributes are its labels, other actors + /// can generate these attributes from other properties. + /// public class Actor // (events.Actor) { [JsonPropertyName("ID")] diff --git a/src/Docker.DotNet/Models/Annotations.Generated.cs b/src/Docker.DotNet/Models/Annotations.Generated.cs index 3ef51fc6..272c1bce 100644 --- a/src/Docker.DotNet/Models/Annotations.Generated.cs +++ b/src/Docker.DotNet/Models/Annotations.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Annotations represents how to describe an object. + /// public class Annotations // (swarm.Annotations) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/AppArmorOpts.Generated.cs b/src/Docker.DotNet/Models/AppArmorOpts.Generated.cs index 2a075c3b..c81cbd2a 100644 --- a/src/Docker.DotNet/Models/AppArmorOpts.Generated.cs +++ b/src/Docker.DotNet/Models/AppArmorOpts.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// AppArmorOpts defines the options for configuring AppArmor on a swarm-managed + /// container. Currently, custom AppArmor profiles are not supported. + /// public class AppArmorOpts // (swarm.AppArmorOpts) { [JsonPropertyName("Mode")] diff --git a/src/Docker.DotNet/Models/AttestationProperties.Generated.cs b/src/Docker.DotNet/Models/AttestationProperties.Generated.cs index bfe316d7..1d7f84a2 100644 --- a/src/Docker.DotNet/Models/AttestationProperties.Generated.cs +++ b/src/Docker.DotNet/Models/AttestationProperties.Generated.cs @@ -3,6 +3,9 @@ namespace Docker.DotNet.Models { public class AttestationProperties // (image.AttestationProperties) { + /// + /// For is the digest of the image manifest that this attestation is for. + /// [JsonPropertyName("For")] public string For { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/AuthConfig.Generated.cs b/src/Docker.DotNet/Models/AuthConfig.Generated.cs index 0d2059ec..1e7edf89 100644 --- a/src/Docker.DotNet/Models/AuthConfig.Generated.cs +++ b/src/Docker.DotNet/Models/AuthConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// AuthConfig contains authorization information for connecting to a Registry. + /// public class AuthConfig // (registry.AuthConfig) { [JsonPropertyName("username")] @@ -15,9 +18,16 @@ public class AuthConfig // (registry.AuthConfig) [JsonPropertyName("serveraddress")] public string? ServerAddress { get; set; } + /// + /// IdentityToken is used to authenticate the user and get + /// an access token for the registry. + /// [JsonPropertyName("identitytoken")] public string? IdentityToken { get; set; } + /// + /// RegistryToken is a bearer token to be sent to a registry + /// [JsonPropertyName("registrytoken")] public string? RegistryToken { get; set; } } diff --git a/src/Docker.DotNet/Models/AuthResponse.Generated.cs b/src/Docker.DotNet/Models/AuthResponse.Generated.cs index d8bdc9da..5ca07162 100644 --- a/src/Docker.DotNet/Models/AuthResponse.Generated.cs +++ b/src/Docker.DotNet/Models/AuthResponse.Generated.cs @@ -1,11 +1,25 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// AuthResponse An identity token was generated successfully. + /// + /// swagger:model AuthResponse + /// public class AuthResponse // (registry.AuthResponse) { + /// + /// An opaque token used to authenticate a user after a successful login + /// Example: 9cbaf023786cd7... + /// [JsonPropertyName("IdentityToken")] public string? IdentityToken { get; set; } + /// + /// The status of the authentication + /// Example: Login Succeeded + /// Required: true + /// [JsonPropertyName("Status")] public string Status { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/BindOptions.Generated.cs b/src/Docker.DotNet/Models/BindOptions.Generated.cs index 6f193fb8..b9afbbeb 100644 --- a/src/Docker.DotNet/Models/BindOptions.Generated.cs +++ b/src/Docker.DotNet/Models/BindOptions.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// BindOptions defines options specific to mounts of type "bind". + /// public class BindOptions // (mount.BindOptions) { [JsonPropertyName("Propagation")] @@ -12,9 +15,16 @@ public class BindOptions // (mount.BindOptions) [JsonPropertyName("CreateMountpoint")] public bool? CreateMountpoint { get; set; } + /// + /// ReadOnlyNonRecursive makes the mount non-recursively read-only, but still leaves the mount recursive + /// (unless NonRecursive is set to true in conjunction). + /// [JsonPropertyName("ReadOnlyNonRecursive")] public bool? ReadOnlyNonRecursive { get; set; } + /// + /// ReadOnlyForceRecursive raises an error if the mount cannot be made recursively read-only. + /// [JsonPropertyName("ReadOnlyForceRecursive")] public bool? ReadOnlyForceRecursive { get; set; } } diff --git a/src/Docker.DotNet/Models/BlkioStatEntry.Generated.cs b/src/Docker.DotNet/Models/BlkioStatEntry.Generated.cs index 88c95f66..698ea2a0 100644 --- a/src/Docker.DotNet/Models/BlkioStatEntry.Generated.cs +++ b/src/Docker.DotNet/Models/BlkioStatEntry.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// BlkioStatEntry is one small entity to store a piece of Blkio stats + /// Not used on Windows. + /// public class BlkioStatEntry // (container.BlkioStatEntry) { [JsonPropertyName("major")] diff --git a/src/Docker.DotNet/Models/BlkioStats.Generated.cs b/src/Docker.DotNet/Models/BlkioStats.Generated.cs index 220bb9ba..5213823f 100644 --- a/src/Docker.DotNet/Models/BlkioStats.Generated.cs +++ b/src/Docker.DotNet/Models/BlkioStats.Generated.cs @@ -1,8 +1,17 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// BlkioStats stores All IO service stats for data read and write. + /// This is a Linux specific structure as the differences between expressing + /// block I/O on Windows and Linux are sufficiently significant to make + /// little sense attempting to morph into a combined structure. + /// public class BlkioStats // (container.BlkioStats) { + /// + /// number of bytes transferred to and from the block device + /// [JsonPropertyName("io_service_bytes_recursive")] public IList IoServiceBytesRecursive { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/CAConfig.Generated.cs b/src/Docker.DotNet/Models/CAConfig.Generated.cs index 5b528984..ea9b83df 100644 --- a/src/Docker.DotNet/Models/CAConfig.Generated.cs +++ b/src/Docker.DotNet/Models/CAConfig.Generated.cs @@ -1,20 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CAConfig represents CA configuration. + /// public class CAConfig // (swarm.CAConfig) { + /// + /// NodeCertExpiry is the duration certificates should be issued for + /// [JsonPropertyName("NodeCertExpiry")] public long? NodeCertExpiry { get; set; } + /// + /// ExternalCAs is a list of CAs to which a manager node will make + /// certificate signing requests for node certificates. + /// [JsonPropertyName("ExternalCAs")] public IList? ExternalCAs { get; set; } + /// + /// SigningCACert and SigningCAKey specify the desired signing root CA and + /// root CA key for the swarm. When inspecting the cluster, the key will + /// be redacted. + /// [JsonPropertyName("SigningCACert")] public string? SigningCACert { get; set; } [JsonPropertyName("SigningCAKey")] public string? SigningCAKey { get; set; } + /// + /// If this value changes, and there is no specified signing cert and key, + /// then the swarm is forced to generate a new root certificate and key. + /// [JsonPropertyName("ForceRotate")] public ulong? ForceRotate { get; set; } } diff --git a/src/Docker.DotNet/Models/CPUStats.Generated.cs b/src/Docker.DotNet/Models/CPUStats.Generated.cs index d955b0ba..c46fad8c 100644 --- a/src/Docker.DotNet/Models/CPUStats.Generated.cs +++ b/src/Docker.DotNet/Models/CPUStats.Generated.cs @@ -1,17 +1,32 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CPUStats aggregates and wraps all CPU related info of container + /// public class CPUStats // (container.CPUStats) { + /// + /// CPU Usage. Linux and Windows. + /// [JsonPropertyName("cpu_usage")] public CPUUsage CPUUsage { get; set; } = default!; + /// + /// System Usage. Linux only. + /// [JsonPropertyName("system_cpu_usage")] public ulong? SystemUsage { get; set; } + /// + /// Online CPUs. Linux only. + /// [JsonPropertyName("online_cpus")] public uint? OnlineCPUs { get; set; } + /// + /// Throttling Data. Linux only. + /// [JsonPropertyName("throttling_data")] public ThrottlingData? ThrottlingData { get; set; } } diff --git a/src/Docker.DotNet/Models/CPUUsage.Generated.cs b/src/Docker.DotNet/Models/CPUUsage.Generated.cs index 57e3f0e4..10901f6b 100644 --- a/src/Docker.DotNet/Models/CPUUsage.Generated.cs +++ b/src/Docker.DotNet/Models/CPUUsage.Generated.cs @@ -1,17 +1,41 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CPUUsage stores All CPU stats aggregated since container inception. + /// public class CPUUsage // (container.CPUUsage) { + /// + /// Total CPU time consumed. + /// Units: nanoseconds (Linux) + /// Units: 100's of nanoseconds (Windows) + /// [JsonPropertyName("total_usage")] public ulong TotalUsage { get; set; } = default!; + /// + /// Total CPU time consumed per core (Linux). Not used on Windows. + /// Units: nanoseconds. + /// [JsonPropertyName("percpu_usage")] public IList? PercpuUsage { get; set; } + /// + /// Time spent by tasks of the cgroup in kernel mode (Linux). + /// Time spent by all container processes in kernel mode (Windows). + /// Units: nanoseconds (Linux). + /// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers. + /// [JsonPropertyName("usage_in_kernelmode")] public ulong UsageInKernelmode { get; set; } = default!; + /// + /// Time spent by tasks of the cgroup in user mode (Linux). + /// Time spent by all container processes in user mode (Windows). + /// Units: nanoseconds (Linux). + /// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers + /// [JsonPropertyName("usage_in_usermode")] public ulong UsageInUsermode { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/CapacityRange.Generated.cs b/src/Docker.DotNet/Models/CapacityRange.Generated.cs index 3b713a35..8bb62e2f 100644 --- a/src/Docker.DotNet/Models/CapacityRange.Generated.cs +++ b/src/Docker.DotNet/Models/CapacityRange.Generated.cs @@ -1,11 +1,23 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CapacityRange describes the minimum and maximum capacity a volume should be + /// created with + /// public class CapacityRange // (volume.CapacityRange) { + /// + /// RequiredBytes specifies that a volume must be at least this big. The + /// value of 0 indicates an unspecified minimum. + /// [JsonPropertyName("RequiredBytes")] public long RequiredBytes { get; set; } = default!; + /// + /// LimitBytes specifies that a volume must not be bigger than this. The + /// value of 0 indicates an unspecified maximum + /// [JsonPropertyName("LimitBytes")] public long LimitBytes { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ClusterInfo.Generated.cs b/src/Docker.DotNet/Models/ClusterInfo.Generated.cs index 541cbdb9..a329dbf8 100644 --- a/src/Docker.DotNet/Models/ClusterInfo.Generated.cs +++ b/src/Docker.DotNet/Models/ClusterInfo.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ClusterInfo represents info about the cluster for outputting in "info" + /// it contains the same information as "Swarm", but without the JoinTokens + /// public class ClusterInfo // (swarm.ClusterInfo) { public ClusterInfo() diff --git a/src/Docker.DotNet/Models/ClusterOptions.Generated.cs b/src/Docker.DotNet/Models/ClusterOptions.Generated.cs index b85361a4..953551eb 100644 --- a/src/Docker.DotNet/Models/ClusterOptions.Generated.cs +++ b/src/Docker.DotNet/Models/ClusterOptions.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ClusterOptions specifies options for a Cluster volume. + /// public class ClusterOptions // (mount.ClusterOptions) { } diff --git a/src/Docker.DotNet/Models/ClusterVolume.Generated.cs b/src/Docker.DotNet/Models/ClusterVolume.Generated.cs index 300630af..7fb5904f 100644 --- a/src/Docker.DotNet/Models/ClusterVolume.Generated.cs +++ b/src/Docker.DotNet/Models/ClusterVolume.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ClusterVolume contains options and information specific to, and only present + /// on, Swarm CSI cluster volumes. + /// public class ClusterVolume // (volume.ClusterVolume) { public ClusterVolume() @@ -17,6 +21,11 @@ public ClusterVolume(Meta Meta) } } + /// + /// ID is the Swarm ID of the volume. Because cluster volumes are Swarm + /// objects, they have an ID, unlike non-cluster volumes, which only have a + /// Name. This ID can be used to refer to the cluster volume. + /// [JsonPropertyName("ID")] public string ID { get; set; } = default!; @@ -29,12 +38,22 @@ public ClusterVolume(Meta Meta) [JsonPropertyName("UpdatedAt")] public DateTime? UpdatedAt { get; set; } + /// + /// Spec is the cluster-specific options from which this volume is derived. + /// [JsonPropertyName("Spec")] public ClusterVolumeSpec Spec { get; set; } = default!; + /// + /// PublishStatus contains the status of the volume as it pertains to its + /// publishing on Nodes. + /// [JsonPropertyName("PublishStatus")] public IList? PublishStatus { get; set; } + /// + /// Info is information about the global status of the volume. + /// [JsonPropertyName("Info")] public VolumeInfo? Info { get; set; } } diff --git a/src/Docker.DotNet/Models/ClusterVolumeSpec.Generated.cs b/src/Docker.DotNet/Models/ClusterVolumeSpec.Generated.cs index 2c7dd222..d27cff97 100644 --- a/src/Docker.DotNet/Models/ClusterVolumeSpec.Generated.cs +++ b/src/Docker.DotNet/Models/ClusterVolumeSpec.Generated.cs @@ -1,23 +1,62 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ClusterVolumeSpec contains the spec used to create this volume. + /// public class ClusterVolumeSpec // (volume.ClusterVolumeSpec) { + /// + /// Group defines the volume group of this volume. Volumes belonging to the + /// same group can be referred to by group name when creating Services. + /// Referring to a volume by group instructs swarm to treat volumes in that + /// group interchangeably for the purpose of scheduling. Volumes with an + /// empty string for a group technically all belong to the same, emptystring + /// group. + /// [JsonPropertyName("Group")] public string? Group { get; set; } + /// + /// AccessMode defines how the volume is used by tasks. + /// [JsonPropertyName("AccessMode")] public VolumeAccessMode? AccessMode { get; set; } + /// + /// AccessibilityRequirements specifies where in the cluster a volume must + /// be accessible from. + /// + /// This field must be empty if the plugin does not support + /// VOLUME_ACCESSIBILITY_CONSTRAINTS capabilities. If it is present but the + /// plugin does not support it, volume will not be created. + /// + /// If AccessibilityRequirements is empty, but the plugin does support + /// VOLUME_ACCESSIBILITY_CONSTRAINTS, then Swarmkit will assume the entire + /// cluster is a valid target for the volume. + /// [JsonPropertyName("AccessibilityRequirements")] public TopologyRequirement? AccessibilityRequirements { get; set; } + /// + /// CapacityRange defines the desired capacity that the volume should be + /// created with. If nil, the plugin will decide the capacity. + /// [JsonPropertyName("CapacityRange")] public CapacityRange? CapacityRange { get; set; } + /// + /// Secrets defines Swarm Secrets that are passed to the CSI storage plugin + /// when operating on this volume. + /// [JsonPropertyName("Secrets")] public IList? Secrets { get; set; } + /// + /// Availability is the Volume's desired availability. Analogous to Node + /// Availability, this allows the user to take volumes offline in order to + /// update or delete them. + /// [JsonPropertyName("Availability")] public string? Availability { get; set; } } diff --git a/src/Docker.DotNet/Models/Commit.Generated.cs b/src/Docker.DotNet/Models/Commit.Generated.cs index 1f947adb..fa81eeac 100644 --- a/src/Docker.DotNet/Models/Commit.Generated.cs +++ b/src/Docker.DotNet/Models/Commit.Generated.cs @@ -1,8 +1,15 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Commit holds the Git-commit (SHA1) that a binary was built from, as reported + /// in the version-string of external tools, such as containerd, or runC. + /// public class Commit // (system.Commit) { + /// + /// ID is the actual commit ID or version of external tool. + /// [JsonPropertyName("ID")] public string ID { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ComponentVersion.Generated.cs b/src/Docker.DotNet/Models/ComponentVersion.Generated.cs index bb818a13..1579e6b9 100644 --- a/src/Docker.DotNet/Models/ComponentVersion.Generated.cs +++ b/src/Docker.DotNet/Models/ComponentVersion.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ComponentVersion describes the version information for a specific component. + /// public class ComponentVersion // (system.ComponentVersion) { [JsonPropertyName("Name")] @@ -9,6 +12,14 @@ public class ComponentVersion // (system.ComponentVersion) [JsonPropertyName("Version")] public string Version { get; set; } = default!; + /// + /// Details contains Key/value pairs of strings with additional information + /// about the component. These values are intended for informational purposes + /// only, and their content is not defined, and not part of the API + /// specification. + /// + /// These messages can be printed by the client as information to the user. + /// [JsonPropertyName("Details")] public IDictionary? Details { get; set; } } diff --git a/src/Docker.DotNet/Models/ConfigReference.Generated.cs b/src/Docker.DotNet/Models/ConfigReference.Generated.cs index 59370350..159a85b3 100644 --- a/src/Docker.DotNet/Models/ConfigReference.Generated.cs +++ b/src/Docker.DotNet/Models/ConfigReference.Generated.cs @@ -1,8 +1,21 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ConfigReference The config-only network source to provide the configuration for + /// this network. + /// + /// swagger:model ConfigReference + /// public class ConfigReference // (network.ConfigReference) { + /// + /// The name of the config-only network that provides the network's + /// configuration. The specified network must be an existing config-only + /// network. Only network names are allowed, not network IDs. + /// + /// Example: config_only_network_01 + /// [JsonPropertyName("Network")] public string Network { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ConfigReferenceFileTarget.Generated.cs b/src/Docker.DotNet/Models/ConfigReferenceFileTarget.Generated.cs index 43edc6fb..b23b3120 100644 --- a/src/Docker.DotNet/Models/ConfigReferenceFileTarget.Generated.cs +++ b/src/Docker.DotNet/Models/ConfigReferenceFileTarget.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ConfigReferenceFileTarget is a file target in a config reference + /// public class ConfigReferenceFileTarget // (swarm.ConfigReferenceFileTarget) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/ConfigReferenceRuntimeTarget.Generated.cs b/src/Docker.DotNet/Models/ConfigReferenceRuntimeTarget.Generated.cs index 7dbb0b8b..f44024dd 100644 --- a/src/Docker.DotNet/Models/ConfigReferenceRuntimeTarget.Generated.cs +++ b/src/Docker.DotNet/Models/ConfigReferenceRuntimeTarget.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ConfigReferenceRuntimeTarget is a target for a config specifying that it + /// isn't mounted into the container but instead has some other purpose. + /// public class ConfigReferenceRuntimeTarget // (swarm.ConfigReferenceRuntimeTarget) { } diff --git a/src/Docker.DotNet/Models/ContainerConfig.Generated.cs b/src/Docker.DotNet/Models/ContainerConfig.Generated.cs index 30171446..cd5f80c4 100644 --- a/src/Docker.DotNet/Models/ContainerConfig.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerConfig.Generated.cs @@ -1,6 +1,14 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Config contains the configuration data about a container. + /// It should hold only portable information about the container. + /// Here, "portable" means "independent from the host we are running on". + /// Non-portable information *should* appear in HostConfig. + /// All fields added to this struct must be marked `omitempty` to keep getting + /// predictable hashes from the old `v1Compatibility` configuration. + /// public class ContainerConfig // (container.Config) { [JsonPropertyName("Hostname")] diff --git a/src/Docker.DotNet/Models/ContainerExecInspectResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerExecInspectResponse.Generated.cs index 4cc25646..6db57012 100644 --- a/src/Docker.DotNet/Models/ContainerExecInspectResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerExecInspectResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ExecInspectResponse is the API response for the "GET /exec/{id}/json" + /// endpoint and holds information about and exec. + /// public class ContainerExecInspectResponse // (container.ExecInspectResponse) { [JsonPropertyName("ID")] diff --git a/src/Docker.DotNet/Models/ContainerFileSystemChangeResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerFileSystemChangeResponse.Generated.cs index 13b56aed..a633ea04 100644 --- a/src/Docker.DotNet/Models/ContainerFileSystemChangeResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerFileSystemChangeResponse.Generated.cs @@ -1,11 +1,25 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// FilesystemChange Change in the container's filesystem. + /// + /// swagger:model FilesystemChange + /// public class ContainerFileSystemChangeResponse // (container.FilesystemChange) { + /// + /// kind + /// Required: true + /// [JsonPropertyName("Kind")] public FileSystemChangeKind Kind { get; set; } = default!; + /// + /// Path to file or directory that has changed. + /// + /// Required: true + /// [JsonPropertyName("Path")] public string Path { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ContainerInspectResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerInspectResponse.Generated.cs index 1c1fb53f..f87cb597 100644 --- a/src/Docker.DotNet/Models/ContainerInspectResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerInspectResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// InspectResponse is the response for the GET "/containers/{name:.*}/json" + /// endpoint. + /// public class ContainerInspectResponse // (container.InspectResponse) { [JsonPropertyName("Id")] @@ -60,9 +64,15 @@ public class ContainerInspectResponse // (container.InspectResponse) [JsonPropertyName("HostConfig")] public HostConfig? HostConfig { get; set; } + /// + /// GraphDriver contains information about the container's graph driver. + /// [JsonPropertyName("GraphDriver")] public DriverData? GraphDriver { get; set; } + /// + /// Storage contains information about the storage used for the container's filesystem. + /// [JsonPropertyName("Storage")] public Storage? Storage { get; set; } @@ -81,6 +91,9 @@ public class ContainerInspectResponse // (container.InspectResponse) [JsonPropertyName("NetworkSettings")] public NetworkSettings? NetworkSettings { get; set; } + /// + /// ImageManifestDescriptor is the descriptor of a platform-specific manifest of the image used to create the container. + /// [JsonPropertyName("ImageManifestDescriptor")] public Descriptor? ImageManifestDescriptor { get; set; } } diff --git a/src/Docker.DotNet/Models/ContainerListResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerListResponse.Generated.cs index 1c3f51b5..bbf69ac4 100644 --- a/src/Docker.DotNet/Models/ContainerListResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerListResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Summary contains response of Engine API: + /// GET "/containers/json" + /// public class ContainerListResponse // (container.Summary) { [JsonPropertyName("Id")] diff --git a/src/Docker.DotNet/Models/ContainerPathStatResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerPathStatResponse.Generated.cs index 64f86cf0..f78ca1e7 100644 --- a/src/Docker.DotNet/Models/ContainerPathStatResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerPathStatResponse.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PathStat is used to encode the header from + /// GET "/containers/{name:.*}/archive" + /// "Name" is the file or directory name. + /// public class ContainerPathStatResponse // (container.PathStat) { [JsonPropertyName("name")] diff --git a/src/Docker.DotNet/Models/ContainerProcessesResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerProcessesResponse.Generated.cs index 1a77f04b..3c4f1940 100644 --- a/src/Docker.DotNet/Models/ContainerProcessesResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerProcessesResponse.Generated.cs @@ -1,11 +1,27 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TopResponse ContainerTopResponse + /// + /// Container "top" response. + /// + /// swagger:model TopResponse + /// public class ContainerProcessesResponse // (container.TopResponse) { + /// + /// Each process running in the container, where each process + /// is an array of values corresponding to the titles. + /// Example: {"Processes":[["root","13642","882","0","17:03","pts/0","00:00:00","/bin/bash"],["root","13735","13642","0","17:06","pts/0","00:00:00","sleep 10"]]} + /// [JsonPropertyName("Processes")] public IList> Processes { get; set; } = default!; + /// + /// The ps column titles + /// Example: {"Titles":["UID","PID","PPID","C","STIME","TTY","TIME","CMD"]} + /// [JsonPropertyName("Titles")] public IList Titles { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ContainerSpec.Generated.cs b/src/Docker.DotNet/Models/ContainerSpec.Generated.cs index 6a365f26..acfe0d2d 100644 --- a/src/Docker.DotNet/Models/ContainerSpec.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ContainerSpec represents the spec of a container. + /// public class ContainerSpec // (swarm.ContainerSpec) { [JsonPropertyName("Image")] @@ -57,6 +60,11 @@ public class ContainerSpec // (swarm.ContainerSpec) [JsonPropertyName("Healthcheck")] public HealthcheckConfig? Healthcheck { get; set; } + /// + /// The format of extra hosts on swarmkit is specified in: + /// http://man7.org/linux/man-pages/man5/hosts.5.html + /// IP_address canonical_hostname [aliases...] + /// [JsonPropertyName("Hosts")] public IList? Hosts { get; set; } diff --git a/src/Docker.DotNet/Models/ContainerStatsResponse.Generated.cs b/src/Docker.DotNet/Models/ContainerStatsResponse.Generated.cs index dd1f5117..4c9d91f4 100644 --- a/src/Docker.DotNet/Models/ContainerStatsResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerStatsResponse.Generated.cs @@ -1,44 +1,107 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// StatsResponse aggregates all types of stats of one container. + /// public class ContainerStatsResponse // (container.StatsResponse) { + /// + /// ID is the ID of the container for which the stats were collected. + /// [JsonPropertyName("id")] public string? ID { get; set; } + /// + /// Name is the name of the container for which the stats were collected. + /// [JsonPropertyName("name")] public string? Name { get; set; } + /// + /// OSType is the OS of the container ("linux" or "windows") to allow + /// platform-specific handling of stats. + /// [JsonPropertyName("os_type")] public string? OSType { get; set; } + /// + /// Read is the date and time at which this sample was collected. + /// [JsonPropertyName("read")] public DateTime Read { get; set; } = default!; + /// + /// CPUStats contains CPU related info of the container. + /// [JsonPropertyName("cpu_stats")] public CPUStats? CPUStats { get; set; } + /// + /// MemoryStats aggregates all memory stats since container inception on Linux. + /// Windows returns stats for commit and private working set only. + /// [JsonPropertyName("memory_stats")] public MemoryStats? MemoryStats { get; set; } + /// + /// Networks contains Nntwork statistics for the container per interface. + /// + /// This field is omitted if the container has no networking enabled. + /// [JsonPropertyName("networks")] public IDictionary? Networks { get; set; } + /// + /// PidsStats contains Linux-specific stats of a container's process-IDs (PIDs). + /// + /// This field is Linux-specific and omitted for Windows containers. + /// [JsonPropertyName("pids_stats")] public PidsStats? PidsStats { get; set; } + /// + /// BlkioStats stores all IO service stats for data read and write. + /// + /// This type is Linux-specific and holds many fields that are specific + /// to cgroups v1. + /// + /// On a cgroup v2 host, all fields other than "io_service_bytes_recursive" + /// are omitted or "null". + /// + /// This type is only populated on Linux and omitted for Windows containers. + /// [JsonPropertyName("blkio_stats")] public BlkioStats? BlkioStats { get; set; } + /// + /// NumProcs is the number of processors on the system. + /// + /// This field is Windows-specific and always zero for Linux containers. + /// [JsonPropertyName("num_procs")] public uint NumProcs { get; set; } = default!; + /// + /// StorageStats is the disk I/O stats for read/write on Windows. + /// + /// This type is Windows-specific and omitted for Linux containers. + /// [JsonPropertyName("storage_stats")] public StorageStats? StorageStats { get; set; } + /// + /// PreRead is the date and time at which this first sample was collected. + /// This field is not propagated if the "one-shot" option is set. If the + /// "one-shot" option is set, this field may be omitted, empty, or set + /// to a default date (`0001-01-01T00:00:00Z`). + /// [JsonPropertyName("preread")] public DateTime PreRead { get; set; } = default!; + /// + /// PreCPUStats contains the CPUStats of the previous sample. + /// [JsonPropertyName("precpu_stats")] public CPUStats? PreCPUStats { get; set; } } diff --git a/src/Docker.DotNet/Models/ContainerStatus.Generated.cs b/src/Docker.DotNet/Models/ContainerStatus.Generated.cs index 77a54d49..16da8f43 100644 --- a/src/Docker.DotNet/Models/ContainerStatus.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ContainerStatus represents the status of a container. + /// public class ContainerStatus // (swarm.ContainerStatus) { [JsonPropertyName("ContainerID")] diff --git a/src/Docker.DotNet/Models/ContainerUpdateParameters.Generated.cs b/src/Docker.DotNet/Models/ContainerUpdateParameters.Generated.cs index 7b411c8c..d5a5814b 100644 --- a/src/Docker.DotNet/Models/ContainerUpdateParameters.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerUpdateParameters.Generated.cs @@ -44,6 +44,9 @@ public ContainerUpdateParameters(UpdateConfig UpdateConfig) } } + /// + /// Applicable to all platforms + /// [JsonPropertyName("CpuShares")] public long CPUShares { get; set; } = default!; @@ -53,6 +56,9 @@ public ContainerUpdateParameters(UpdateConfig UpdateConfig) [JsonPropertyName("NanoCpus")] public long NanoCPUs { get; set; } = default!; + /// + /// Applicable to UNIX platforms + /// [JsonPropertyName("CgroupParent")] public string CgroupParent { get; set; } = default!; @@ -119,6 +125,9 @@ public ContainerUpdateParameters(UpdateConfig UpdateConfig) [JsonPropertyName("Ulimits")] public IList Ulimits { get; set; } = default!; + /// + /// Applicable to Windows + /// [JsonPropertyName("CpuCount")] public long CPUCount { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/ContainerdInfo.Generated.cs b/src/Docker.DotNet/Models/ContainerdInfo.Generated.cs index ae7892e7..2870d8e2 100644 --- a/src/Docker.DotNet/Models/ContainerdInfo.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerdInfo.Generated.cs @@ -1,11 +1,20 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ContainerdInfo holds information about the containerd instance used by the daemon. + /// public class ContainerdInfo // (system.ContainerdInfo) { + /// + /// Address is the path to the containerd socket. + /// [JsonPropertyName("Address")] public string? Address { get; set; } + /// + /// Namespaces is the containerd namespaces used by the daemon. + /// [JsonPropertyName("Namespaces")] public ContainerdNamespaces Namespaces { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ContainerdNamespaces.Generated.cs b/src/Docker.DotNet/Models/ContainerdNamespaces.Generated.cs index 15102d62..e1323c3a 100644 --- a/src/Docker.DotNet/Models/ContainerdNamespaces.Generated.cs +++ b/src/Docker.DotNet/Models/ContainerdNamespaces.Generated.cs @@ -1,11 +1,40 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ContainerdNamespaces reflects the containerd namespaces used by the daemon. + /// + /// These namespaces can be configured in the daemon configuration, and are + /// considered to be used exclusively by the daemon, + /// + /// As these namespaces are considered to be exclusively accessed + /// by the daemon, it is not recommended to change these values, + /// or to change them to a value that is used by other systems, + /// such as cri-containerd. + /// public class ContainerdNamespaces // (system.ContainerdNamespaces) { + /// + /// Containers holds the default containerd namespace used for + /// containers managed by the daemon. + /// + /// The default namespace for containers is "moby", but will be + /// suffixed with the `<uid>.<gid>` of the remapped `root` if + /// user-namespaces are enabled and the containerd image-store + /// is used. + /// [JsonPropertyName("Containers")] public string Containers { get; set; } = default!; + /// + /// Plugins holds the default containerd namespace used for + /// plugins managed by the daemon. + /// + /// The default namespace for plugins is "moby", but will be + /// suffixed with the `<uid>.<gid>` of the remapped `root` if + /// user-namespaces are enabled and the containerd image-store + /// is used. + /// [JsonPropertyName("Plugins")] public string Plugins { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ContainersPruneResponse.Generated.cs b/src/Docker.DotNet/Models/ContainersPruneResponse.Generated.cs index cfcd6d27..2ed63e0a 100644 --- a/src/Docker.DotNet/Models/ContainersPruneResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ContainersPruneResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PruneReport contains the response for Engine API: + /// POST "/containers/prune" + /// public class ContainersPruneResponse // (container.PruneReport) { [JsonPropertyName("ContainersDeleted")] diff --git a/src/Docker.DotNet/Models/CreateContainerResponse.Generated.cs b/src/Docker.DotNet/Models/CreateContainerResponse.Generated.cs index 94b69b10..8ce8f2b1 100644 --- a/src/Docker.DotNet/Models/CreateContainerResponse.Generated.cs +++ b/src/Docker.DotNet/Models/CreateContainerResponse.Generated.cs @@ -1,11 +1,28 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CreateResponse ContainerCreateResponse + /// + /// # OK response to ContainerCreate operation + /// + /// swagger:model CreateResponse + /// public class CreateContainerResponse // (container.CreateResponse) { + /// + /// The ID of the created container + /// Example: ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743 + /// Required: true + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// Warnings encountered when creating the container + /// Example: [] + /// Required: true + /// [JsonPropertyName("Warnings")] public IList Warnings { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/CredentialSpec.Generated.cs b/src/Docker.DotNet/Models/CredentialSpec.Generated.cs index 1c0610b8..49f787d3 100644 --- a/src/Docker.DotNet/Models/CredentialSpec.Generated.cs +++ b/src/Docker.DotNet/Models/CredentialSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CredentialSpec for managed service account (Windows only) + /// public class CredentialSpec // (swarm.CredentialSpec) { [JsonPropertyName("Config")] diff --git a/src/Docker.DotNet/Models/DNSConfig.Generated.cs b/src/Docker.DotNet/Models/DNSConfig.Generated.cs index cfca8cea..846d0dae 100644 --- a/src/Docker.DotNet/Models/DNSConfig.Generated.cs +++ b/src/Docker.DotNet/Models/DNSConfig.Generated.cs @@ -1,14 +1,30 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DNSConfig specifies DNS related configurations in resolver configuration file (resolv.conf) + /// Detailed documentation is available in: + /// http://man7.org/linux/man-pages/man5/resolv.conf.5.html + /// `nameserver`, `search`, `options` have been supported. + /// TODO: `domain` is not supported yet. + /// public class DNSConfig // (swarm.DNSConfig) { + /// + /// Nameservers specifies the IP addresses of the name servers + /// [JsonPropertyName("Nameservers")] public IList? Nameservers { get; set; } + /// + /// Search specifies the search list for host-name lookup + /// [JsonPropertyName("Search")] public IList? Search { get; set; } + /// + /// Options allows certain internal resolver variables to be modified + /// [JsonPropertyName("Options")] public IList? Options { get; set; } } diff --git a/src/Docker.DotNet/Models/DeviceInfo.Generated.cs b/src/Docker.DotNet/Models/DeviceInfo.Generated.cs index f6850b5d..62438f90 100644 --- a/src/Docker.DotNet/Models/DeviceInfo.Generated.cs +++ b/src/Docker.DotNet/Models/DeviceInfo.Generated.cs @@ -1,11 +1,21 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DeviceInfo represents a discoverable device from a device driver. + /// public class DeviceInfo // (system.DeviceInfo) { + /// + /// Source indicates the origin device driver. + /// [JsonPropertyName("Source")] public string Source { get; set; } = default!; + /// + /// ID is the unique identifier for the device. + /// Example: CDI FQDN like "vendor.com/gpu=0", or other driver-specific device ID + /// [JsonPropertyName("ID")] public string ID { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/DeviceMapping.Generated.cs b/src/Docker.DotNet/Models/DeviceMapping.Generated.cs index f82df0ac..6a23d9ca 100644 --- a/src/Docker.DotNet/Models/DeviceMapping.Generated.cs +++ b/src/Docker.DotNet/Models/DeviceMapping.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DeviceMapping represents the device mapping between the host and the container. + /// public class DeviceMapping // (container.DeviceMapping) { [JsonPropertyName("PathOnHost")] diff --git a/src/Docker.DotNet/Models/DeviceRequest.Generated.cs b/src/Docker.DotNet/Models/DeviceRequest.Generated.cs index 30d8650b..a999eadc 100644 --- a/src/Docker.DotNet/Models/DeviceRequest.Generated.cs +++ b/src/Docker.DotNet/Models/DeviceRequest.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DeviceRequest represents a request for devices from a device driver. + /// Used by GPU device drivers. + /// public class DeviceRequest // (container.DeviceRequest) { [JsonPropertyName("Driver")] diff --git a/src/Docker.DotNet/Models/DiscreteGenericResource.Generated.cs b/src/Docker.DotNet/Models/DiscreteGenericResource.Generated.cs index fed998c4..6988c297 100644 --- a/src/Docker.DotNet/Models/DiscreteGenericResource.Generated.cs +++ b/src/Docker.DotNet/Models/DiscreteGenericResource.Generated.cs @@ -1,6 +1,12 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DiscreteGenericResource represents a "user defined" resource which is defined + /// as an integer + /// "Kind" is used to describe the Kind of a resource (e.g: "GPU", "FPGA", "SSD", ...) + /// Value is used to count the resource (SSD=5, HDD=3, ...) + /// public class DiscreteGenericResource // (swarm.DiscreteGenericResource) { [JsonPropertyName("Kind")] diff --git a/src/Docker.DotNet/Models/DispatcherConfig.Generated.cs b/src/Docker.DotNet/Models/DispatcherConfig.Generated.cs index edfb8ce5..b1e92909 100644 --- a/src/Docker.DotNet/Models/DispatcherConfig.Generated.cs +++ b/src/Docker.DotNet/Models/DispatcherConfig.Generated.cs @@ -1,8 +1,15 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DispatcherConfig represents dispatcher configuration. + /// public class DispatcherConfig // (swarm.DispatcherConfig) { + /// + /// HeartbeatPeriod defines how often agent should send heartbeats to + /// dispatcher. + /// [JsonPropertyName("HeartbeatPeriod")] public long? HeartbeatPeriod { get; set; } } diff --git a/src/Docker.DotNet/Models/Driver.Generated.cs b/src/Docker.DotNet/Models/Driver.Generated.cs index ead43844..53c4dc39 100644 --- a/src/Docker.DotNet/Models/Driver.Generated.cs +++ b/src/Docker.DotNet/Models/Driver.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Driver represents a volume driver. + /// public class Driver // (mount.Driver) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/DriverData.Generated.cs b/src/Docker.DotNet/Models/DriverData.Generated.cs index f2e6a430..86ca6034 100644 --- a/src/Docker.DotNet/Models/DriverData.Generated.cs +++ b/src/Docker.DotNet/Models/DriverData.Generated.cs @@ -1,11 +1,31 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DriverData Information about the storage driver used to store the container's and + /// image's filesystem. + /// + /// swagger:model DriverData + /// public class DriverData // (storage.DriverData) { + /// + /// Low-level storage metadata, provided as key/value pairs. + /// + /// This information is driver-specific, and depends on the storage-driver + /// in use, and should be used for informational purposes only. + /// + /// Example: {"MergedDir":"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/merged","UpperDir":"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/diff","WorkDir":"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/work"} + /// Required: true + /// [JsonPropertyName("Data")] public IDictionary Data { get; set; } = default!; + /// + /// Name of the storage driver. + /// Example: overlay2 + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/EncryptionConfig.Generated.cs b/src/Docker.DotNet/Models/EncryptionConfig.Generated.cs index b8d6a593..81012678 100644 --- a/src/Docker.DotNet/Models/EncryptionConfig.Generated.cs +++ b/src/Docker.DotNet/Models/EncryptionConfig.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EncryptionConfig controls at-rest encryption of data and keys. + /// public class EncryptionConfig // (swarm.EncryptionConfig) { + /// + /// AutoLockManagers specifies whether or not managers TLS keys and raft data + /// should be encrypted at rest in such a way that they must be unlocked + /// before the manager node starts up again. + /// [JsonPropertyName("AutoLockManagers")] public bool AutoLockManagers { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Endpoint.Generated.cs b/src/Docker.DotNet/Models/Endpoint.Generated.cs index 63278c90..30e94bbd 100644 --- a/src/Docker.DotNet/Models/Endpoint.Generated.cs +++ b/src/Docker.DotNet/Models/Endpoint.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Endpoint represents an endpoint. + /// public class Endpoint // (swarm.Endpoint) { [JsonPropertyName("Spec")] diff --git a/src/Docker.DotNet/Models/EndpointIPAMConfig.Generated.cs b/src/Docker.DotNet/Models/EndpointIPAMConfig.Generated.cs index 8a2e2afa..8e565e17 100644 --- a/src/Docker.DotNet/Models/EndpointIPAMConfig.Generated.cs +++ b/src/Docker.DotNet/Models/EndpointIPAMConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EndpointIPAMConfig represents IPAM configurations for the endpoint + /// public class EndpointIPAMConfig // (network.EndpointIPAMConfig) { [JsonPropertyName("IPv4Address")] diff --git a/src/Docker.DotNet/Models/EndpointResource.Generated.cs b/src/Docker.DotNet/Models/EndpointResource.Generated.cs index 54a47c8c..61b66103 100644 --- a/src/Docker.DotNet/Models/EndpointResource.Generated.cs +++ b/src/Docker.DotNet/Models/EndpointResource.Generated.cs @@ -1,20 +1,44 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EndpointResource contains network resources allocated and used for a container in a network. + /// + /// swagger:model EndpointResource + /// public class EndpointResource // (network.EndpointResource) { + /// + /// name + /// Example: container_1 + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// endpoint ID + /// Example: 628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a + /// [JsonPropertyName("EndpointID")] public string EndpointID { get; set; } = default!; + /// + /// mac address + /// Example: 02:42:ac:13:00:02 + /// [JsonPropertyName("MacAddress")] public string MacAddress { get; set; } = default!; + /// + /// IPv4 address + /// Example: 172.19.0.2/16 + /// [JsonPropertyName("IPv4Address")] public string IPv4Address { get; set; } = default!; + /// + /// IPv6 address + /// [JsonPropertyName("IPv6Address")] public string IPv6Address { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/EndpointSettings.Generated.cs b/src/Docker.DotNet/Models/EndpointSettings.Generated.cs index c2a4fea2..414ca14c 100644 --- a/src/Docker.DotNet/Models/EndpointSettings.Generated.cs +++ b/src/Docker.DotNet/Models/EndpointSettings.Generated.cs @@ -1,8 +1,14 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EndpointSettings stores the network endpoint details + /// public class EndpointSettings // (network.EndpointSettings) { + /// + /// Configuration data + /// [JsonPropertyName("IPAMConfig")] public EndpointIPAMConfig? IPAMConfig { get; set; } @@ -15,6 +21,12 @@ public class EndpointSettings // (network.EndpointSettings) [JsonPropertyName("DriverOpts")] public IDictionary DriverOpts { get; set; } = default!; + /// + /// GwPriority determines which endpoint will provide the default gateway + /// for the container. The endpoint with the highest priority will be used. + /// If multiple endpoints have the same priority, they are lexicographically + /// sorted based on their network name, and the one that sorts first is picked. + /// [JsonPropertyName("GwPriority")] public long GwPriority { get; set; } = default!; @@ -30,6 +42,11 @@ public class EndpointSettings // (network.EndpointSettings) [JsonPropertyName("IPAddress")] public string IPAddress { get; set; } = default!; + /// + /// MacAddress may be used to specify a MAC address when the container is created. + /// Once the container is running, it becomes operational data (it may contain a + /// generated address). + /// [JsonPropertyName("MacAddress")] public string MacAddress { get; set; } = default!; @@ -45,6 +62,10 @@ public class EndpointSettings // (network.EndpointSettings) [JsonPropertyName("GlobalIPv6PrefixLen")] public long GlobalIPv6PrefixLen { get; set; } = default!; + /// + /// DNSNames holds all the (non fully qualified) DNS names associated to this + /// endpoint. The first entry is used to generate PTR records. + /// [JsonPropertyName("DNSNames")] public IList DNSNames { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/EndpointSpec.Generated.cs b/src/Docker.DotNet/Models/EndpointSpec.Generated.cs index de5610f9..71138607 100644 --- a/src/Docker.DotNet/Models/EndpointSpec.Generated.cs +++ b/src/Docker.DotNet/Models/EndpointSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EndpointSpec represents the spec of an endpoint. + /// public class EndpointSpec // (swarm.EndpointSpec) { [JsonPropertyName("Mode")] diff --git a/src/Docker.DotNet/Models/EndpointVirtualIP.Generated.cs b/src/Docker.DotNet/Models/EndpointVirtualIP.Generated.cs index 9b72f3a4..10c71ccb 100644 --- a/src/Docker.DotNet/Models/EndpointVirtualIP.Generated.cs +++ b/src/Docker.DotNet/Models/EndpointVirtualIP.Generated.cs @@ -1,11 +1,19 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EndpointVirtualIP represents the virtual ip of a port. + /// public class EndpointVirtualIP // (swarm.EndpointVirtualIP) { [JsonPropertyName("NetworkID")] public string? NetworkID { get; set; } + /// + /// Addr is the virtual ip address. + /// This field accepts CIDR notation, for example `10.0.0.1/24`, to maintain backwards + /// compatibility, but only the IP address is used. + /// [JsonPropertyName("Addr")] public string? Addr { get; set; } } diff --git a/src/Docker.DotNet/Models/EngineDescription.Generated.cs b/src/Docker.DotNet/Models/EngineDescription.Generated.cs index 39a1967f..e988ddfc 100644 --- a/src/Docker.DotNet/Models/EngineDescription.Generated.cs +++ b/src/Docker.DotNet/Models/EngineDescription.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// EngineDescription represents the description of an engine. + /// public class EngineDescription // (swarm.EngineDescription) { [JsonPropertyName("EngineVersion")] diff --git a/src/Docker.DotNet/Models/ExecProcessConfig.Generated.cs b/src/Docker.DotNet/Models/ExecProcessConfig.Generated.cs index 1becb701..dc9d9607 100644 --- a/src/Docker.DotNet/Models/ExecProcessConfig.Generated.cs +++ b/src/Docker.DotNet/Models/ExecProcessConfig.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ExecProcessConfig holds information about the exec process + /// running on the host. + /// public class ExecProcessConfig // (container.ExecProcessConfig) { [JsonPropertyName("tty")] diff --git a/src/Docker.DotNet/Models/ExternalCA.Generated.cs b/src/Docker.DotNet/Models/ExternalCA.Generated.cs index 4e939175..53cc8bfb 100644 --- a/src/Docker.DotNet/Models/ExternalCA.Generated.cs +++ b/src/Docker.DotNet/Models/ExternalCA.Generated.cs @@ -1,17 +1,34 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ExternalCA defines external CA to be used by the cluster. + /// public class ExternalCA // (swarm.ExternalCA) { + /// + /// Protocol is the protocol used by this external CA. + /// [JsonPropertyName("Protocol")] public string Protocol { get; set; } = default!; + /// + /// URL is the URL where the external CA can be reached. + /// [JsonPropertyName("URL")] public string URL { get; set; } = default!; + /// + /// Options is a set of additional key/value pairs whose interpretation + /// depends on the specified CA type. + /// [JsonPropertyName("Options")] public IDictionary? Options { get; set; } + /// + /// CACert specifies which root CA is used by this external CA. This certificate must + /// be in PEM format. + /// [JsonPropertyName("CACert")] public string CACert { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/FirewallInfo.Generated.cs b/src/Docker.DotNet/Models/FirewallInfo.Generated.cs index 0bd541e8..7d5a2fa4 100644 --- a/src/Docker.DotNet/Models/FirewallInfo.Generated.cs +++ b/src/Docker.DotNet/Models/FirewallInfo.Generated.cs @@ -1,11 +1,20 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// FirewallInfo describes the firewall backend. + /// public class FirewallInfo // (system.FirewallInfo) { + /// + /// Driver is the name of the firewall backend driver. + /// [JsonPropertyName("Driver")] public string Driver { get; set; } = default!; + /// + /// Info is a list of label/value pairs, containing information related to the firewall. + /// [JsonPropertyName("Info")] public IList? Info { get; set; } } diff --git a/src/Docker.DotNet/Models/GenericResource.Generated.cs b/src/Docker.DotNet/Models/GenericResource.Generated.cs index c1336935..819ea77a 100644 --- a/src/Docker.DotNet/Models/GenericResource.Generated.cs +++ b/src/Docker.DotNet/Models/GenericResource.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// GenericResource represents a "user defined" resource which can + /// be either an integer (e.g: SSD=3) or a string (e.g: SSD=sda1) + /// public class GenericResource // (swarm.GenericResource) { [JsonPropertyName("NamedResourceSpec")] diff --git a/src/Docker.DotNet/Models/GlobalJob.Generated.cs b/src/Docker.DotNet/Models/GlobalJob.Generated.cs index 554e68aa..296f0fd6 100644 --- a/src/Docker.DotNet/Models/GlobalJob.Generated.cs +++ b/src/Docker.DotNet/Models/GlobalJob.Generated.cs @@ -1,6 +1,13 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// GlobalJob is the type of a Service which executes a Task on every Node + /// matching the Service's placement constraints. These tasks run to completion + /// and then exit. + /// + /// This type is deliberately empty. + /// public class GlobalJob // (swarm.GlobalJob) { } diff --git a/src/Docker.DotNet/Models/GlobalService.Generated.cs b/src/Docker.DotNet/Models/GlobalService.Generated.cs index 78ffb29c..12092e6e 100644 --- a/src/Docker.DotNet/Models/GlobalService.Generated.cs +++ b/src/Docker.DotNet/Models/GlobalService.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// GlobalService is a kind of ServiceMode. + /// public class GlobalService // (swarm.GlobalService) { } diff --git a/src/Docker.DotNet/Models/Health.Generated.cs b/src/Docker.DotNet/Models/Health.Generated.cs index 003e2d58..087f2e93 100644 --- a/src/Docker.DotNet/Models/Health.Generated.cs +++ b/src/Docker.DotNet/Models/Health.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Health stores information about the container's healthcheck results + /// public class Health // (container.Health) { [JsonPropertyName("Status")] diff --git a/src/Docker.DotNet/Models/HealthSummary.Generated.cs b/src/Docker.DotNet/Models/HealthSummary.Generated.cs index b66a969e..61df8112 100644 --- a/src/Docker.DotNet/Models/HealthSummary.Generated.cs +++ b/src/Docker.DotNet/Models/HealthSummary.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// HealthSummary stores a summary of the container's healthcheck results. + /// public class HealthSummary // (container.HealthSummary) { [JsonPropertyName("Status")] diff --git a/src/Docker.DotNet/Models/HealthcheckResult.Generated.cs b/src/Docker.DotNet/Models/HealthcheckResult.Generated.cs index aa5dbd4a..c9b2f224 100644 --- a/src/Docker.DotNet/Models/HealthcheckResult.Generated.cs +++ b/src/Docker.DotNet/Models/HealthcheckResult.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// HealthcheckResult stores information about a single run of a healthcheck probe + /// public class HealthcheckResult // (container.HealthcheckResult) { [JsonPropertyName("Start")] diff --git a/src/Docker.DotNet/Models/HostConfig.Generated.cs b/src/Docker.DotNet/Models/HostConfig.Generated.cs index f912cffc..2d61a90d 100644 --- a/src/Docker.DotNet/Models/HostConfig.Generated.cs +++ b/src/Docker.DotNet/Models/HostConfig.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// HostConfig the non-portable Config structure of a container. + /// Here, "non-portable" means "dependent of the host we are running on". + /// Portable information *should* appear in Config. + /// public class HostConfig // (container.HostConfig) { public HostConfig() @@ -43,6 +48,9 @@ public HostConfig(Resources Resources) } } + /// + /// Applicable to all platforms + /// [JsonPropertyName("Binds")] public IList Binds { get; set; } = default!; @@ -77,6 +85,9 @@ public HostConfig(Resources Resources) [JsonPropertyName("Annotations")] public IDictionary? Annotations { get; set; } + /// + /// Applicable to UNIX platforms + /// [JsonPropertyName("CapAdd")] public IList CapAdd { get; set; } = default!; @@ -149,9 +160,15 @@ public HostConfig(Resources Resources) [JsonPropertyName("Runtime")] public string? Runtime { get; set; } + /// + /// Applicable to Windows + /// [JsonPropertyName("Isolation")] public string Isolation { get; set; } = default!; + /// + /// Applicable to all platforms + /// [JsonPropertyName("CpuShares")] public long CPUShares { get; set; } = default!; @@ -161,6 +178,9 @@ public HostConfig(Resources Resources) [JsonPropertyName("NanoCpus")] public long NanoCPUs { get; set; } = default!; + /// + /// Applicable to UNIX platforms + /// [JsonPropertyName("CgroupParent")] public string CgroupParent { get; set; } = default!; @@ -227,6 +247,9 @@ public HostConfig(Resources Resources) [JsonPropertyName("Ulimits")] public IList Ulimits { get; set; } = default!; + /// + /// Applicable to Windows + /// [JsonPropertyName("CpuCount")] public long CPUCount { get; set; } = default!; @@ -239,15 +262,27 @@ public HostConfig(Resources Resources) [JsonPropertyName("IOMaximumBandwidth")] public ulong IOMaximumBandwidth { get; set; } = default!; + /// + /// Mounts specs used by the container + /// [JsonPropertyName("Mounts")] public IList? Mounts { get; set; } + /// + /// MaskedPaths is the list of paths to be masked inside the container (this overrides the default set of paths) + /// [JsonPropertyName("MaskedPaths")] public IList MaskedPaths { get; set; } = default!; + /// + /// ReadonlyPaths is the list of paths to be set as read-only inside the container (this overrides the default set of paths) + /// [JsonPropertyName("ReadonlyPaths")] public IList ReadonlyPaths { get; set; } = default!; + /// + /// Run a custom init inside the container, if null, use the daemon's configured settings + /// [JsonPropertyName("Init")] public bool? Init { get; set; } } diff --git a/src/Docker.DotNet/Models/IPAM.Generated.cs b/src/Docker.DotNet/Models/IPAM.Generated.cs index 226db27c..fdef99ac 100644 --- a/src/Docker.DotNet/Models/IPAM.Generated.cs +++ b/src/Docker.DotNet/Models/IPAM.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IPAM represents IP Address Management + /// public class IPAM // (network.IPAM) { [JsonPropertyName("Driver")] diff --git a/src/Docker.DotNet/Models/IPAMConfig.Generated.cs b/src/Docker.DotNet/Models/IPAMConfig.Generated.cs index 2cd2f79b..7262ff9c 100644 --- a/src/Docker.DotNet/Models/IPAMConfig.Generated.cs +++ b/src/Docker.DotNet/Models/IPAMConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IPAMConfig represents IPAM configurations + /// public class IPAMConfig // (network.IPAMConfig) { [JsonPropertyName("Subnet")] diff --git a/src/Docker.DotNet/Models/IPAMOptions.Generated.cs b/src/Docker.DotNet/Models/IPAMOptions.Generated.cs index a3594050..382bbdaa 100644 --- a/src/Docker.DotNet/Models/IPAMOptions.Generated.cs +++ b/src/Docker.DotNet/Models/IPAMOptions.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IPAMOptions represents ipam options. + /// public class IPAMOptions // (swarm.IPAMOptions) { [JsonPropertyName("Driver")] diff --git a/src/Docker.DotNet/Models/IPAMStatus.Generated.cs b/src/Docker.DotNet/Models/IPAMStatus.Generated.cs index 7530e2b2..e40855d2 100644 --- a/src/Docker.DotNet/Models/IPAMStatus.Generated.cs +++ b/src/Docker.DotNet/Models/IPAMStatus.Generated.cs @@ -1,8 +1,17 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IPAMStatus IPAM status + /// + /// swagger:model IPAMStatus + /// public class IPAMStatus // (network.IPAMStatus) { + /// + /// subnets + /// Example: {"172.16.0.0/16":{"DynamicIPsAvailable":65533,"IPsInUse":3},"2001:db8:abcd:0012::0/96":{"DynamicIPsAvailable":4294967291,"IPsInUse":5}} + /// [JsonPropertyName("Subnets")] public IDictionary? Subnets { get; set; } } diff --git a/src/Docker.DotNet/Models/ImageBuildResult.Generated.cs b/src/Docker.DotNet/Models/ImageBuildResult.Generated.cs index 291fb945..5ec6570c 100644 --- a/src/Docker.DotNet/Models/ImageBuildResult.Generated.cs +++ b/src/Docker.DotNet/Models/ImageBuildResult.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ImageBuildResult holds information + /// returned by a server after building + /// an image. + /// public class ImageBuildResult // (client.ImageBuildResult) { [JsonPropertyName("Body")] diff --git a/src/Docker.DotNet/Models/ImageDeleteResponse.Generated.cs b/src/Docker.DotNet/Models/ImageDeleteResponse.Generated.cs index c445a50f..72f05b40 100644 --- a/src/Docker.DotNet/Models/ImageDeleteResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImageDeleteResponse.Generated.cs @@ -1,11 +1,22 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// DeleteResponse delete response + /// + /// swagger:model DeleteResponse + /// public class ImageDeleteResponse // (image.DeleteResponse) { + /// + /// The image ID of an image that was deleted + /// [JsonPropertyName("Deleted")] public string? Deleted { get; set; } + /// + /// The image ID of an image that was untagged + /// [JsonPropertyName("Untagged")] public string? Untagged { get; set; } } diff --git a/src/Docker.DotNet/Models/ImageHistoryResponse.Generated.cs b/src/Docker.DotNet/Models/ImageHistoryResponse.Generated.cs index 94dad48a..4deb6dbd 100644 --- a/src/Docker.DotNet/Models/ImageHistoryResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImageHistoryResponse.Generated.cs @@ -1,23 +1,52 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// HistoryResponseItem individual image layer information in response to ImageHistory operation + /// + /// swagger:model HistoryResponseItem + /// public class ImageHistoryResponse // (image.HistoryResponseItem) { + /// + /// comment + /// Required: true + /// [JsonPropertyName("Comment")] public string Comment { get; set; } = default!; + /// + /// created + /// Required: true + /// [JsonPropertyName("Created")] public DateTime Created { get; set; } = default!; + /// + /// created by + /// Required: true + /// [JsonPropertyName("CreatedBy")] public string CreatedBy { get; set; } = default!; + /// + /// Id + /// Required: true + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// size + /// Required: true + /// [JsonPropertyName("Size")] public long Size { get; set; } = default!; + /// + /// tags + /// Required: true + /// [JsonPropertyName("Tags")] public IList Tags { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ImageInspectResponse.Generated.cs b/src/Docker.DotNet/Models/ImageInspectResponse.Generated.cs index 6da9fe35..000fbebc 100644 --- a/src/Docker.DotNet/Models/ImageInspectResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImageInspectResponse.Generated.cs @@ -1,56 +1,150 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// InspectResponse contains response of Engine API: + /// GET "/images/{name:.*}/json" + /// public class ImageInspectResponse // (image.InspectResponse) { + /// + /// ID is the content-addressable ID of an image. + /// + /// This identifier is a content-addressable digest calculated from the + /// image's configuration (which includes the digests of layers used by + /// the image). + /// + /// Note that this digest differs from the `RepoDigests` below, which + /// holds digests of image manifests that reference the image. + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// RepoTags is a list of image names/tags in the local image cache that + /// reference this image. + /// + /// Multiple image tags can refer to the same image, and this list may be + /// empty if no tags reference the image, in which case the image is + /// "untagged", in which case it can still be referenced by its ID. + /// [JsonPropertyName("RepoTags")] public IList RepoTags { get; set; } = default!; + /// + /// RepoDigests is a list of content-addressable digests of locally available + /// image manifests that the image is referenced from. Multiple manifests can + /// refer to the same image. + /// + /// These digests are usually only available if the image was either pulled + /// from a registry, or if the image was pushed to a registry, which is when + /// the manifest is generated and its digest calculated. + /// [JsonPropertyName("RepoDigests")] public IList RepoDigests { get; set; } = default!; + /// + /// Comment is an optional message that can be set when committing or + /// importing the image. This field is omitted if not set. + /// [JsonPropertyName("Comment")] public string? Comment { get; set; } + /// + /// Created is the date and time at which the image was created, formatted in + /// RFC 3339 nano-seconds (time.RFC3339Nano). + /// + /// This information is only available if present in the image, + /// and omitted otherwise. + /// [JsonPropertyName("Created")] public DateTime? Created { get; set; } + /// + /// Author is the name of the author that was specified when committing the + /// image, or as specified through MAINTAINER (deprecated) in the Dockerfile. + /// This field is omitted if not set. + /// [JsonPropertyName("Author")] public string? Author { get; set; } [JsonPropertyName("Config")] public DockerOCIImageConfig? Config { get; set; } + /// + /// Architecture is the hardware CPU architecture that the image runs on. + /// [JsonPropertyName("Architecture")] public string Architecture { get; set; } = default!; + /// + /// Variant is the CPU architecture variant (presently ARM-only). + /// [JsonPropertyName("Variant")] public string? Variant { get; set; } + /// + /// OS is the Operating System the image is built to run on. + /// [JsonPropertyName("Os")] public string Os { get; set; } = default!; + /// + /// OsVersion is the version of the Operating System the image is built to + /// run on (especially for Windows). + /// [JsonPropertyName("OsVersion")] public string? OsVersion { get; set; } + /// + /// Size is the total size of the image including all layers it is composed of. + /// [JsonPropertyName("Size")] public long Size { get; set; } = default!; + /// + /// GraphDriver holds information about the storage driver used to store the + /// container's and image's filesystem. + /// [JsonPropertyName("GraphDriver")] public DriverData? GraphDriver { get; set; } + /// + /// RootFS contains information about the image's RootFS, including the + /// layer IDs. + /// [JsonPropertyName("RootFS")] public RootFS RootFS { get; set; } = default!; + /// + /// Metadata of the image in the local cache. + /// + /// This information is local to the daemon, and not part of the image itself. + /// [JsonPropertyName("Metadata")] public Metadata Metadata { get; set; } = default!; + /// + /// Descriptor is the OCI descriptor of the image target. + /// It's only set if the daemon provides a multi-platform image store. + /// + /// WARNING: This is experimental and may change at any time without any backward + /// compatibility. + /// [JsonPropertyName("Descriptor")] public Descriptor? Descriptor { get; set; } + /// + /// Manifests is a list of image manifests available in this image. It + /// provides a more detailed view of the platform-specific image manifests or + /// other image-attached data like build attestations. + /// + /// Only available if the daemon provides a multi-platform image store, the client + /// requests manifests AND does not request a specific platform. + /// + /// WARNING: This is experimental and may change at any time without any backward + /// compatibility. + /// [JsonPropertyName("Manifests")] public IList? Manifests { get; set; } } diff --git a/src/Docker.DotNet/Models/ImageProperties.Generated.cs b/src/Docker.DotNet/Models/ImageProperties.Generated.cs index dc27d5f5..ebd0d62e 100644 --- a/src/Docker.DotNet/Models/ImageProperties.Generated.cs +++ b/src/Docker.DotNet/Models/ImageProperties.Generated.cs @@ -3,12 +3,23 @@ namespace Docker.DotNet.Models { public class ImageProperties // (image.ImageProperties) { + /// + /// Platform is the OCI platform object describing the platform of the image. + /// + /// Required: true + /// [JsonPropertyName("Platform")] public Platform Platform { get; set; } = default!; [JsonPropertyName("Size")] public ImagePropertiesSize Size { get; set; } = default!; + /// + /// Containers is an array containing the IDs of the containers that are + /// using this image. + /// + /// Required: true + /// [JsonPropertyName("Containers")] public IList Containers { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ImageSearchResponse.Generated.cs b/src/Docker.DotNet/Models/ImageSearchResponse.Generated.cs index e7411d50..38f12c47 100644 --- a/src/Docker.DotNet/Models/ImageSearchResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImageSearchResponse.Generated.cs @@ -1,20 +1,40 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SearchResult describes a search result returned from a registry + /// public class ImageSearchResponse // (registry.SearchResult) { + /// + /// StarCount indicates the number of stars this repository has + /// [JsonPropertyName("star_count")] public long StarCount { get; set; } = default!; + /// + /// IsOfficial is true if the result is from an official repository. + /// [JsonPropertyName("is_official")] public bool IsOfficial { get; set; } = default!; + /// + /// Name is the name of the repository + /// [JsonPropertyName("name")] public string Name { get; set; } = default!; + /// + /// IsAutomated indicates whether the result is automated. + /// + /// Deprecated: the "is_automated" field is deprecated and will always be "false". + /// [JsonPropertyName("is_automated")] public bool IsAutomated { get; set; } = default!; + /// + /// Description is a textual description of the repository + /// [JsonPropertyName("description")] public string Description { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ImagesListResponse.Generated.cs b/src/Docker.DotNet/Models/ImagesListResponse.Generated.cs index dd2b53da..82b14675 100644 --- a/src/Docker.DotNet/Models/ImagesListResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImagesListResponse.Generated.cs @@ -3,36 +3,126 @@ namespace Docker.DotNet.Models { public class ImagesListResponse // (image.Summary) { + /// + /// Number of containers using this image. Includes both stopped and running + /// containers. + /// + /// This size is not calculated by default, and depends on which API endpoint + /// is used. `-1` indicates that the value has not been set / calculated. + /// + /// Required: true + /// [JsonPropertyName("Containers")] public long Containers { get; set; } = default!; + /// + /// Date and time at which the image was created as a Unix timestamp + /// (number of seconds since EPOCH). + /// + /// Required: true + /// [JsonPropertyName("Created")] public DateTime Created { get; set; } = default!; + /// + /// ID is the content-addressable ID of an image. + /// + /// This identifier is a content-addressable digest calculated from the + /// image's configuration (which includes the digests of layers used by + /// the image). + /// + /// Note that this digest differs from the `RepoDigests` below, which + /// holds digests of image manifests that reference the image. + /// + /// Required: true + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// User-defined key/value metadata. + /// Required: true + /// [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// ID of the parent image. + /// + /// Depending on how the image was created, this field may be empty and + /// is only set for images that were built/created locally. This field + /// is empty if the image was pulled from an image registry. + /// + /// Required: true + /// [JsonPropertyName("ParentId")] public string ParentID { get; set; } = default!; + /// + /// Descriptor is the OCI descriptor of the image target. + /// It's only set if the daemon provides a multi-platform image store. + /// + /// WARNING: This is experimental and may change at any time without any backward + /// compatibility. + /// [JsonPropertyName("Descriptor")] public Descriptor? Descriptor { get; set; } + /// + /// Manifests is a list of image manifests available in this image. It + /// provides a more detailed view of the platform-specific image manifests or + /// other image-attached data like build attestations. + /// + /// WARNING: This is experimental and may change at any time without any backward + /// compatibility. + /// [JsonPropertyName("Manifests")] public IList? Manifests { get; set; } + /// + /// List of content-addressable digests of locally available image manifests + /// that the image is referenced from. Multiple manifests can refer to the + /// same image. + /// + /// These digests are usually only available if the image was either pulled + /// from a registry, or if the image was pushed to a registry, which is when + /// the manifest is generated and its digest calculated. + /// + /// Required: true + /// [JsonPropertyName("RepoDigests")] public IList RepoDigests { get; set; } = default!; + /// + /// List of image names/tags in the local image cache that reference this + /// image. + /// + /// Multiple image tags can refer to the same image, and this list may be + /// empty if no tags reference the image, in which case the image is + /// "untagged", in which case it can still be referenced by its ID. + /// + /// Required: true + /// [JsonPropertyName("RepoTags")] public IList RepoTags { get; set; } = default!; + /// + /// Total size of image layers that are shared between this image and other + /// images. + /// + /// This size is not calculated by default. `-1` indicates that the value + /// has not been set / calculated. + /// + /// Required: true + /// [JsonPropertyName("SharedSize")] public long SharedSize { get; set; } = default!; + /// + /// Total size of the image including all layers it is composed of. + /// + /// Required: true + /// [JsonPropertyName("Size")] public long Size { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ImagesPruneResponse.Generated.cs b/src/Docker.DotNet/Models/ImagesPruneResponse.Generated.cs index dd2047c6..fbedfedb 100644 --- a/src/Docker.DotNet/Models/ImagesPruneResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ImagesPruneResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PruneReport contains the response for Engine API: + /// POST "/images/prune" + /// public class ImagesPruneResponse // (image.PruneReport) { [JsonPropertyName("ImagesDeleted")] diff --git a/src/Docker.DotNet/Models/IndexInfo.Generated.cs b/src/Docker.DotNet/Models/IndexInfo.Generated.cs index fd413e24..65fc2f2e 100644 --- a/src/Docker.DotNet/Models/IndexInfo.Generated.cs +++ b/src/Docker.DotNet/Models/IndexInfo.Generated.cs @@ -1,17 +1,62 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IndexInfo contains information about a registry + /// + /// RepositoryInfo Examples: + /// + /// { + /// "Index" : { + /// "Name" : "docker.io", + /// "Mirrors" : ["https://registry-2.docker.io/v1/", "https://registry-3.docker.io/v1/"], + /// "Secure" : true, + /// "Official" : true, + /// }, + /// "RemoteName" : "library/debian", + /// "LocalName" : "debian", + /// "CanonicalName" : "docker.io/debian" + /// "Official" : true, + /// } + /// + /// { + /// "Index" : { + /// "Name" : "127.0.0.1:5000", + /// "Mirrors" : [], + /// "Secure" : false, + /// "Official" : false, + /// }, + /// "RemoteName" : "user/repo", + /// "LocalName" : "127.0.0.1:5000/user/repo", + /// "CanonicalName" : "127.0.0.1:5000/user/repo", + /// "Official" : false, + /// } + /// public class IndexInfo // (registry.IndexInfo) { + /// + /// Name is the name of the registry, such as "docker.io" + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// Mirrors is a list of mirrors, expressed as URIs + /// [JsonPropertyName("Mirrors")] public IList Mirrors { get; set; } = default!; + /// + /// Secure is set to false if the registry is part of the list of + /// insecure registries. Insecure registries accept HTTP and/or accept + /// HTTPS with certificates from unknown CAs. + /// [JsonPropertyName("Secure")] public bool Secure { get; set; } = default!; + /// + /// Official indicates whether this is an official registry + /// [JsonPropertyName("Official")] public bool Official { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Info.Generated.cs b/src/Docker.DotNet/Models/Info.Generated.cs index 7aa84639..2cdf0158 100644 --- a/src/Docker.DotNet/Models/Info.Generated.cs +++ b/src/Docker.DotNet/Models/Info.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Info represents generic information about swarm. + /// public class Info // (swarm.Info) { [JsonPropertyName("NodeID")] diff --git a/src/Docker.DotNet/Models/JSONError.Generated.cs b/src/Docker.DotNet/Models/JSONError.Generated.cs index 249dba3b..9cb93c6e 100644 --- a/src/Docker.DotNet/Models/JSONError.Generated.cs +++ b/src/Docker.DotNet/Models/JSONError.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Error wraps a concrete Code and Message, Code is + /// an integer error code, Message is the error message. + /// public class JSONError // (jsonstream.Error) { [JsonPropertyName("code")] diff --git a/src/Docker.DotNet/Models/JSONMessage.Generated.cs b/src/Docker.DotNet/Models/JSONMessage.Generated.cs index 17bb3884..39de3134 100644 --- a/src/Docker.DotNet/Models/JSONMessage.Generated.cs +++ b/src/Docker.DotNet/Models/JSONMessage.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// JSONMessage defines a message struct. It describes + /// the created time, where it from, status, ID of the + /// message. It's used for docker events. + /// public class JSONMessage // (jsonstream.Message) { [JsonPropertyName("stream")] diff --git a/src/Docker.DotNet/Models/JSONProgress.Generated.cs b/src/Docker.DotNet/Models/JSONProgress.Generated.cs index 93fe7628..aca0d112 100644 --- a/src/Docker.DotNet/Models/JSONProgress.Generated.cs +++ b/src/Docker.DotNet/Models/JSONProgress.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Progress describes a progress message in a JSON stream. + /// public class JSONProgress // (jsonstream.Progress) { [JsonPropertyName("current")] diff --git a/src/Docker.DotNet/Models/JobStatus.Generated.cs b/src/Docker.DotNet/Models/JobStatus.Generated.cs index 5617f948..eb7ca511 100644 --- a/src/Docker.DotNet/Models/JobStatus.Generated.cs +++ b/src/Docker.DotNet/Models/JobStatus.Generated.cs @@ -1,11 +1,29 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// JobStatus is the status of a job-type service. + /// public class JobStatus // (swarm.JobStatus) { + /// + /// JobIteration is a value increased each time a Job is executed, + /// successfully or otherwise. "Executed", in this case, means the job as a + /// whole has been started, not that an individual Task has been launched. A + /// job is "Executed" when its ServiceSpec is updated. JobIteration can be + /// used to disambiguate Tasks belonging to different executions of a job. + /// + /// Though JobIteration will increase with each subsequent execution, it may + /// not necessarily increase by 1, and so JobIteration should not be used to + /// keep track of the number of times a job has been executed. + /// [JsonPropertyName("JobIteration")] public Version JobIteration { get; set; } = default!; + /// + /// LastExecution is the time that the job was last executed, as observed by + /// Swarm manager. + /// [JsonPropertyName("LastExecution")] public DateTime? LastExecution { get; set; } } diff --git a/src/Docker.DotNet/Models/JoinTokens.Generated.cs b/src/Docker.DotNet/Models/JoinTokens.Generated.cs index b0194a8a..c3ab5fbf 100644 --- a/src/Docker.DotNet/Models/JoinTokens.Generated.cs +++ b/src/Docker.DotNet/Models/JoinTokens.Generated.cs @@ -1,11 +1,20 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// JoinTokens contains the tokens workers and managers need to join the swarm. + /// public class JoinTokens // (swarm.JoinTokens) { + /// + /// Worker is the join token workers may use to join the swarm. + /// [JsonPropertyName("Worker")] public string Worker { get; set; } = default!; + /// + /// Manager is the join token managers may use to join the swarm. + /// [JsonPropertyName("Manager")] public string Manager { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/LogConfig.Generated.cs b/src/Docker.DotNet/Models/LogConfig.Generated.cs index 52410b2a..8796c0af 100644 --- a/src/Docker.DotNet/Models/LogConfig.Generated.cs +++ b/src/Docker.DotNet/Models/LogConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// LogConfig represents the logging configuration of the container. + /// public class LogConfig // (container.LogConfig) { [JsonPropertyName("Type")] diff --git a/src/Docker.DotNet/Models/ManagerStatus.Generated.cs b/src/Docker.DotNet/Models/ManagerStatus.Generated.cs index 6c63a630..bbfcc2af 100644 --- a/src/Docker.DotNet/Models/ManagerStatus.Generated.cs +++ b/src/Docker.DotNet/Models/ManagerStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ManagerStatus represents the status of a manager. + /// public class ManagerStatus // (swarm.ManagerStatus) { [JsonPropertyName("Leader")] diff --git a/src/Docker.DotNet/Models/ManifestSummary.Generated.cs b/src/Docker.DotNet/Models/ManifestSummary.Generated.cs index 57761b48..ec8f023c 100644 --- a/src/Docker.DotNet/Models/ManifestSummary.Generated.cs +++ b/src/Docker.DotNet/Models/ManifestSummary.Generated.cs @@ -3,24 +3,58 @@ namespace Docker.DotNet.Models { public class ManifestSummary // (image.ManifestSummary) { + /// + /// ID is the content-addressable ID of an image and is the same as the + /// digest of the image manifest. + /// + /// Required: true + /// [JsonPropertyName("ID")] public string ID { get; set; } = default!; + /// + /// Descriptor is the OCI descriptor of the image. + /// + /// Required: true + /// [JsonPropertyName("Descriptor")] public Descriptor Descriptor { get; set; } = default!; + /// + /// Indicates whether all the child content (image config, layers) is + /// fully available locally + /// + /// Required: true + /// [JsonPropertyName("Available")] public bool Available { get; set; } = default!; + /// + /// Size is the size information of the content related to this manifest. + /// Note: These sizes only take the locally available content into account. + /// + /// Required: true + /// [JsonPropertyName("Size")] public ManifestSummarySize Size { get; set; } = default!; + /// + /// Kind is the kind of the image manifest. + /// + /// Required: true + /// [JsonPropertyName("Kind")] public string Kind { get; set; } = default!; + /// + /// Present only if Kind == ManifestKindImage. + /// [JsonPropertyName("ImageData")] public ImageProperties? ImageData { get; set; } + /// + /// Present only if Kind == ManifestKindAttestation. + /// [JsonPropertyName("AttestationData")] public AttestationProperties? AttestationData { get; set; } } diff --git a/src/Docker.DotNet/Models/MemoryStats.Generated.cs b/src/Docker.DotNet/Models/MemoryStats.Generated.cs index b8f2c84c..d2daa78a 100644 --- a/src/Docker.DotNet/Models/MemoryStats.Generated.cs +++ b/src/Docker.DotNet/Models/MemoryStats.Generated.cs @@ -1,29 +1,55 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// MemoryStats aggregates all memory stats since container inception on Linux. + /// Windows returns stats for commit and private working set only. + /// public class MemoryStats // (container.MemoryStats) { + /// + /// current res_counter usage for memory + /// [JsonPropertyName("usage")] public ulong? Usage { get; set; } + /// + /// maximum usage ever recorded. + /// [JsonPropertyName("max_usage")] public ulong? MaxUsage { get; set; } + /// + /// TODO(vishh): Export these as stronger types. + /// all the stats exported via memory.stat. + /// [JsonPropertyName("stats")] public IDictionary? Stats { get; set; } + /// + /// number of times memory usage hits limits. + /// [JsonPropertyName("failcnt")] public ulong? Failcnt { get; set; } [JsonPropertyName("limit")] public ulong? Limit { get; set; } + /// + /// committed bytes + /// [JsonPropertyName("commitbytes")] public ulong? Commit { get; set; } + /// + /// peak committed bytes + /// [JsonPropertyName("commitpeakbytes")] public ulong? CommitPeak { get; set; } + /// + /// private working set + /// [JsonPropertyName("privateworkingset")] public ulong? PrivateWorkingSet { get; set; } } diff --git a/src/Docker.DotNet/Models/Message.Generated.cs b/src/Docker.DotNet/Models/Message.Generated.cs index b8fc044b..a0aa2e47 100644 --- a/src/Docker.DotNet/Models/Message.Generated.cs +++ b/src/Docker.DotNet/Models/Message.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Message represents the information an event contains + /// public class Message // (events.Message) { [JsonPropertyName("Type")] @@ -12,6 +15,9 @@ public class Message // (events.Message) [JsonPropertyName("Actor")] public Actor Actor { get; set; } = default!; + /// + /// Engine events are local scope. Cluster events are swarm scope. + /// [JsonPropertyName("scope")] public string? Scope { get; set; } diff --git a/src/Docker.DotNet/Models/Meta.Generated.cs b/src/Docker.DotNet/Models/Meta.Generated.cs index da3d9d5a..55ccf616 100644 --- a/src/Docker.DotNet/Models/Meta.Generated.cs +++ b/src/Docker.DotNet/Models/Meta.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Meta is a base object inherited by most of the other once. + /// public class Meta // (swarm.Meta) { [JsonPropertyName("Version")] diff --git a/src/Docker.DotNet/Models/Metadata.Generated.cs b/src/Docker.DotNet/Models/Metadata.Generated.cs index 226f18d8..aad3fa3c 100644 --- a/src/Docker.DotNet/Models/Metadata.Generated.cs +++ b/src/Docker.DotNet/Models/Metadata.Generated.cs @@ -1,8 +1,14 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Metadata contains engine-local data about the image. + /// public class Metadata // (image.Metadata) { + /// + /// LastTagTime is the date and time at which the image was last tagged. + /// [JsonPropertyName("LastTagTime")] public DateTime? LastTagTime { get; set; } } diff --git a/src/Docker.DotNet/Models/Mount.Generated.cs b/src/Docker.DotNet/Models/Mount.Generated.cs index 227fcd64..a64d0d20 100644 --- a/src/Docker.DotNet/Models/Mount.Generated.cs +++ b/src/Docker.DotNet/Models/Mount.Generated.cs @@ -1,11 +1,19 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Mount represents a mount (volume). + /// public class Mount // (mount.Mount) { [JsonPropertyName("Type")] public string? Type { get; set; } + /// + /// Source specifies the name of the mount. Depending on mount type, this + /// may be a volume name or a host path, or even ignored. + /// Source is not supported for tmpfs (must be an empty value) + /// [JsonPropertyName("Source")] public string? Source { get; set; } diff --git a/src/Docker.DotNet/Models/MountPoint.Generated.cs b/src/Docker.DotNet/Models/MountPoint.Generated.cs index 5ceff8cd..2b9f3aa9 100644 --- a/src/Docker.DotNet/Models/MountPoint.Generated.cs +++ b/src/Docker.DotNet/Models/MountPoint.Generated.cs @@ -1,29 +1,72 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// MountPoint represents a mount point configuration inside the container. + /// This is used for reporting the mountpoints in use by a container. + /// public class MountPoint // (container.MountPoint) { + /// + /// Type is the type of mount, see [mount.Type] definitions for details. + /// [JsonPropertyName("Type")] public string? Type { get; set; } + /// + /// Name is the name reference to the underlying data defined by `Source` + /// e.g., the volume name. + /// [JsonPropertyName("Name")] public string? Name { get; set; } + /// + /// Source is the source location of the mount. + /// + /// For volumes, this contains the storage location of the volume (within + /// `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains + /// the source (host) part of the bind-mount. For `tmpfs` mount points, this + /// field is empty. + /// [JsonPropertyName("Source")] public string Source { get; set; } = default!; + /// + /// Destination is the path relative to the container root (`/`) where the + /// Source is mounted inside the container. + /// [JsonPropertyName("Destination")] public string Destination { get; set; } = default!; + /// + /// Driver is the volume driver used to create the volume (if it is a volume). + /// [JsonPropertyName("Driver")] public string? Driver { get; set; } + /// + /// Mode is a comma separated list of options supplied by the user when + /// creating the bind/volume mount. + /// + /// The default is platform-specific (`"z"` on Linux, empty on Windows). + /// [JsonPropertyName("Mode")] public string Mode { get; set; } = default!; + /// + /// RW indicates whether the mount is mounted writable (read-write). + /// [JsonPropertyName("RW")] public bool RW { get; set; } = default!; + /// + /// Propagation describes how mounts are propagated from the host into the + /// mount point, and vice-versa. Refer to the Linux kernel documentation + /// for details: + /// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt + /// + /// This field is not used on Windows. + /// [JsonPropertyName("Propagation")] public string Propagation { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/NamedGenericResource.Generated.cs b/src/Docker.DotNet/Models/NamedGenericResource.Generated.cs index 135a3f1a..f164fa49 100644 --- a/src/Docker.DotNet/Models/NamedGenericResource.Generated.cs +++ b/src/Docker.DotNet/Models/NamedGenericResource.Generated.cs @@ -1,6 +1,12 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NamedGenericResource represents a "user defined" resource which is defined + /// as a string. + /// "Kind" is used to describe the Kind of a resource (e.g: "GPU", "FPGA", "SSD", ...) + /// Value is used to identify the resource (GPU="UUID-1", FPGA="/dev/sdb5", ...) + /// public class NamedGenericResource // (swarm.NamedGenericResource) { [JsonPropertyName("Kind")] diff --git a/src/Docker.DotNet/Models/Network.Generated.cs b/src/Docker.DotNet/Models/Network.Generated.cs index 0655c5aa..8f361307 100644 --- a/src/Docker.DotNet/Models/Network.Generated.cs +++ b/src/Docker.DotNet/Models/Network.Generated.cs @@ -1,53 +1,139 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Network network + /// + /// swagger:model Network + /// public class Network // (network.Network) { + /// + /// Name of the network. + /// + /// Example: my_network + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// ID that uniquely identifies a network on a single machine. + /// + /// Example: 7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99 + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// Date and time at which the network was created in + /// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + /// + /// Example: 2016-10-19T04:33:30.360899459Z + /// [JsonPropertyName("Created")] public DateTime Created { get; set; } = default!; + /// + /// The level at which the network exists (e.g. `swarm` for cluster-wide + /// or `local` for machine level) + /// + /// Example: local + /// [JsonPropertyName("Scope")] public string Scope { get; set; } = default!; + /// + /// The name of the driver used to create the network (e.g. `bridge`, + /// `overlay`). + /// + /// Example: overlay + /// [JsonPropertyName("Driver")] public string Driver { get; set; } = default!; + /// + /// Whether the network was created with IPv4 enabled. + /// + /// Example: true + /// [JsonPropertyName("EnableIPv4")] public bool EnableIPv4 { get; set; } = default!; + /// + /// Whether the network was created with IPv6 enabled. + /// + /// Example: false + /// [JsonPropertyName("EnableIPv6")] public bool EnableIPv6 { get; set; } = default!; + /// + /// The network's IP Address Management. + /// [JsonPropertyName("IPAM")] public IPAM IPAM { get; set; } = default!; + /// + /// Whether the network is created to only allow internal networking + /// connectivity. + /// + /// Example: false + /// [JsonPropertyName("Internal")] public bool Internal { get; set; } = default!; + /// + /// Whether a global / swarm scope network is manually attachable by regular + /// containers from workers in swarm mode. + /// + /// Example: false + /// [JsonPropertyName("Attachable")] public bool Attachable { get; set; } = default!; + /// + /// Whether the network is providing the routing-mesh for the swarm cluster. + /// + /// Example: false + /// [JsonPropertyName("Ingress")] public bool Ingress { get; set; } = default!; + /// + /// config from + /// [JsonPropertyName("ConfigFrom")] public ConfigReference ConfigFrom { get; set; } = default!; + /// + /// Whether the network is a config-only network. Config-only networks are + /// placeholder networks for network configurations to be used by other + /// networks. Config-only networks cannot be used directly to run containers + /// or services. + /// [JsonPropertyName("ConfigOnly")] public bool ConfigOnly { get; set; } = default!; + /// + /// Network-specific options uses when creating the network. + /// + /// Example: {"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"} + /// [JsonPropertyName("Options")] public IDictionary Options { get; set; } = default!; + /// + /// Metadata specific to the network being created. + /// + /// Example: {"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"} + /// [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// List of peer nodes for an overlay network. This field is only present + /// for overlay networks, and omitted for other network types. + /// [JsonPropertyName("Peers")] public IList? Peers { get; set; } } diff --git a/src/Docker.DotNet/Models/NetworkAddressPool.Generated.cs b/src/Docker.DotNet/Models/NetworkAddressPool.Generated.cs index 41718448..a12c5ff8 100644 --- a/src/Docker.DotNet/Models/NetworkAddressPool.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkAddressPool.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkAddressPool is a temp struct used by [Info] struct. + /// public class NetworkAddressPool // (system.NetworkAddressPool) { [JsonPropertyName("Base")] diff --git a/src/Docker.DotNet/Models/NetworkAttachment.Generated.cs b/src/Docker.DotNet/Models/NetworkAttachment.Generated.cs index bfaef16f..3cf3d20a 100644 --- a/src/Docker.DotNet/Models/NetworkAttachment.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkAttachment.Generated.cs @@ -1,11 +1,19 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkAttachment represents a network attachment. + /// public class NetworkAttachment // (swarm.NetworkAttachment) { [JsonPropertyName("Network")] public SwarmNetwork? Network { get; set; } + /// + /// Addresses contains the IP addresses associated with the endpoint in the network. + /// This field accepts CIDR notation, for example `10.0.0.1/24`, to maintain backwards + /// compatibility, but only the IP address is used. + /// [JsonPropertyName("Addresses")] public IList? Addresses { get; set; } } diff --git a/src/Docker.DotNet/Models/NetworkAttachmentConfig.Generated.cs b/src/Docker.DotNet/Models/NetworkAttachmentConfig.Generated.cs index 8ee573ba..ba1ad01d 100644 --- a/src/Docker.DotNet/Models/NetworkAttachmentConfig.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkAttachmentConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkAttachmentConfig represents the configuration of a network attachment. + /// public class NetworkAttachmentConfig // (swarm.NetworkAttachmentConfig) { [JsonPropertyName("Target")] diff --git a/src/Docker.DotNet/Models/NetworkAttachmentSpec.Generated.cs b/src/Docker.DotNet/Models/NetworkAttachmentSpec.Generated.cs index 7bdc9382..39e3dd04 100644 --- a/src/Docker.DotNet/Models/NetworkAttachmentSpec.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkAttachmentSpec.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkAttachmentSpec represents the runtime spec type for network + /// attachment tasks + /// public class NetworkAttachmentSpec // (swarm.NetworkAttachmentSpec) { [JsonPropertyName("ContainerID")] diff --git a/src/Docker.DotNet/Models/NetworkConnectParameters.Generated.cs b/src/Docker.DotNet/Models/NetworkConnectParameters.Generated.cs index 5f8768e2..9a2d6607 100644 --- a/src/Docker.DotNet/Models/NetworkConnectParameters.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkConnectParameters.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkConnectOptions represents the data to be used to connect a container to the + /// network. + /// public class NetworkConnectParameters // (client.NetworkConnectOptions) { [JsonPropertyName("Container")] diff --git a/src/Docker.DotNet/Models/NetworkDisconnectParameters.Generated.cs b/src/Docker.DotNet/Models/NetworkDisconnectParameters.Generated.cs index d7d084ba..9e2a0079 100644 --- a/src/Docker.DotNet/Models/NetworkDisconnectParameters.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkDisconnectParameters.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkDisconnectOptions represents the data to be used to disconnect a container + /// from the network. + /// public class NetworkDisconnectParameters // (client.NetworkDisconnectOptions) { [JsonPropertyName("Container")] diff --git a/src/Docker.DotNet/Models/NetworkResponse.Generated.cs b/src/Docker.DotNet/Models/NetworkResponse.Generated.cs index e8e91e87..f4d428b3 100644 --- a/src/Docker.DotNet/Models/NetworkResponse.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkResponse.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Inspect The body of the "get network" http response message. + /// + /// swagger:model Inspect + /// public class NetworkResponse // (network.Inspect) { public NetworkResponse() @@ -30,60 +35,153 @@ public NetworkResponse(Network Network) } } + /// + /// Name of the network. + /// + /// Example: my_network + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// ID that uniquely identifies a network on a single machine. + /// + /// Example: 7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99 + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// Date and time at which the network was created in + /// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + /// + /// Example: 2016-10-19T04:33:30.360899459Z + /// [JsonPropertyName("Created")] public DateTime Created { get; set; } = default!; + /// + /// The level at which the network exists (e.g. `swarm` for cluster-wide + /// or `local` for machine level) + /// + /// Example: local + /// [JsonPropertyName("Scope")] public string Scope { get; set; } = default!; + /// + /// The name of the driver used to create the network (e.g. `bridge`, + /// `overlay`). + /// + /// Example: overlay + /// [JsonPropertyName("Driver")] public string Driver { get; set; } = default!; + /// + /// Whether the network was created with IPv4 enabled. + /// + /// Example: true + /// [JsonPropertyName("EnableIPv4")] public bool EnableIPv4 { get; set; } = default!; + /// + /// Whether the network was created with IPv6 enabled. + /// + /// Example: false + /// [JsonPropertyName("EnableIPv6")] public bool EnableIPv6 { get; set; } = default!; + /// + /// The network's IP Address Management. + /// [JsonPropertyName("IPAM")] public IPAM IPAM { get; set; } = default!; + /// + /// Whether the network is created to only allow internal networking + /// connectivity. + /// + /// Example: false + /// [JsonPropertyName("Internal")] public bool Internal { get; set; } = default!; + /// + /// Whether a global / swarm scope network is manually attachable by regular + /// containers from workers in swarm mode. + /// + /// Example: false + /// [JsonPropertyName("Attachable")] public bool Attachable { get; set; } = default!; + /// + /// Whether the network is providing the routing-mesh for the swarm cluster. + /// + /// Example: false + /// [JsonPropertyName("Ingress")] public bool Ingress { get; set; } = default!; + /// + /// config from + /// [JsonPropertyName("ConfigFrom")] public ConfigReference ConfigFrom { get; set; } = default!; + /// + /// Whether the network is a config-only network. Config-only networks are + /// placeholder networks for network configurations to be used by other + /// networks. Config-only networks cannot be used directly to run containers + /// or services. + /// [JsonPropertyName("ConfigOnly")] public bool ConfigOnly { get; set; } = default!; + /// + /// Network-specific options uses when creating the network. + /// + /// Example: {"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"} + /// [JsonPropertyName("Options")] public IDictionary Options { get; set; } = default!; + /// + /// Metadata specific to the network being created. + /// + /// Example: {"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"} + /// [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// List of peer nodes for an overlay network. This field is only present + /// for overlay networks, and omitted for other network types. + /// [JsonPropertyName("Peers")] public IList? Peers { get; set; } + /// + /// Contains endpoints attached to the network. + /// + /// Example: {"19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c":{"EndpointID":"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a","IPv4Address":"172.19.0.2/16","IPv6Address":"","MacAddress":"02:42:ac:13:00:02","Name":"test"}} + /// [JsonPropertyName("Containers")] public IDictionary Containers { get; set; } = default!; + /// + /// List of services using the network. This field is only present for + /// swarm scope networks, and omitted for local scope networks. + /// [JsonPropertyName("Services")] public IDictionary? Services { get; set; } + /// + /// provides runtime information about the network such as the number of allocated IPs. + /// [JsonPropertyName("Status")] public Status? Status { get; set; } } diff --git a/src/Docker.DotNet/Models/NetworkSettings.Generated.cs b/src/Docker.DotNet/Models/NetworkSettings.Generated.cs index 09f1be22..97d41d93 100644 --- a/src/Docker.DotNet/Models/NetworkSettings.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkSettings.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkSettings exposes the network settings in the api + /// public class NetworkSettings // (container.NetworkSettings) { [JsonPropertyName("SandboxID")] @@ -9,6 +12,9 @@ public class NetworkSettings // (container.NetworkSettings) [JsonPropertyName("SandboxKey")] public string SandboxKey { get; set; } = default!; + /// + /// Ports is a collection of [network.PortBinding] indexed by [network.Port] + /// [JsonPropertyName("Ports")] public IDictionary> Ports { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/NetworkSettingsSummary.Generated.cs b/src/Docker.DotNet/Models/NetworkSettingsSummary.Generated.cs index 54473331..898ee823 100644 --- a/src/Docker.DotNet/Models/NetworkSettingsSummary.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkSettingsSummary.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkSettingsSummary provides a summary of container's networks + /// in /containers/json + /// public class NetworkSettingsSummary // (container.NetworkSettingsSummary) { [JsonPropertyName("Networks")] diff --git a/src/Docker.DotNet/Models/NetworkSpec.Generated.cs b/src/Docker.DotNet/Models/NetworkSpec.Generated.cs index 0f41806f..9a19c14d 100644 --- a/src/Docker.DotNet/Models/NetworkSpec.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkSpec represents the spec of a network. + /// public class NetworkSpec // (swarm.NetworkSpec) { public NetworkSpec() diff --git a/src/Docker.DotNet/Models/NetworkStats.Generated.cs b/src/Docker.DotNet/Models/NetworkStats.Generated.cs index d9d43811..027a2e54 100644 --- a/src/Docker.DotNet/Models/NetworkStats.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkStats.Generated.cs @@ -1,35 +1,70 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkStats aggregates the network stats of one container + /// public class NetworkStats // (container.NetworkStats) { + /// + /// Bytes received. Windows and Linux. + /// [JsonPropertyName("rx_bytes")] public ulong RxBytes { get; set; } = default!; + /// + /// Packets received. Windows and Linux. + /// [JsonPropertyName("rx_packets")] public ulong RxPackets { get; set; } = default!; + /// + /// Received errors. Not used on Windows. Note that we don't `omitempty` this + /// field as it is expected in the >=v1.21 API stats structure. + /// [JsonPropertyName("rx_errors")] public ulong RxErrors { get; set; } = default!; + /// + /// Incoming packets dropped. Windows and Linux. + /// [JsonPropertyName("rx_dropped")] public ulong RxDropped { get; set; } = default!; + /// + /// Bytes sent. Windows and Linux. + /// [JsonPropertyName("tx_bytes")] public ulong TxBytes { get; set; } = default!; + /// + /// Packets sent. Windows and Linux. + /// [JsonPropertyName("tx_packets")] public ulong TxPackets { get; set; } = default!; + /// + /// Sent errors. Not used on Windows. Note that we don't `omitempty` this + /// field as it is expected in the >=v1.21 API stats structure. + /// [JsonPropertyName("tx_errors")] public ulong TxErrors { get; set; } = default!; + /// + /// Outgoing packets dropped. Windows and Linux. + /// [JsonPropertyName("tx_dropped")] public ulong TxDropped { get; set; } = default!; + /// + /// Endpoint ID. Not used on Linux. + /// [JsonPropertyName("endpoint_id")] public string? EndpointID { get; set; } + /// + /// Instance ID. Not used on Linux. + /// [JsonPropertyName("instance_id")] public string? InstanceID { get; set; } } diff --git a/src/Docker.DotNet/Models/NetworkTask.Generated.cs b/src/Docker.DotNet/Models/NetworkTask.Generated.cs index fef8a4e6..01381180 100644 --- a/src/Docker.DotNet/Models/NetworkTask.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkTask.Generated.cs @@ -1,17 +1,34 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Task carries the information about one backend task + /// + /// swagger:model Task + /// public class NetworkTask // (network.Task) { + /// + /// name + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// endpoint ID + /// [JsonPropertyName("EndpointID")] public string EndpointID { get; set; } = default!; + /// + /// endpoint IP + /// [JsonPropertyName("EndpointIP")] public string EndpointIP { get; set; } = default!; + /// + /// info + /// [JsonPropertyName("Info")] public IDictionary Info { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/NetworkingConfig.Generated.cs b/src/Docker.DotNet/Models/NetworkingConfig.Generated.cs index c1185520..02f2b690 100644 --- a/src/Docker.DotNet/Models/NetworkingConfig.Generated.cs +++ b/src/Docker.DotNet/Models/NetworkingConfig.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkingConfig represents the container's networking configuration for each of its interfaces + /// Carries the networking configs specified in the `docker run` and `docker network connect` commands + /// public class NetworkingConfig // (network.NetworkingConfig) { [JsonPropertyName("EndpointsConfig")] diff --git a/src/Docker.DotNet/Models/NetworksCreateParameters.Generated.cs b/src/Docker.DotNet/Models/NetworksCreateParameters.Generated.cs index be909822..74bef27a 100644 --- a/src/Docker.DotNet/Models/NetworksCreateParameters.Generated.cs +++ b/src/Docker.DotNet/Models/NetworksCreateParameters.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CreateRequest is the request message sent to the server for network create call. + /// public class NetworksCreateParameters // (network.CreateRequest) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/NetworksCreateResponse.Generated.cs b/src/Docker.DotNet/Models/NetworksCreateResponse.Generated.cs index bd5c78c1..31dcfaa6 100644 --- a/src/Docker.DotNet/Models/NetworksCreateResponse.Generated.cs +++ b/src/Docker.DotNet/Models/NetworksCreateResponse.Generated.cs @@ -1,11 +1,27 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// CreateResponse NetworkCreateResponse + /// + /// # OK response to NetworkCreate operation + /// + /// swagger:model CreateResponse + /// public class NetworksCreateResponse // (network.CreateResponse) { + /// + /// The ID of the created network. + /// Example: b5c4fc71e8022147cd25de22b22173de4e3b170134117172eb595cb91b4e7e5d + /// Required: true + /// [JsonPropertyName("Id")] public string ID { get; set; } = default!; + /// + /// Warnings encountered when creating the container + /// Required: true + /// [JsonPropertyName("Warning")] public string Warning { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/NetworksPruneResponse.Generated.cs b/src/Docker.DotNet/Models/NetworksPruneResponse.Generated.cs index ffe5afcd..876428d5 100644 --- a/src/Docker.DotNet/Models/NetworksPruneResponse.Generated.cs +++ b/src/Docker.DotNet/Models/NetworksPruneResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PruneReport contains the response for Engine API: + /// POST "/networks/prune" + /// public class NetworksPruneResponse // (network.PruneReport) { [JsonPropertyName("NetworksDeleted")] diff --git a/src/Docker.DotNet/Models/NodeCSIInfo.Generated.cs b/src/Docker.DotNet/Models/NodeCSIInfo.Generated.cs index 7f08ef21..8348f496 100644 --- a/src/Docker.DotNet/Models/NodeCSIInfo.Generated.cs +++ b/src/Docker.DotNet/Models/NodeCSIInfo.Generated.cs @@ -1,17 +1,35 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NodeCSIInfo represents information about a CSI plugin available on the node + /// public class NodeCSIInfo // (swarm.NodeCSIInfo) { + /// + /// PluginName is the name of the CSI plugin. + /// [JsonPropertyName("PluginName")] public string? PluginName { get; set; } + /// + /// NodeID is the ID of the node as reported by the CSI plugin. This is + /// different from the swarm node ID. + /// [JsonPropertyName("NodeID")] public string? NodeID { get; set; } + /// + /// MaxVolumesPerNode is the maximum number of volumes that may be published + /// to this node + /// [JsonPropertyName("MaxVolumesPerNode")] public long? MaxVolumesPerNode { get; set; } + /// + /// AccessibleTopology indicates the location of this node in the CSI + /// plugin's topology + /// [JsonPropertyName("AccessibleTopology")] public Topology? AccessibleTopology { get; set; } } diff --git a/src/Docker.DotNet/Models/NodeDescription.Generated.cs b/src/Docker.DotNet/Models/NodeDescription.Generated.cs index 3863c768..58c45290 100644 --- a/src/Docker.DotNet/Models/NodeDescription.Generated.cs +++ b/src/Docker.DotNet/Models/NodeDescription.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NodeDescription represents the description of a node. + /// public class NodeDescription // (swarm.NodeDescription) { [JsonPropertyName("Hostname")] diff --git a/src/Docker.DotNet/Models/NodeListResponse.Generated.cs b/src/Docker.DotNet/Models/NodeListResponse.Generated.cs index fa5f2506..d7e93a03 100644 --- a/src/Docker.DotNet/Models/NodeListResponse.Generated.cs +++ b/src/Docker.DotNet/Models/NodeListResponse.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Node represents a node. + /// public class NodeListResponse // (swarm.Node) { public NodeListResponse() @@ -29,15 +32,30 @@ public NodeListResponse(Meta Meta) [JsonPropertyName("UpdatedAt")] public DateTime? UpdatedAt { get; set; } + /// + /// Spec defines the desired state of the node as specified by the user. + /// The system will honor this and will *never* modify it. + /// [JsonPropertyName("Spec")] public NodeUpdateParameters? Spec { get; set; } + /// + /// Description encapsulates the properties of the Node as reported by the + /// agent. + /// [JsonPropertyName("Description")] public NodeDescription? Description { get; set; } + /// + /// Status provides the current status of the node, as seen by the manager. + /// [JsonPropertyName("Status")] public NodeStatus? Status { get; set; } + /// + /// ManagerStatus provides the current status of the node's manager + /// component, if the node is a manager. + /// [JsonPropertyName("ManagerStatus")] public ManagerStatus? ManagerStatus { get; set; } } diff --git a/src/Docker.DotNet/Models/NodeStatus.Generated.cs b/src/Docker.DotNet/Models/NodeStatus.Generated.cs index 9ff5d3f9..35fb6bd1 100644 --- a/src/Docker.DotNet/Models/NodeStatus.Generated.cs +++ b/src/Docker.DotNet/Models/NodeStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NodeStatus represents the status of a node. + /// public class NodeStatus // (swarm.NodeStatus) { [JsonPropertyName("State")] diff --git a/src/Docker.DotNet/Models/NodeUpdateParameters.Generated.cs b/src/Docker.DotNet/Models/NodeUpdateParameters.Generated.cs index 70e73681..af3f89ce 100644 --- a/src/Docker.DotNet/Models/NodeUpdateParameters.Generated.cs +++ b/src/Docker.DotNet/Models/NodeUpdateParameters.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NodeSpec represents the spec of a node. + /// public class NodeUpdateParameters // (swarm.NodeSpec) { public NodeUpdateParameters() diff --git a/src/Docker.DotNet/Models/OrchestrationConfig.Generated.cs b/src/Docker.DotNet/Models/OrchestrationConfig.Generated.cs index 05cdf4dd..c0838787 100644 --- a/src/Docker.DotNet/Models/OrchestrationConfig.Generated.cs +++ b/src/Docker.DotNet/Models/OrchestrationConfig.Generated.cs @@ -1,8 +1,15 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// OrchestrationConfig represents orchestration configuration. + /// public class OrchestrationConfig // (swarm.OrchestrationConfig) { + /// + /// TaskHistoryRetentionLimit is the number of historic tasks to keep per instance or + /// node. If negative, never remove completed or failed tasks. + /// [JsonPropertyName("TaskHistoryRetentionLimit")] public long? TaskHistoryRetentionLimit { get; set; } } diff --git a/src/Docker.DotNet/Models/Peer.Generated.cs b/src/Docker.DotNet/Models/Peer.Generated.cs index 10664463..ecc2acd7 100644 --- a/src/Docker.DotNet/Models/Peer.Generated.cs +++ b/src/Docker.DotNet/Models/Peer.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Peer represents a peer. + /// public class Peer // (swarm.Peer) { [JsonPropertyName("NodeID")] diff --git a/src/Docker.DotNet/Models/PeerInfo.Generated.cs b/src/Docker.DotNet/Models/PeerInfo.Generated.cs index c6c29709..fbc4a058 100644 --- a/src/Docker.DotNet/Models/PeerInfo.Generated.cs +++ b/src/Docker.DotNet/Models/PeerInfo.Generated.cs @@ -1,11 +1,24 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PeerInfo represents one peer of an overlay network. + /// + /// swagger:model PeerInfo + /// public class PeerInfo // (network.PeerInfo) { + /// + /// ID of the peer-node in the Swarm cluster. + /// Example: 6869d7c1732b + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// IP-address of the peer-node in the Swarm cluster. + /// Example: 10.133.77.91 + /// [JsonPropertyName("IP")] public string IP { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PidsStats.Generated.cs b/src/Docker.DotNet/Models/PidsStats.Generated.cs index fa55fe77..424e3f20 100644 --- a/src/Docker.DotNet/Models/PidsStats.Generated.cs +++ b/src/Docker.DotNet/Models/PidsStats.Generated.cs @@ -1,11 +1,21 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PidsStats contains the stats of a container's pids + /// public class PidsStats // (container.PidsStats) { + /// + /// Current is the number of pids in the cgroup + /// [JsonPropertyName("current")] public ulong? Current { get; set; } + /// + /// Limit is the hard limit on the number of pids in the cgroup. + /// A "Limit" of 0 means that there is no limit. + /// [JsonPropertyName("limit")] public ulong? Limit { get; set; } } diff --git a/src/Docker.DotNet/Models/Placement.Generated.cs b/src/Docker.DotNet/Models/Placement.Generated.cs index 250f5116..dfd2a264 100644 --- a/src/Docker.DotNet/Models/Placement.Generated.cs +++ b/src/Docker.DotNet/Models/Placement.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Placement represents orchestration parameters. + /// public class Placement // (swarm.Placement) { [JsonPropertyName("Constraints")] @@ -12,6 +15,11 @@ public class Placement // (swarm.Placement) [JsonPropertyName("MaxReplicas")] public ulong? MaxReplicas { get; set; } + /// + /// Platforms stores all the platforms that the image can run on. + /// This field is used in the platform filter for scheduling. If empty, + /// then the platform filter is off, meaning there are no scheduling restrictions. + /// [JsonPropertyName("Platforms")] public IList? Platforms { get; set; } } diff --git a/src/Docker.DotNet/Models/PlacementPreference.Generated.cs b/src/Docker.DotNet/Models/PlacementPreference.Generated.cs index 63666224..05318255 100644 --- a/src/Docker.DotNet/Models/PlacementPreference.Generated.cs +++ b/src/Docker.DotNet/Models/PlacementPreference.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PlacementPreference provides a way to make the scheduler aware of factors + /// such as topology. + /// public class PlacementPreference // (swarm.PlacementPreference) { [JsonPropertyName("Spread")] diff --git a/src/Docker.DotNet/Models/PlatformInfo.Generated.cs b/src/Docker.DotNet/Models/PlatformInfo.Generated.cs index 232c5064..64d77242 100644 --- a/src/Docker.DotNet/Models/PlatformInfo.Generated.cs +++ b/src/Docker.DotNet/Models/PlatformInfo.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PlatformInfo holds information about the platform (product name) the + /// server is running on. + /// public class PlatformInfo // (system.PlatformInfo) { + /// + /// Name is the name of the platform (for example, "Docker Engine - Community", + /// or "Docker Desktop 4.49.0 (208003)") + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Plugin.Generated.cs b/src/Docker.DotNet/Models/Plugin.Generated.cs index d9a9ed4d..e5cbc3f7 100644 --- a/src/Docker.DotNet/Models/Plugin.Generated.cs +++ b/src/Docker.DotNet/Models/Plugin.Generated.cs @@ -1,23 +1,54 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Plugin A plugin for the Engine API + /// + /// swagger:model Plugin + /// public class Plugin // (plugin.Plugin) { + /// + /// config + /// Required: true + /// [JsonPropertyName("Config")] public PluginConfig Config { get; set; } = default!; + /// + /// True if the plugin is running. False if the plugin is not running, only installed. + /// Example: true + /// Required: true + /// [JsonPropertyName("Enabled")] public bool Enabled { get; set; } = default!; + /// + /// Id + /// Example: 5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078 + /// [JsonPropertyName("Id")] public string? ID { get; set; } + /// + /// name + /// Example: tiborvass/sample-volume-plugin + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// plugin remote reference used to push/pull the plugin + /// Example: localhost:5000/tiborvass/sample-volume-plugin:latest + /// [JsonPropertyName("PluginReference")] public string? PluginReference { get; set; } + /// + /// settings + /// Required: true + /// [JsonPropertyName("Settings")] public PluginSettings Settings { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginArgs.Generated.cs b/src/Docker.DotNet/Models/PluginArgs.Generated.cs index e255fa09..a7edcdd6 100644 --- a/src/Docker.DotNet/Models/PluginArgs.Generated.cs +++ b/src/Docker.DotNet/Models/PluginArgs.Generated.cs @@ -1,17 +1,40 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Args args + /// + /// swagger:model Args + /// public class PluginArgs // (plugin.Args) { + /// + /// description + /// Example: command line arguments + /// Required: true + /// [JsonPropertyName("Description")] public string Description { get; set; } = default!; + /// + /// name + /// Example: args + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// settable + /// Required: true + /// [JsonPropertyName("Settable")] public IList Settable { get; set; } = default!; + /// + /// value + /// Required: true + /// [JsonPropertyName("Value")] public IList Value { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginConfig.Generated.cs b/src/Docker.DotNet/Models/PluginConfig.Generated.cs index 1efd74e4..91f3e240 100644 --- a/src/Docker.DotNet/Models/PluginConfig.Generated.cs +++ b/src/Docker.DotNet/Models/PluginConfig.Generated.cs @@ -1,50 +1,121 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Config The config of a plugin. + /// + /// swagger:model Config + /// public class PluginConfig // (plugin.Config) { + /// + /// args + /// Required: true + /// [JsonPropertyName("Args")] public PluginArgs Args { get; set; } = default!; + /// + /// description + /// Example: A sample volume plugin for Docker + /// Required: true + /// [JsonPropertyName("Description")] public string Description { get; set; } = default!; + /// + /// documentation + /// Example: https://docs.docker.com/engine/extend/plugins/ + /// Required: true + /// [JsonPropertyName("Documentation")] public string Documentation { get; set; } = default!; + /// + /// entrypoint + /// Example: ["/usr/bin/sample-volume-plugin","/data"] + /// Required: true + /// [JsonPropertyName("Entrypoint")] public IList Entrypoint { get; set; } = default!; + /// + /// env + /// Example: [{"Description":"If set, prints debug messages","Name":"DEBUG","Settable":null,"Value":"0"}] + /// Required: true + /// [JsonPropertyName("Env")] public IList Env { get; set; } = default!; + /// + /// interface + /// Required: true + /// [JsonPropertyName("Interface")] public PluginInterface Interface { get; set; } = default!; + /// + /// ipc host + /// Example: false + /// Required: true + /// [JsonPropertyName("IpcHost")] public bool IpcHost { get; set; } = default!; + /// + /// linux + /// Required: true + /// [JsonPropertyName("Linux")] public PluginLinuxConfig Linux { get; set; } = default!; + /// + /// mounts + /// Required: true + /// [JsonPropertyName("Mounts")] public IList Mounts { get; set; } = default!; + /// + /// network + /// Required: true + /// [JsonPropertyName("Network")] public PluginNetworkConfig Network { get; set; } = default!; + /// + /// pid host + /// Example: false + /// Required: true + /// [JsonPropertyName("PidHost")] public bool PidHost { get; set; } = default!; + /// + /// propagated mount + /// Example: /mnt/volumes + /// Required: true + /// [JsonPropertyName("PropagatedMount")] public string PropagatedMount { get; set; } = default!; + /// + /// user + /// [JsonPropertyName("User")] public PluginUser? User { get; set; } + /// + /// work dir + /// Example: /bin/ + /// Required: true + /// [JsonPropertyName("WorkDir")] public string WorkDir { get; set; } = default!; + /// + /// rootfs + /// [JsonPropertyName("rootfs")] public PluginRootFS? Rootfs { get; set; } } diff --git a/src/Docker.DotNet/Models/PluginDescription.Generated.cs b/src/Docker.DotNet/Models/PluginDescription.Generated.cs index 2d89a476..b6855453 100644 --- a/src/Docker.DotNet/Models/PluginDescription.Generated.cs +++ b/src/Docker.DotNet/Models/PluginDescription.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PluginDescription represents the description of an engine plugin. + /// public class PluginDescription // (swarm.PluginDescription) { [JsonPropertyName("Type")] diff --git a/src/Docker.DotNet/Models/PluginDevice.Generated.cs b/src/Docker.DotNet/Models/PluginDevice.Generated.cs index a10480c2..efb16504 100644 --- a/src/Docker.DotNet/Models/PluginDevice.Generated.cs +++ b/src/Docker.DotNet/Models/PluginDevice.Generated.cs @@ -1,17 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Device device + /// + /// swagger:model Device + /// public class PluginDevice // (plugin.Device) { + /// + /// description + /// Required: true + /// [JsonPropertyName("Description")] public string Description { get; set; } = default!; + /// + /// name + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// path + /// Example: /dev/fuse + /// Required: true + /// [JsonPropertyName("Path")] public string? Path { get; set; } + /// + /// settable + /// Required: true + /// [JsonPropertyName("Settable")] public IList Settable { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginEnv.Generated.cs b/src/Docker.DotNet/Models/PluginEnv.Generated.cs index 9c0487d2..4a00fa6e 100644 --- a/src/Docker.DotNet/Models/PluginEnv.Generated.cs +++ b/src/Docker.DotNet/Models/PluginEnv.Generated.cs @@ -1,17 +1,38 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Env env + /// + /// swagger:model Env + /// public class PluginEnv // (plugin.Env) { + /// + /// description + /// Required: true + /// [JsonPropertyName("Description")] public string Description { get; set; } = default!; + /// + /// name + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// settable + /// Required: true + /// [JsonPropertyName("Settable")] public IList Settable { get; set; } = default!; + /// + /// value + /// Required: true + /// [JsonPropertyName("Value")] public string? Value { get; set; } } diff --git a/src/Docker.DotNet/Models/PluginInterface.Generated.cs b/src/Docker.DotNet/Models/PluginInterface.Generated.cs index ab60d9d9..81aa1df3 100644 --- a/src/Docker.DotNet/Models/PluginInterface.Generated.cs +++ b/src/Docker.DotNet/Models/PluginInterface.Generated.cs @@ -1,14 +1,34 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Interface The interface between Docker and the plugin + /// + /// swagger:model Interface + /// public class PluginInterface // (plugin.Interface) { + /// + /// Protocol to use for clients connecting to the plugin. + /// Example: some.protocol/v1.0 + /// Enum: ["","moby.plugins.http/v1"] + /// [JsonPropertyName("ProtocolScheme")] public string? ProtocolScheme { get; set; } + /// + /// socket + /// Example: plugins.sock + /// Required: true + /// [JsonPropertyName("Socket")] public string Socket { get; set; } = default!; + /// + /// types + /// Example: ["docker.volumedriver/1.0"] + /// Required: true + /// [JsonPropertyName("Types")] public IList Types { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginLinuxConfig.Generated.cs b/src/Docker.DotNet/Models/PluginLinuxConfig.Generated.cs index 4e6d9370..286e8b7b 100644 --- a/src/Docker.DotNet/Models/PluginLinuxConfig.Generated.cs +++ b/src/Docker.DotNet/Models/PluginLinuxConfig.Generated.cs @@ -1,14 +1,33 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// LinuxConfig linux config + /// + /// swagger:model LinuxConfig + /// public class PluginLinuxConfig // (plugin.LinuxConfig) { + /// + /// allow all devices + /// Example: false + /// Required: true + /// [JsonPropertyName("AllowAllDevices")] public bool AllowAllDevices { get; set; } = default!; + /// + /// capabilities + /// Example: ["CAP_SYS_ADMIN","CAP_SYSLOG"] + /// Required: true + /// [JsonPropertyName("Capabilities")] public IList Capabilities { get; set; } = default!; + /// + /// devices + /// Required: true + /// [JsonPropertyName("Devices")] public IList Devices { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginMount.Generated.cs b/src/Docker.DotNet/Models/PluginMount.Generated.cs index 75583368..d98bb4bc 100644 --- a/src/Docker.DotNet/Models/PluginMount.Generated.cs +++ b/src/Docker.DotNet/Models/PluginMount.Generated.cs @@ -1,26 +1,65 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Mount mount + /// + /// swagger:model Mount + /// public class PluginMount // (plugin.Mount) { + /// + /// description + /// Example: This is a mount that's used by the plugin. + /// Required: true + /// [JsonPropertyName("Description")] public string Description { get; set; } = default!; + /// + /// destination + /// Example: /mnt/state + /// Required: true + /// [JsonPropertyName("Destination")] public string Destination { get; set; } = default!; + /// + /// name + /// Example: some-mount + /// Required: true + /// [JsonPropertyName("Name")] public string Name { get; set; } = default!; + /// + /// options + /// Example: ["rbind","rw"] + /// Required: true + /// [JsonPropertyName("Options")] public IList Options { get; set; } = default!; + /// + /// settable + /// Required: true + /// [JsonPropertyName("Settable")] public IList Settable { get; set; } = default!; + /// + /// source + /// Example: /var/lib/docker/plugins/ + /// Required: true + /// [JsonPropertyName("Source")] public string? Source { get; set; } + /// + /// type + /// Example: bind + /// Required: true + /// [JsonPropertyName("Type")] public string Type { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginNetworkConfig.Generated.cs b/src/Docker.DotNet/Models/PluginNetworkConfig.Generated.cs index ec1937bd..d3309e60 100644 --- a/src/Docker.DotNet/Models/PluginNetworkConfig.Generated.cs +++ b/src/Docker.DotNet/Models/PluginNetworkConfig.Generated.cs @@ -1,8 +1,18 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// NetworkConfig network config + /// + /// swagger:model NetworkConfig + /// public class PluginNetworkConfig // (plugin.NetworkConfig) { + /// + /// type + /// Example: host + /// Required: true + /// [JsonPropertyName("Type")] public string Type { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginPrivilege.Generated.cs b/src/Docker.DotNet/Models/PluginPrivilege.Generated.cs index 14ae979b..89e4fe07 100644 --- a/src/Docker.DotNet/Models/PluginPrivilege.Generated.cs +++ b/src/Docker.DotNet/Models/PluginPrivilege.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Privilege describes a permission the user has to accept + /// upon installing a plugin. + /// public class PluginPrivilege // (plugin.Privilege) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/PluginRootFS.Generated.cs b/src/Docker.DotNet/Models/PluginRootFS.Generated.cs index d07a2fb3..13e483f2 100644 --- a/src/Docker.DotNet/Models/PluginRootFS.Generated.cs +++ b/src/Docker.DotNet/Models/PluginRootFS.Generated.cs @@ -1,11 +1,24 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RootFS root f s + /// + /// swagger:model RootFS + /// public class PluginRootFS // (plugin.RootFS) { + /// + /// diff ids + /// Example: ["sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887","sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"] + /// [JsonPropertyName("diff_ids")] public IList DiffIds { get; set; } = default!; + /// + /// type + /// Example: layers + /// [JsonPropertyName("type")] public string? Type { get; set; } } diff --git a/src/Docker.DotNet/Models/PluginSettings.Generated.cs b/src/Docker.DotNet/Models/PluginSettings.Generated.cs index bc5210a4..4b620005 100644 --- a/src/Docker.DotNet/Models/PluginSettings.Generated.cs +++ b/src/Docker.DotNet/Models/PluginSettings.Generated.cs @@ -1,17 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Settings user-configurable settings for the plugin. + /// + /// swagger:model Settings + /// public class PluginSettings // (plugin.Settings) { + /// + /// args + /// Required: true + /// [JsonPropertyName("Args")] public IList Args { get; set; } = default!; + /// + /// devices + /// Required: true + /// [JsonPropertyName("Devices")] public IList Devices { get; set; } = default!; + /// + /// env + /// Example: ["DEBUG=0"] + /// Required: true + /// [JsonPropertyName("Env")] public IList Env { get; set; } = default!; + /// + /// mounts + /// Required: true + /// [JsonPropertyName("Mounts")] public IList Mounts { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PluginUser.Generated.cs b/src/Docker.DotNet/Models/PluginUser.Generated.cs index a0cbf33d..a713fa85 100644 --- a/src/Docker.DotNet/Models/PluginUser.Generated.cs +++ b/src/Docker.DotNet/Models/PluginUser.Generated.cs @@ -1,11 +1,24 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// User user + /// + /// swagger:model User + /// public class PluginUser // (plugin.User) { + /// + /// g ID + /// Example: 1000 + /// [JsonPropertyName("GID")] public uint? GID { get; set; } + /// + /// UID + /// Example: 1000 + /// [JsonPropertyName("UID")] public uint? UID { get; set; } } diff --git a/src/Docker.DotNet/Models/PluginsInfo.Generated.cs b/src/Docker.DotNet/Models/PluginsInfo.Generated.cs index cc1ec4f4..34a20fa6 100644 --- a/src/Docker.DotNet/Models/PluginsInfo.Generated.cs +++ b/src/Docker.DotNet/Models/PluginsInfo.Generated.cs @@ -1,17 +1,33 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PluginsInfo is a temp struct holding Plugins name + /// registered with docker daemon. It is used by [Info] struct + /// public class PluginsInfo // (system.PluginsInfo) { + /// + /// List of Volume plugins registered + /// [JsonPropertyName("Volume")] public IList Volume { get; set; } = default!; + /// + /// List of Network plugins registered + /// [JsonPropertyName("Network")] public IList Network { get; set; } = default!; + /// + /// List of Authorization plugins registered + /// [JsonPropertyName("Authorization")] public IList Authorization { get; set; } = default!; + /// + /// List of Log plugins registered + /// [JsonPropertyName("Log")] public IList Log { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PortBinding.Generated.cs b/src/Docker.DotNet/Models/PortBinding.Generated.cs index 904723f7..2481a044 100644 --- a/src/Docker.DotNet/Models/PortBinding.Generated.cs +++ b/src/Docker.DotNet/Models/PortBinding.Generated.cs @@ -1,11 +1,20 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PortBinding represents a binding between a Host IP address and a Host Port. + /// public class PortBinding // (network.PortBinding) { + /// + /// HostIP is the host IP Address + /// [JsonPropertyName("HostIp")] public string HostIP { get; set; } = default!; + /// + /// HostPort is the host port number + /// [JsonPropertyName("HostPort")] public string HostPort { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/PortConfig.Generated.cs b/src/Docker.DotNet/Models/PortConfig.Generated.cs index 4f55f229..88d84a06 100644 --- a/src/Docker.DotNet/Models/PortConfig.Generated.cs +++ b/src/Docker.DotNet/Models/PortConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PortConfig represents the config of a port. + /// public class PortConfig // (swarm.PortConfig) { [JsonPropertyName("Name")] @@ -9,12 +12,21 @@ public class PortConfig // (swarm.PortConfig) [JsonPropertyName("Protocol")] public string? Protocol { get; set; } + /// + /// TargetPort is the port inside the container + /// [JsonPropertyName("TargetPort")] public uint? TargetPort { get; set; } + /// + /// PublishedPort is the port on the swarm hosts + /// [JsonPropertyName("PublishedPort")] public uint? PublishedPort { get; set; } + /// + /// PublishMode is the mode in which port is published + /// [JsonPropertyName("PublishMode")] public string? PublishMode { get; set; } } diff --git a/src/Docker.DotNet/Models/PortStatus.Generated.cs b/src/Docker.DotNet/Models/PortStatus.Generated.cs index e0f6c0de..2cd8c9a8 100644 --- a/src/Docker.DotNet/Models/PortStatus.Generated.cs +++ b/src/Docker.DotNet/Models/PortStatus.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PortStatus represents the port status of a task's host ports whose + /// service has published host ports + /// public class PortStatus // (swarm.PortStatus) { [JsonPropertyName("Ports")] diff --git a/src/Docker.DotNet/Models/PortSummary.Generated.cs b/src/Docker.DotNet/Models/PortSummary.Generated.cs index 9621f71f..c69ec7e8 100644 --- a/src/Docker.DotNet/Models/PortSummary.Generated.cs +++ b/src/Docker.DotNet/Models/PortSummary.Generated.cs @@ -1,17 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PortSummary Describes a port-mapping between the container and the host. + /// + /// Example: {"PrivatePort":8080,"PublicPort":80,"Type":"tcp"} + /// + /// swagger:model PortSummary + /// public class PortSummary // (container.PortSummary) { + /// + /// Host IP address that the container's port is mapped to + /// [JsonPropertyName("IP")] public string? IP { get; set; } + /// + /// Port on the container + /// Required: true + /// [JsonPropertyName("PrivatePort")] public ushort PrivatePort { get; set; } = default!; + /// + /// Port exposed on the host + /// [JsonPropertyName("PublicPort")] public ushort? PublicPort { get; set; } + /// + /// type + /// Required: true + /// Enum: ["tcp","udp","sctp"] + /// [JsonPropertyName("Type")] public string Type { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Privileges.Generated.cs b/src/Docker.DotNet/Models/Privileges.Generated.cs index 29f18344..84423e30 100644 --- a/src/Docker.DotNet/Models/Privileges.Generated.cs +++ b/src/Docker.DotNet/Models/Privileges.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Privileges defines the security options for the container. + /// public class Privileges // (swarm.Privileges) { [JsonPropertyName("CredentialSpec")] diff --git a/src/Docker.DotNet/Models/PublishStatus.Generated.cs b/src/Docker.DotNet/Models/PublishStatus.Generated.cs index 83855e00..89958533 100644 --- a/src/Docker.DotNet/Models/PublishStatus.Generated.cs +++ b/src/Docker.DotNet/Models/PublishStatus.Generated.cs @@ -1,14 +1,28 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PublishStatus represents the status of the volume as published to an + /// individual node + /// public class PublishStatus // (volume.PublishStatus) { + /// + /// NodeID is the ID of the swarm node this Volume is published to. + /// [JsonPropertyName("NodeID")] public string? NodeID { get; set; } + /// + /// State is the publish state of the volume. + /// [JsonPropertyName("State")] public string? State { get; set; } + /// + /// PublishContext is the PublishContext returned by the CSI plugin when + /// a volume is published. + /// [JsonPropertyName("PublishContext")] public IDictionary? PublishContext { get; set; } } diff --git a/src/Docker.DotNet/Models/RaftConfig.Generated.cs b/src/Docker.DotNet/Models/RaftConfig.Generated.cs index d29d6d99..f2902bb1 100644 --- a/src/Docker.DotNet/Models/RaftConfig.Generated.cs +++ b/src/Docker.DotNet/Models/RaftConfig.Generated.cs @@ -1,20 +1,50 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RaftConfig represents raft configuration. + /// public class RaftConfig // (swarm.RaftConfig) { + /// + /// SnapshotInterval is the number of log entries between snapshots. + /// [JsonPropertyName("SnapshotInterval")] public ulong? SnapshotInterval { get; set; } + /// + /// KeepOldSnapshots is the number of snapshots to keep beyond the + /// current snapshot. + /// [JsonPropertyName("KeepOldSnapshots")] public ulong? KeepOldSnapshots { get; set; } + /// + /// LogEntriesForSlowFollowers is the number of log entries to keep + /// around to sync up slow followers after a snapshot is created. + /// [JsonPropertyName("LogEntriesForSlowFollowers")] public ulong? LogEntriesForSlowFollowers { get; set; } + /// + /// ElectionTick is the number of ticks that a follower will wait for a message + /// from the leader before becoming a candidate and starting an election. + /// ElectionTick must be greater than HeartbeatTick. + /// + /// A tick currently defaults to one second, so these translate directly to + /// seconds currently, but this is NOT guaranteed. + /// [JsonPropertyName("ElectionTick")] public long ElectionTick { get; set; } = default!; + /// + /// HeartbeatTick is the number of ticks between heartbeats. Every + /// HeartbeatTick ticks, the leader will send a heartbeat to the + /// followers. + /// + /// A tick currently defaults to one second, so these translate directly to + /// seconds currently, but this is NOT guaranteed. + /// [JsonPropertyName("HeartbeatTick")] public long HeartbeatTick { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ReplicatedJob.Generated.cs b/src/Docker.DotNet/Models/ReplicatedJob.Generated.cs index 9b1bf954..5648c19c 100644 --- a/src/Docker.DotNet/Models/ReplicatedJob.Generated.cs +++ b/src/Docker.DotNet/Models/ReplicatedJob.Generated.cs @@ -1,11 +1,30 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ReplicatedJob is the a type of Service which executes a defined Tasks + /// in parallel until the specified number of Tasks have succeeded. + /// public class ReplicatedJob // (swarm.ReplicatedJob) { + /// + /// MaxConcurrent indicates the maximum number of Tasks that should be + /// executing simultaneously for this job at any given time. There may be + /// fewer Tasks that MaxConcurrent executing simultaneously; for example, if + /// there are fewer than MaxConcurrent tasks needed to reach + /// TotalCompletions. + /// + /// If this field is empty, it will default to a max concurrency of 1. + /// [JsonPropertyName("MaxConcurrent")] public ulong? MaxConcurrent { get; set; } + /// + /// TotalCompletions is the total number of Tasks desired to run to + /// completion. + /// + /// If this field is empty, the value of MaxConcurrent will be used. + /// [JsonPropertyName("TotalCompletions")] public ulong? TotalCompletions { get; set; } } diff --git a/src/Docker.DotNet/Models/ReplicatedService.Generated.cs b/src/Docker.DotNet/Models/ReplicatedService.Generated.cs index 2e05f8e4..92e1406e 100644 --- a/src/Docker.DotNet/Models/ReplicatedService.Generated.cs +++ b/src/Docker.DotNet/Models/ReplicatedService.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ReplicatedService is a kind of ServiceMode. + /// public class ReplicatedService // (swarm.ReplicatedService) { [JsonPropertyName("Replicas")] diff --git a/src/Docker.DotNet/Models/ResourceRequirements.Generated.cs b/src/Docker.DotNet/Models/ResourceRequirements.Generated.cs index 2e578fbd..a4e9d7cb 100644 --- a/src/Docker.DotNet/Models/ResourceRequirements.Generated.cs +++ b/src/Docker.DotNet/Models/ResourceRequirements.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ResourceRequirements represents resources requirements. + /// public class ResourceRequirements // (swarm.ResourceRequirements) { [JsonPropertyName("Limits")] @@ -9,9 +12,20 @@ public class ResourceRequirements // (swarm.ResourceRequirements) [JsonPropertyName("Reservations")] public SwarmResources? Reservations { get; set; } + /// + /// Amount of swap in bytes - can only be used together with a memory limit + /// -1 means unlimited + /// a null pointer keeps the default behaviour of granting twice the memory + /// amount in swap + /// [JsonPropertyName("SwapBytes")] public long? SwapBytes { get; set; } + /// + /// Tune container memory swappiness (0 to 100) - if not specified, defaults + /// to the container OS's default - generally 60, or the value predefined in + /// the image; set to -1 to unset a previously set value + /// [JsonPropertyName("MemorySwappiness")] public long? MemorySwappiness { get; set; } } diff --git a/src/Docker.DotNet/Models/Resources.Generated.cs b/src/Docker.DotNet/Models/Resources.Generated.cs index 2e68a6e3..21b7224c 100644 --- a/src/Docker.DotNet/Models/Resources.Generated.cs +++ b/src/Docker.DotNet/Models/Resources.Generated.cs @@ -1,8 +1,14 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Resources contains container's resources (cgroups config, ulimits...) + /// public class Resources // (container.Resources) { + /// + /// Applicable to all platforms + /// [JsonPropertyName("CpuShares")] public long CPUShares { get; set; } = default!; @@ -12,6 +18,9 @@ public class Resources // (container.Resources) [JsonPropertyName("NanoCpus")] public long NanoCPUs { get; set; } = default!; + /// + /// Applicable to UNIX platforms + /// [JsonPropertyName("CgroupParent")] public string CgroupParent { get; set; } = default!; @@ -78,6 +87,9 @@ public class Resources // (container.Resources) [JsonPropertyName("Ulimits")] public IList Ulimits { get; set; } = default!; + /// + /// Applicable to Windows + /// [JsonPropertyName("CpuCount")] public long CPUCount { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/RestartPolicy.Generated.cs b/src/Docker.DotNet/Models/RestartPolicy.Generated.cs index dffd325f..10963f03 100644 --- a/src/Docker.DotNet/Models/RestartPolicy.Generated.cs +++ b/src/Docker.DotNet/Models/RestartPolicy.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RestartPolicy represents the restart policies of the container. + /// public class RestartPolicy // (container.RestartPolicy) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/RootFS.Generated.cs b/src/Docker.DotNet/Models/RootFS.Generated.cs index f5464f13..f3888f60 100644 --- a/src/Docker.DotNet/Models/RootFS.Generated.cs +++ b/src/Docker.DotNet/Models/RootFS.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RootFS returns Image's RootFS description including the layer IDs. + /// public class RootFS // (image.RootFS) { [JsonPropertyName("Type")] diff --git a/src/Docker.DotNet/Models/RootFSStorage.Generated.cs b/src/Docker.DotNet/Models/RootFSStorage.Generated.cs index 44507f8a..8da09297 100644 --- a/src/Docker.DotNet/Models/RootFSStorage.Generated.cs +++ b/src/Docker.DotNet/Models/RootFSStorage.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RootFSStorage Information about the storage used for the container's root filesystem. + /// + /// swagger:model RootFSStorage + /// public class RootFSStorage // (storage.RootFSStorage) { + /// + /// Information about the snapshot used for the container's root filesystem. + /// [JsonPropertyName("Snapshot")] public RootFSStorageSnapshot? Snapshot { get; set; } } diff --git a/src/Docker.DotNet/Models/RootFSStorageSnapshot.Generated.cs b/src/Docker.DotNet/Models/RootFSStorageSnapshot.Generated.cs index 75e73e1d..3b09d938 100644 --- a/src/Docker.DotNet/Models/RootFSStorageSnapshot.Generated.cs +++ b/src/Docker.DotNet/Models/RootFSStorageSnapshot.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RootFSStorageSnapshot Information about a snapshot backend of the container's root filesystem. + /// + /// swagger:model RootFSStorageSnapshot + /// public class RootFSStorageSnapshot // (storage.RootFSStorageSnapshot) { + /// + /// Name of the snapshotter. + /// [JsonPropertyName("Name")] public string? Name { get; set; } } diff --git a/src/Docker.DotNet/Models/Runtime.Generated.cs b/src/Docker.DotNet/Models/Runtime.Generated.cs index 43fb2e2a..37f04c9d 100644 --- a/src/Docker.DotNet/Models/Runtime.Generated.cs +++ b/src/Docker.DotNet/Models/Runtime.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Runtime describes an OCI runtime + /// public class Runtime // (system.Runtime) { [JsonPropertyName("path")] diff --git a/src/Docker.DotNet/Models/RuntimePrivilege.Generated.cs b/src/Docker.DotNet/Models/RuntimePrivilege.Generated.cs index 504451ef..a04fb912 100644 --- a/src/Docker.DotNet/Models/RuntimePrivilege.Generated.cs +++ b/src/Docker.DotNet/Models/RuntimePrivilege.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RuntimePrivilege describes a permission the user has to accept + /// upon installing a plugin. + /// public class RuntimePrivilege // (swarm.RuntimePrivilege) { [JsonPropertyName("name")] diff --git a/src/Docker.DotNet/Models/RuntimeWithStatus.Generated.cs b/src/Docker.DotNet/Models/RuntimeWithStatus.Generated.cs index a83c26fc..61681689 100644 --- a/src/Docker.DotNet/Models/RuntimeWithStatus.Generated.cs +++ b/src/Docker.DotNet/Models/RuntimeWithStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RuntimeWithStatus extends [Runtime] to hold [RuntimeStatus]. + /// public class RuntimeWithStatus // (system.RuntimeWithStatus) { public RuntimeWithStatus() diff --git a/src/Docker.DotNet/Models/SELinuxContext.Generated.cs b/src/Docker.DotNet/Models/SELinuxContext.Generated.cs index ac5a240f..89a6d003 100644 --- a/src/Docker.DotNet/Models/SELinuxContext.Generated.cs +++ b/src/Docker.DotNet/Models/SELinuxContext.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SELinuxContext contains the SELinux labels of the container. + /// public class SELinuxContext // (swarm.SELinuxContext) { [JsonPropertyName("Disable")] diff --git a/src/Docker.DotNet/Models/SeccompOpts.Generated.cs b/src/Docker.DotNet/Models/SeccompOpts.Generated.cs index cbad1acc..4188c70c 100644 --- a/src/Docker.DotNet/Models/SeccompOpts.Generated.cs +++ b/src/Docker.DotNet/Models/SeccompOpts.Generated.cs @@ -1,11 +1,23 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SeccompOpts defines the options for configuring seccomp on a swarm-managed + /// container. + /// public class SeccompOpts // (swarm.SeccompOpts) { + /// + /// Mode is the SeccompMode used for the container. + /// [JsonPropertyName("Mode")] public string? Mode { get; set; } + /// + /// Profile is the custom seccomp profile as a json object to be used with + /// the container. Mode should be set to SeccompModeCustom when using a + /// custom profile in this manner. + /// [JsonPropertyName("Profile")] public IList? Profile { get; set; } } diff --git a/src/Docker.DotNet/Models/Secret.Generated.cs b/src/Docker.DotNet/Models/Secret.Generated.cs index a288ef92..38bdab89 100644 --- a/src/Docker.DotNet/Models/Secret.Generated.cs +++ b/src/Docker.DotNet/Models/Secret.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Secret represents a secret. + /// public class Secret // (swarm.Secret) { public Secret() diff --git a/src/Docker.DotNet/Models/SecretReference.Generated.cs b/src/Docker.DotNet/Models/SecretReference.Generated.cs index 10e0c13b..038eefff 100644 --- a/src/Docker.DotNet/Models/SecretReference.Generated.cs +++ b/src/Docker.DotNet/Models/SecretReference.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SecretReference is a reference to a secret in swarm + /// public class SecretReference // (swarm.SecretReference) { [JsonPropertyName("File")] diff --git a/src/Docker.DotNet/Models/SecretReferenceFileTarget.Generated.cs b/src/Docker.DotNet/Models/SecretReferenceFileTarget.Generated.cs index 1e852084..aea9a6f9 100644 --- a/src/Docker.DotNet/Models/SecretReferenceFileTarget.Generated.cs +++ b/src/Docker.DotNet/Models/SecretReferenceFileTarget.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SecretReferenceFileTarget is a file target in a secret reference + /// public class SecretReferenceFileTarget // (swarm.SecretReferenceFileTarget) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/ServiceConfig.Generated.cs b/src/Docker.DotNet/Models/ServiceConfig.Generated.cs index 5a30fcef..15d1434d 100644 --- a/src/Docker.DotNet/Models/ServiceConfig.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceConfig stores daemon registry services configuration. + /// public class ServiceConfig // (registry.ServiceConfig) { [JsonPropertyName("InsecureRegistryCIDRs")] diff --git a/src/Docker.DotNet/Models/ServiceCreateResponse.Generated.cs b/src/Docker.DotNet/Models/ServiceCreateResponse.Generated.cs index 264edb63..8f31d138 100644 --- a/src/Docker.DotNet/Models/ServiceCreateResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceCreateResponse.Generated.cs @@ -1,11 +1,28 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceCreateResponse contains the information returned to a client on the + /// creation of a new service. + /// + /// swagger:model ServiceCreateResponse + /// public class ServiceCreateResponse // (swarm.ServiceCreateResponse) { + /// + /// The ID of the created service. + /// Example: ak7w3gjqoa3kuz8xcpnyy0pvl + /// [JsonPropertyName("ID")] public string? ID { get; set; } + /// + /// Optional warning message. + /// + /// FIXME(thaJeztah): this should have "omitempty" in the generated type. + /// + /// Example: ["unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"] + /// [JsonPropertyName("Warnings")] public IList Warnings { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ServiceInfo.Generated.cs b/src/Docker.DotNet/Models/ServiceInfo.Generated.cs index d1a5aad9..dbf23b4a 100644 --- a/src/Docker.DotNet/Models/ServiceInfo.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceInfo.Generated.cs @@ -1,17 +1,34 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceInfo represents service parameters with the list of service's tasks + /// + /// swagger:model ServiceInfo + /// public class ServiceInfo // (network.ServiceInfo) { + /// + /// v IP + /// [JsonPropertyName("VIP")] public string VIP { get; set; } = default!; + /// + /// ports + /// [JsonPropertyName("Ports")] public IList Ports { get; set; } = default!; + /// + /// local l b index + /// [JsonPropertyName("LocalLBIndex")] public long LocalLBIndex { get; set; } = default!; + /// + /// tasks + /// [JsonPropertyName("Tasks")] public IList Tasks { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ServiceMode.Generated.cs b/src/Docker.DotNet/Models/ServiceMode.Generated.cs index 21f85f31..145ebaba 100644 --- a/src/Docker.DotNet/Models/ServiceMode.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceMode.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceMode represents the mode of a service. + /// public class ServiceMode // (swarm.ServiceMode) { [JsonPropertyName("Replicated")] diff --git a/src/Docker.DotNet/Models/ServiceSpec.Generated.cs b/src/Docker.DotNet/Models/ServiceSpec.Generated.cs index 512b26ad..e39c4191 100644 --- a/src/Docker.DotNet/Models/ServiceSpec.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceSpec represents the spec of a service. + /// public class ServiceSpec // (swarm.ServiceSpec) { public ServiceSpec() @@ -22,6 +25,10 @@ public ServiceSpec(Annotations Annotations) [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// TaskTemplate defines how the service should construct new tasks when + /// orchestrating this service. + /// [JsonPropertyName("TaskTemplate")] public TaskSpec? TaskTemplate { get; set; } diff --git a/src/Docker.DotNet/Models/ServiceStatus.Generated.cs b/src/Docker.DotNet/Models/ServiceStatus.Generated.cs index 854c865f..b853e9e6 100644 --- a/src/Docker.DotNet/Models/ServiceStatus.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceStatus.Generated.cs @@ -1,14 +1,35 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceStatus represents the number of running tasks in a service and the + /// number of tasks desired to be running. + /// public class ServiceStatus // (swarm.ServiceStatus) { + /// + /// RunningTasks is the number of tasks for the service actually in the + /// Running state + /// [JsonPropertyName("RunningTasks")] public ulong RunningTasks { get; set; } = default!; + /// + /// DesiredTasks is the number of tasks desired to be running by the + /// service. For replicated services, this is the replica count. For global + /// services, this is computed by taking the number of tasks with desired + /// state of not-Shutdown. + /// [JsonPropertyName("DesiredTasks")] public ulong DesiredTasks { get; set; } = default!; + /// + /// CompletedTasks is the number of tasks in the state Completed, if this + /// service is in ReplicatedJob or GlobalJob mode. This field must be + /// cross-referenced with the service type, because the default value of 0 + /// may mean that a service is not in a job mode, or it may mean that the + /// job has yet to complete any tasks. + /// [JsonPropertyName("CompletedTasks")] public ulong CompletedTasks { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/ServiceUpdateResponse.Generated.cs b/src/Docker.DotNet/Models/ServiceUpdateResponse.Generated.cs index 9dad22ba..d47bda3d 100644 --- a/src/Docker.DotNet/Models/ServiceUpdateResponse.Generated.cs +++ b/src/Docker.DotNet/Models/ServiceUpdateResponse.Generated.cs @@ -1,8 +1,17 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ServiceUpdateResponse service update response + /// Example: {"Warnings":["unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"]} + /// + /// swagger:model ServiceUpdateResponse + /// public class ServiceUpdateResponse // (swarm.ServiceUpdateResponse) { + /// + /// Optional warning messages + /// [JsonPropertyName("Warnings")] public IList Warnings { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Spec.Generated.cs b/src/Docker.DotNet/Models/Spec.Generated.cs index febbe47b..0d60983b 100644 --- a/src/Docker.DotNet/Models/Spec.Generated.cs +++ b/src/Docker.DotNet/Models/Spec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Spec represents the spec of a swarm. + /// public class Spec // (swarm.Spec) { public Spec() diff --git a/src/Docker.DotNet/Models/SpreadOver.Generated.cs b/src/Docker.DotNet/Models/SpreadOver.Generated.cs index f0274b8d..e3dadd68 100644 --- a/src/Docker.DotNet/Models/SpreadOver.Generated.cs +++ b/src/Docker.DotNet/Models/SpreadOver.Generated.cs @@ -1,8 +1,15 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SpreadOver is a scheduling preference that instructs the scheduler to spread + /// tasks evenly over groups of nodes identified by labels. + /// public class SpreadOver // (swarm.SpreadOver) { + /// + /// label descriptor, such as engine.labels.az + /// [JsonPropertyName("SpreadDescriptor")] public string SpreadDescriptor { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/State.Generated.cs b/src/Docker.DotNet/Models/State.Generated.cs index 62201b6f..c96f2717 100644 --- a/src/Docker.DotNet/Models/State.Generated.cs +++ b/src/Docker.DotNet/Models/State.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// State stores container's running state + /// it's part of ContainerJSONBase and returned by "inspect" command + /// public class State // (container.State) { [JsonPropertyName("Status")] diff --git a/src/Docker.DotNet/Models/Status.Generated.cs b/src/Docker.DotNet/Models/Status.Generated.cs index 42587481..48fc38f1 100644 --- a/src/Docker.DotNet/Models/Status.Generated.cs +++ b/src/Docker.DotNet/Models/Status.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Status provides runtime information about the network such as the number of allocated IPs. + /// + /// swagger:model Status + /// public class Status // (network.Status) { + /// + /// IPAM + /// [JsonPropertyName("IPAM")] public IPAMStatus IPAM { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Storage.Generated.cs b/src/Docker.DotNet/Models/Storage.Generated.cs index 1e793ad5..65911f92 100644 --- a/src/Docker.DotNet/Models/Storage.Generated.cs +++ b/src/Docker.DotNet/Models/Storage.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Storage Information about the storage used by the container. + /// + /// swagger:model Storage + /// public class Storage // (storage.Storage) { + /// + /// Information about the storage used for the container's root filesystem. + /// [JsonPropertyName("RootFS")] public RootFSStorage? RootFS { get; set; } } diff --git a/src/Docker.DotNet/Models/StorageStats.Generated.cs b/src/Docker.DotNet/Models/StorageStats.Generated.cs index 9756e73b..340ca3a7 100644 --- a/src/Docker.DotNet/Models/StorageStats.Generated.cs +++ b/src/Docker.DotNet/Models/StorageStats.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// StorageStats is the disk I/O stats for read/write on Windows. + /// public class StorageStats // (container.StorageStats) { [JsonPropertyName("read_count_normalized")] diff --git a/src/Docker.DotNet/Models/SubnetStatus.Generated.cs b/src/Docker.DotNet/Models/SubnetStatus.Generated.cs index bc944282..ac0ec8ae 100644 --- a/src/Docker.DotNet/Models/SubnetStatus.Generated.cs +++ b/src/Docker.DotNet/Models/SubnetStatus.Generated.cs @@ -1,11 +1,22 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SubnetStatus subnet status + /// + /// swagger:model SubnetStatus + /// public class SubnetStatus // (network.SubnetStatus) { + /// + /// Number of IP addresses in the subnet that are in use or reserved and are therefore unavailable for allocation, saturating at 2<sup>64</sup> - 1. + /// [JsonPropertyName("IPsInUse")] public ulong IPsInUse { get; set; } = default!; + /// + /// Number of IP addresses within the network's IPRange for the subnet that are available for allocation, saturating at 2<sup>64</sup> - 1. + /// [JsonPropertyName("DynamicIPsAvailable")] public ulong DynamicIPsAvailable { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/SwarmConfigReference.Generated.cs b/src/Docker.DotNet/Models/SwarmConfigReference.Generated.cs index cd40301c..7a5477e4 100644 --- a/src/Docker.DotNet/Models/SwarmConfigReference.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmConfigReference.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ConfigReference is a reference to a config in swarm + /// public class SwarmConfigReference // (swarm.ConfigReference) { [JsonPropertyName("File")] diff --git a/src/Docker.DotNet/Models/SwarmConfigSpec.Generated.cs b/src/Docker.DotNet/Models/SwarmConfigSpec.Generated.cs index 38f0b155..e4693726 100644 --- a/src/Docker.DotNet/Models/SwarmConfigSpec.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmConfigSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ConfigSpec represents a config specification from a config in swarm + /// public class SwarmConfigSpec // (swarm.ConfigSpec) { public SwarmConfigSpec() @@ -22,10 +25,21 @@ public SwarmConfigSpec(Annotations Annotations) [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// Data is the data to store as a config. + /// + /// The maximum allowed size is 1000KB, as defined in [MaxConfigSize]. + /// + /// [MaxConfigSize]: https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/manager/controlapi#MaxConfigSize + /// [JsonPropertyName("Data")] [JsonConverter(typeof(Base64Converter))] public IList? Data { get; set; } + /// + /// Templating controls whether and how to evaluate the config payload as + /// a template. If it is not set, no templating is used. + /// [JsonPropertyName("Templating")] public SwarmDriver? Templating { get; set; } } diff --git a/src/Docker.DotNet/Models/SwarmDriver.Generated.cs b/src/Docker.DotNet/Models/SwarmDriver.Generated.cs index 3397615a..55116c5b 100644 --- a/src/Docker.DotNet/Models/SwarmDriver.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmDriver.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Driver represents a driver (network, logging, secrets backend). + /// public class SwarmDriver // (swarm.Driver) { [JsonPropertyName("Name")] diff --git a/src/Docker.DotNet/Models/SwarmIPAMConfig.Generated.cs b/src/Docker.DotNet/Models/SwarmIPAMConfig.Generated.cs index 6b384a13..85bb552e 100644 --- a/src/Docker.DotNet/Models/SwarmIPAMConfig.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmIPAMConfig.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// IPAMConfig represents ipam configuration. + /// public class SwarmIPAMConfig // (swarm.IPAMConfig) { [JsonPropertyName("Subnet")] diff --git a/src/Docker.DotNet/Models/SwarmInitParameters.Generated.cs b/src/Docker.DotNet/Models/SwarmInitParameters.Generated.cs index ec05fc60..b3193542 100644 --- a/src/Docker.DotNet/Models/SwarmInitParameters.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmInitParameters.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// InitRequest is the request used to init a swarm. + /// public class SwarmInitParameters // (swarm.InitRequest) { [JsonPropertyName("ListenAddr")] diff --git a/src/Docker.DotNet/Models/SwarmInspectResponse.Generated.cs b/src/Docker.DotNet/Models/SwarmInspectResponse.Generated.cs index 35d2900c..62f84bac 100644 --- a/src/Docker.DotNet/Models/SwarmInspectResponse.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmInspectResponse.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Swarm represents a swarm. + /// public class SwarmInspectResponse // (swarm.Swarm) { public SwarmInspectResponse() diff --git a/src/Docker.DotNet/Models/SwarmJoinParameters.Generated.cs b/src/Docker.DotNet/Models/SwarmJoinParameters.Generated.cs index a10f51d1..45c6797a 100644 --- a/src/Docker.DotNet/Models/SwarmJoinParameters.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmJoinParameters.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// JoinRequest is the request used to join a swarm. + /// public class SwarmJoinParameters // (swarm.JoinRequest) { [JsonPropertyName("ListenAddr")] diff --git a/src/Docker.DotNet/Models/SwarmLimit.Generated.cs b/src/Docker.DotNet/Models/SwarmLimit.Generated.cs index 4907ac83..3093bf83 100644 --- a/src/Docker.DotNet/Models/SwarmLimit.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmLimit.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Limit describes limits on resources which can be requested by a task. + /// public class SwarmLimit // (swarm.Limit) { [JsonPropertyName("NanoCPUs")] diff --git a/src/Docker.DotNet/Models/SwarmNetwork.Generated.cs b/src/Docker.DotNet/Models/SwarmNetwork.Generated.cs index eba88b43..ee50ea71 100644 --- a/src/Docker.DotNet/Models/SwarmNetwork.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmNetwork.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Network represents a network. + /// public class SwarmNetwork // (swarm.Network) { public SwarmNetwork() diff --git a/src/Docker.DotNet/Models/SwarmPlatform.Generated.cs b/src/Docker.DotNet/Models/SwarmPlatform.Generated.cs index 8a30fa74..158ef85e 100644 --- a/src/Docker.DotNet/Models/SwarmPlatform.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmPlatform.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Platform represents the platform (Arch/OS). + /// public class SwarmPlatform // (swarm.Platform) { [JsonPropertyName("Architecture")] diff --git a/src/Docker.DotNet/Models/SwarmResources.Generated.cs b/src/Docker.DotNet/Models/SwarmResources.Generated.cs index 8b4a76c0..45301ad9 100644 --- a/src/Docker.DotNet/Models/SwarmResources.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmResources.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Resources represents resources (CPU/Memory) which can be advertised by a + /// node and requested to be reserved for a task. + /// public class SwarmResources // (swarm.Resources) { [JsonPropertyName("NanoCPUs")] diff --git a/src/Docker.DotNet/Models/SwarmRestartPolicy.Generated.cs b/src/Docker.DotNet/Models/SwarmRestartPolicy.Generated.cs index 104a1949..f69541ee 100644 --- a/src/Docker.DotNet/Models/SwarmRestartPolicy.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmRestartPolicy.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RestartPolicy represents the restart policy. + /// public class SwarmRestartPolicy // (swarm.RestartPolicy) { [JsonPropertyName("Condition")] diff --git a/src/Docker.DotNet/Models/SwarmRuntimeSpec.Generated.cs b/src/Docker.DotNet/Models/SwarmRuntimeSpec.Generated.cs index 8e19b743..230a176b 100644 --- a/src/Docker.DotNet/Models/SwarmRuntimeSpec.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmRuntimeSpec.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// RuntimeSpec defines the base payload which clients can specify for creating + /// a service with the plugin runtime. + /// public class SwarmRuntimeSpec // (swarm.RuntimeSpec) { [JsonPropertyName("name")] diff --git a/src/Docker.DotNet/Models/SwarmSecretSpec.Generated.cs b/src/Docker.DotNet/Models/SwarmSecretSpec.Generated.cs index 00d9d172..a7e154fc 100644 --- a/src/Docker.DotNet/Models/SwarmSecretSpec.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmSecretSpec.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// SecretSpec represents a secret specification from a secret in swarm + /// public class SwarmSecretSpec // (swarm.SecretSpec) { public SwarmSecretSpec() @@ -22,13 +25,33 @@ public SwarmSecretSpec(Annotations Annotations) [JsonPropertyName("Labels")] public IDictionary Labels { get; set; } = default!; + /// + /// Data is the data to store as a secret. It must be empty if a + /// [Driver] is used, in which case the data is loaded from an external + /// secret store. The maximum allowed size is 500KB, as defined in + /// [MaxSecretSize]. + /// + /// This field is only used to create the secret, and is not returned + /// by other endpoints. + /// + /// [MaxSecretSize]: https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0/api/validation#MaxSecretSize + /// [JsonPropertyName("Data")] [JsonConverter(typeof(Base64Converter))] public IList? Data { get; set; } + /// + /// Driver is the name of the secrets driver used to fetch the secret's + /// value from an external secret store. If not set, the default built-in + /// store is used. + /// [JsonPropertyName("Driver")] public SwarmDriver? Driver { get; set; } + /// + /// Templating controls whether and how to evaluate the secret payload as + /// a template. If it is not set, no templating is used. + /// [JsonPropertyName("Templating")] public SwarmDriver? Templating { get; set; } } diff --git a/src/Docker.DotNet/Models/SwarmService.Generated.cs b/src/Docker.DotNet/Models/SwarmService.Generated.cs index d5179acf..ac4179e3 100644 --- a/src/Docker.DotNet/Models/SwarmService.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmService.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Service represents a service. + /// public class SwarmService // (swarm.Service) { public SwarmService() @@ -41,9 +44,20 @@ public SwarmService(Meta Meta) [JsonPropertyName("UpdateStatus")] public UpdateStatus? UpdateStatus { get; set; } + /// + /// ServiceStatus is an optional, extra field indicating the number of + /// desired and running tasks. It is provided primarily as a shortcut to + /// calculating these values client-side, which otherwise would require + /// listing all tasks for a service, an operation that could be + /// computation and network expensive. + /// [JsonPropertyName("ServiceStatus")] public ServiceStatus? ServiceStatus { get; set; } + /// + /// JobStatus is the status of a Service which is in one of ReplicatedJob or + /// GlobalJob modes. It is absent on Replicated and Global services. + /// [JsonPropertyName("JobStatus")] public JobStatus? JobStatus { get; set; } } diff --git a/src/Docker.DotNet/Models/SwarmUpdateConfig.Generated.cs b/src/Docker.DotNet/Models/SwarmUpdateConfig.Generated.cs index b298b15e..a57315b6 100644 --- a/src/Docker.DotNet/Models/SwarmUpdateConfig.Generated.cs +++ b/src/Docker.DotNet/Models/SwarmUpdateConfig.Generated.cs @@ -1,23 +1,62 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// UpdateConfig represents the update configuration. + /// public class SwarmUpdateConfig // (swarm.UpdateConfig) { + /// + /// Maximum number of tasks to be updated in one iteration. + /// 0 means unlimited parallelism. + /// [JsonPropertyName("Parallelism")] public ulong Parallelism { get; set; } = default!; + /// + /// Amount of time between updates. + /// [JsonPropertyName("Delay")] public long? Delay { get; set; } + /// + /// FailureAction is the action to take when an update failures. + /// [JsonPropertyName("FailureAction")] public string? FailureAction { get; set; } + /// + /// Monitor indicates how long to monitor a task for failure after it is + /// created. If the task fails by ending up in one of the states + /// REJECTED, COMPLETED, or FAILED, within Monitor from its creation, + /// this counts as a failure. If it fails after Monitor, it does not + /// count as a failure. If Monitor is unspecified, a default value will + /// be used. + /// [JsonPropertyName("Monitor")] public long? Monitor { get; set; } + /// + /// MaxFailureRatio is the fraction of tasks that may fail during + /// an update before the failure action is invoked. Any task created by + /// the current update which ends up in one of the states REJECTED, + /// COMPLETED or FAILED within Monitor from its creation counts as a + /// failure. The number of failures is divided by the number of tasks + /// being updated, and if this fraction is greater than + /// MaxFailureRatio, the failure action is invoked. + /// + /// If the failure action is CONTINUE, there is no effect. + /// If the failure action is PAUSE, no more tasks will be updated until + /// another update is started. + /// [JsonPropertyName("MaxFailureRatio")] public float MaxFailureRatio { get; set; } = default!; + /// + /// Order indicates the order of operations when rolling out an updated + /// task. Either the old task is shut down before the new task is + /// started, or the new task is started before the old task is shut down. + /// [JsonPropertyName("Order")] public string Order { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/SystemInfoResponse.Generated.cs b/src/Docker.DotNet/Models/SystemInfoResponse.Generated.cs index e397446d..40364524 100644 --- a/src/Docker.DotNet/Models/SystemInfoResponse.Generated.cs +++ b/src/Docker.DotNet/Models/SystemInfoResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Info contains response of Engine API: + /// GET "/info" + /// public class SystemInfoResponse // (system.Info) { [JsonPropertyName("ID")] @@ -147,6 +151,11 @@ public class SystemInfoResponse // (system.Info) [JsonPropertyName("Swarm")] public Info Swarm { get; set; } = default!; + /// + /// LiveRestoreEnabled determines whether containers should be kept + /// running when the daemon is shutdown or upon daemon start if + /// running containers are detected + /// [JsonPropertyName("LiveRestoreEnabled")] public bool LiveRestoreEnabled { get; set; } = default!; @@ -186,6 +195,12 @@ public class SystemInfoResponse // (system.Info) [JsonPropertyName("Containerd")] public ContainerdInfo? Containerd { get; set; } + /// + /// Warnings contains a slice of warnings that occurred while collecting + /// system information. These warnings are intended to be informational + /// messages for the user, and are not intended to be parsed / used for + /// other purposes, as they do not have a fixed format. + /// [JsonPropertyName("Warnings")] public IList Warnings { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/TLSInfo.Generated.cs b/src/Docker.DotNet/Models/TLSInfo.Generated.cs index 24951168..b9676d6f 100644 --- a/src/Docker.DotNet/Models/TLSInfo.Generated.cs +++ b/src/Docker.DotNet/Models/TLSInfo.Generated.cs @@ -1,15 +1,28 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TLSInfo represents the TLS information about what CA certificate is trusted, + /// and who the issuer for a TLS certificate is + /// public class TLSInfo // (swarm.TLSInfo) { + /// + /// TrustRoot is the trusted CA root certificate in PEM format + /// [JsonPropertyName("TrustRoot")] public string? TrustRoot { get; set; } + /// + /// CertIssuer is the raw subject bytes of the issuer + /// [JsonPropertyName("CertIssuerSubject")] [JsonConverter(typeof(Base64Converter))] public IList? CertIssuerSubject { get; set; } + /// + /// CertIssuerPublicKey is the raw public key bytes of the issuer + /// [JsonPropertyName("CertIssuerPublicKey")] [JsonConverter(typeof(Base64Converter))] public IList? CertIssuerPublicKey { get; set; } diff --git a/src/Docker.DotNet/Models/TaskDefaults.Generated.cs b/src/Docker.DotNet/Models/TaskDefaults.Generated.cs index 9e5de5ba..d00909d0 100644 --- a/src/Docker.DotNet/Models/TaskDefaults.Generated.cs +++ b/src/Docker.DotNet/Models/TaskDefaults.Generated.cs @@ -1,8 +1,19 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TaskDefaults parameterizes cluster-level task creation with default values. + /// public class TaskDefaults // (swarm.TaskDefaults) { + /// + /// LogDriver selects the log driver to use for tasks created in the + /// orchestrator if unspecified by a service. + /// + /// Updating this value will only have an affect on new tasks. Old tasks + /// will continue use their previously configured log driver until + /// recreated. + /// [JsonPropertyName("LogDriver")] public SwarmDriver? LogDriver { get; set; } } diff --git a/src/Docker.DotNet/Models/TaskResponse.Generated.cs b/src/Docker.DotNet/Models/TaskResponse.Generated.cs index c96d2834..de2ef3f1 100644 --- a/src/Docker.DotNet/Models/TaskResponse.Generated.cs +++ b/src/Docker.DotNet/Models/TaskResponse.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Task represents a task. + /// public class TaskResponse // (swarm.Task) { public TaskResponse() @@ -65,9 +68,20 @@ public TaskResponse(Meta Meta, Annotations Annotations) [JsonPropertyName("GenericResources")] public IList? GenericResources { get; set; } + /// + /// JobIteration is the JobIteration of the Service that this Task was + /// spawned from, if the Service is a ReplicatedJob or GlobalJob. This is + /// used to determine which Tasks belong to which run of the job. This field + /// is absent if the Service mode is Replicated or Global. + /// [JsonPropertyName("JobIteration")] public Version? JobIteration { get; set; } + /// + /// Volumes is the list of VolumeAttachments for this task. It specifies + /// which particular volumes are to be used by this particular task, and + /// fulfilling what mounts in the spec. + /// [JsonPropertyName("Volumes")] public IList Volumes { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/TaskSpec.Generated.cs b/src/Docker.DotNet/Models/TaskSpec.Generated.cs index f4293b16..5ac7bf09 100644 --- a/src/Docker.DotNet/Models/TaskSpec.Generated.cs +++ b/src/Docker.DotNet/Models/TaskSpec.Generated.cs @@ -1,8 +1,17 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TaskSpec represents the spec of a task. + /// public class TaskSpec // (swarm.TaskSpec) { + /// + /// ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually exclusive. + /// PluginSpec is only used when the `Runtime` field is set to `plugin` + /// NetworkAttachmentSpec is used if the `Runtime` field is set to + /// `attachment`. + /// [JsonPropertyName("ContainerSpec")] public ContainerSpec? ContainerSpec { get; set; } @@ -24,9 +33,18 @@ public class TaskSpec // (swarm.TaskSpec) [JsonPropertyName("Networks")] public IList? Networks { get; set; } + /// + /// LogDriver specifies the LogDriver to use for tasks created from this + /// spec. If not present, the one on cluster default on swarm.Spec will be + /// used, finally falling back to the engine default if not specified. + /// [JsonPropertyName("LogDriver")] public SwarmDriver? LogDriver { get; set; } + /// + /// ForceUpdate is a counter that triggers an update even if no relevant + /// parameters have been changed. + /// [JsonPropertyName("ForceUpdate")] public ulong ForceUpdate { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/TaskStatus.Generated.cs b/src/Docker.DotNet/Models/TaskStatus.Generated.cs index f9630ed8..88d3756c 100644 --- a/src/Docker.DotNet/Models/TaskStatus.Generated.cs +++ b/src/Docker.DotNet/Models/TaskStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TaskStatus represents the status of a task. + /// public class TaskStatus // (swarm.TaskStatus) { [JsonPropertyName("Timestamp")] diff --git a/src/Docker.DotNet/Models/ThrottleDevice.Generated.cs b/src/Docker.DotNet/Models/ThrottleDevice.Generated.cs index 41acfd09..f4ebfb2a 100644 --- a/src/Docker.DotNet/Models/ThrottleDevice.Generated.cs +++ b/src/Docker.DotNet/Models/ThrottleDevice.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ThrottleDevice is a structure that holds device:rate_per_second pair + /// public class ThrottleDevice // (blkiodev.ThrottleDevice) { [JsonPropertyName("Path")] diff --git a/src/Docker.DotNet/Models/ThrottlingData.Generated.cs b/src/Docker.DotNet/Models/ThrottlingData.Generated.cs index 3943049c..cc6162b9 100644 --- a/src/Docker.DotNet/Models/ThrottlingData.Generated.cs +++ b/src/Docker.DotNet/Models/ThrottlingData.Generated.cs @@ -1,14 +1,27 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// ThrottlingData stores CPU throttling stats of one running container. + /// Not used on Windows. + /// public class ThrottlingData // (container.ThrottlingData) { + /// + /// Number of periods with throttling active + /// [JsonPropertyName("periods")] public ulong Periods { get; set; } = default!; + /// + /// Number of periods when the container hits its throttling limit. + /// [JsonPropertyName("throttled_periods")] public ulong ThrottledPeriods { get; set; } = default!; + /// + /// Aggregate time the container was throttled for in nanoseconds. + /// [JsonPropertyName("throttled_time")] public ulong ThrottledTime { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/TmpfsOptions.Generated.cs b/src/Docker.DotNet/Models/TmpfsOptions.Generated.cs index a99241a0..3b459023 100644 --- a/src/Docker.DotNet/Models/TmpfsOptions.Generated.cs +++ b/src/Docker.DotNet/Models/TmpfsOptions.Generated.cs @@ -1,14 +1,36 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TmpfsOptions defines options specific to mounts of type "tmpfs". + /// public class TmpfsOptions // (mount.TmpfsOptions) { + /// + /// Size sets the size of the tmpfs, in bytes. + /// + /// This will be converted to an operating system specific value + /// depending on the host. For example, on linux, it will be converted to + /// use a 'k', 'm' or 'g' syntax. BSD, though not widely supported with + /// docker, uses a straight byte value. + /// + /// Percentages are not supported. + /// [JsonPropertyName("SizeBytes")] public long? SizeBytes { get; set; } + /// + /// Mode of the tmpfs upon creation + /// [JsonPropertyName("Mode")] public uint? Mode { get; set; } + /// + /// Options to be passed to the tmpfs mount. An array of arrays. Flag + /// options should be provided as 1-length arrays. Other types should be + /// provided as 2-length arrays, where the first item is the key and the + /// second the value. + /// [JsonPropertyName("Options")] public IList>? Options { get; set; } } diff --git a/src/Docker.DotNet/Models/Topology.Generated.cs b/src/Docker.DotNet/Models/Topology.Generated.cs index a37cf711..35de8a48 100644 --- a/src/Docker.DotNet/Models/Topology.Generated.cs +++ b/src/Docker.DotNet/Models/Topology.Generated.cs @@ -1,6 +1,12 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Topology defines the CSI topology of this node. This type is a duplicate of + /// [github.com/moby/moby/api/types/volume.Topology]. Because the type definition + /// is so simple and to avoid complicated structure or circular imports, we just + /// duplicate it here. See that type for full documentation + /// public class Topology // (swarm.Topology) { [JsonPropertyName("Segments")] diff --git a/src/Docker.DotNet/Models/TopologyRequirement.Generated.cs b/src/Docker.DotNet/Models/TopologyRequirement.Generated.cs index 27eb2808..cd7b23a2 100644 --- a/src/Docker.DotNet/Models/TopologyRequirement.Generated.cs +++ b/src/Docker.DotNet/Models/TopologyRequirement.Generated.cs @@ -1,11 +1,154 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TopologyRequirement expresses the user's requirements for a volume's + /// accessible topology. + /// public class TopologyRequirement // (volume.TopologyRequirement) { + /// + /// Requisite specifies a list of Topologies, at least one of which the + /// volume must be accessible from. + /// + /// Taken verbatim from the CSI Spec: + /// + /// Specifies the list of topologies the provisioned volume MUST be + /// accessible from. + /// This field is OPTIONAL. If TopologyRequirement is specified either + /// requisite or preferred or both MUST be specified. + /// + /// If requisite is specified, the provisioned volume MUST be + /// accessible from at least one of the requisite topologies. + /// + /// Given + /// x = number of topologies provisioned volume is accessible from + /// n = number of requisite topologies + /// The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + /// If x==n, then the SP MUST make the provisioned volume available to + /// all topologies from the list of requisite topologies. If it is + /// unable to do so, the SP MUST fail the CreateVolume call. + /// For example, if a volume should be accessible from a single zone, + /// and requisite = + /// {"region": "R1", "zone": "Z2"} + /// then the provisioned volume MUST be accessible from the "region" + /// "R1" and the "zone" "Z2". + /// Similarly, if a volume should be accessible from two zones, and + /// requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"} + /// then the provisioned volume MUST be accessible from the "region" + /// "R1" and both "zone" "Z2" and "zone" "Z3". + /// + /// If x<n, then the SP SHALL choose x unique topologies from the list + /// of requisite topologies. If it is unable to do so, the SP MUST fail + /// the CreateVolume call. + /// For example, if a volume should be accessible from a single zone, + /// and requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"} + /// then the SP may choose to make the provisioned volume available in + /// either the "zone" "Z2" or the "zone" "Z3" in the "region" "R1". + /// Similarly, if a volume should be accessible from two zones, and + /// requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"}, + /// {"region": "R1", "zone": "Z4"} + /// then the provisioned volume MUST be accessible from any combination + /// of two unique topologies: e.g. "R1/Z2" and "R1/Z3", or "R1/Z2" and + /// "R1/Z4", or "R1/Z3" and "R1/Z4". + /// + /// If x>n, then the SP MUST make the provisioned volume available from + /// all topologies from the list of requisite topologies and MAY choose + /// the remaining x-n unique topologies from the list of all possible + /// topologies. If it is unable to do so, the SP MUST fail the + /// CreateVolume call. + /// For example, if a volume should be accessible from two zones, and + /// requisite = + /// {"region": "R1", "zone": "Z2"} + /// then the provisioned volume MUST be accessible from the "region" + /// "R1" and the "zone" "Z2" and the SP may select the second zone + /// independently, e.g. "R1/Z4". + /// [JsonPropertyName("Requisite")] public IList? Requisite { get; set; } + /// + /// Preferred is a list of Topologies that the volume should attempt to be + /// provisioned in. + /// + /// Taken from the CSI spec: + /// + /// Specifies the list of topologies the CO would prefer the volume to + /// be provisioned in. + /// + /// This field is OPTIONAL. If TopologyRequirement is specified either + /// requisite or preferred or both MUST be specified. + /// + /// An SP MUST attempt to make the provisioned volume available using + /// the preferred topologies in order from first to last. + /// + /// If requisite is specified, all topologies in preferred list MUST + /// also be present in the list of requisite topologies. + /// + /// If the SP is unable to make the provisioned volume available + /// from any of the preferred topologies, the SP MAY choose a topology + /// from the list of requisite topologies. + /// If the list of requisite topologies is not specified, then the SP + /// MAY choose from the list of all possible topologies. + /// If the list of requisite topologies is specified and the SP is + /// unable to make the provisioned volume available from any of the + /// requisite topologies it MUST fail the CreateVolume call. + /// + /// Example 1: + /// Given a volume should be accessible from a single zone, and + /// requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"} + /// preferred = + /// {"region": "R1", "zone": "Z3"} + /// then the SP SHOULD first attempt to make the provisioned volume + /// available from "zone" "Z3" in the "region" "R1" and fall back to + /// "zone" "Z2" in the "region" "R1" if that is not possible. + /// + /// Example 2: + /// Given a volume should be accessible from a single zone, and + /// requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"}, + /// {"region": "R1", "zone": "Z4"}, + /// {"region": "R1", "zone": "Z5"} + /// preferred = + /// {"region": "R1", "zone": "Z4"}, + /// {"region": "R1", "zone": "Z2"} + /// then the SP SHOULD first attempt to make the provisioned volume + /// accessible from "zone" "Z4" in the "region" "R1" and fall back to + /// "zone" "Z2" in the "region" "R1" if that is not possible. If that + /// is not possible, the SP may choose between either the "zone" + /// "Z3" or "Z5" in the "region" "R1". + /// + /// Example 3: + /// Given a volume should be accessible from TWO zones (because an + /// opaque parameter in CreateVolumeRequest, for example, specifies + /// the volume is accessible from two zones, aka synchronously + /// replicated), and + /// requisite = + /// {"region": "R1", "zone": "Z2"}, + /// {"region": "R1", "zone": "Z3"}, + /// {"region": "R1", "zone": "Z4"}, + /// {"region": "R1", "zone": "Z5"} + /// preferred = + /// {"region": "R1", "zone": "Z5"}, + /// {"region": "R1", "zone": "Z3"} + /// then the SP SHOULD first attempt to make the provisioned volume + /// accessible from the combination of the two "zones" "Z5" and "Z3" in + /// the "region" "R1". If that's not possible, it should fall back to + /// a combination of "Z5" and other possibilities from the list of + /// requisite. If that's not possible, it should fall back to a + /// combination of "Z3" and other possibilities from the list of + /// requisite. If that's not possible, it should fall back to a + /// combination of other possibilities from the list of requisite. + /// [JsonPropertyName("Preferred")] public IList? Preferred { get; set; } } diff --git a/src/Docker.DotNet/Models/TypeBlock.Generated.cs b/src/Docker.DotNet/Models/TypeBlock.Generated.cs index 75c6174d..0bf16efc 100644 --- a/src/Docker.DotNet/Models/TypeBlock.Generated.cs +++ b/src/Docker.DotNet/Models/TypeBlock.Generated.cs @@ -1,6 +1,11 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TypeBlock defines options for using a volume as a block-type volume. + /// + /// Intentionally empty. + /// public class TypeBlock // (volume.TypeBlock) { } diff --git a/src/Docker.DotNet/Models/TypeMount.Generated.cs b/src/Docker.DotNet/Models/TypeMount.Generated.cs index 5cb13d9c..63f88adc 100644 --- a/src/Docker.DotNet/Models/TypeMount.Generated.cs +++ b/src/Docker.DotNet/Models/TypeMount.Generated.cs @@ -1,11 +1,21 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// TypeMount contains options for using a volume as a Mount-type + /// volume. + /// public class TypeMount // (volume.TypeMount) { + /// + /// FsType specifies the filesystem type for the mount volume. Optional. + /// [JsonPropertyName("FsType")] public string? FsType { get; set; } + /// + /// MountFlags defines flags to pass when mounting the volume. Optional. + /// [JsonPropertyName("MountFlags")] public IList? MountFlags { get; set; } } diff --git a/src/Docker.DotNet/Models/UpdateConfig.Generated.cs b/src/Docker.DotNet/Models/UpdateConfig.Generated.cs index 81c2cba9..810b642c 100644 --- a/src/Docker.DotNet/Models/UpdateConfig.Generated.cs +++ b/src/Docker.DotNet/Models/UpdateConfig.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// UpdateConfig holds the mutable attributes of a Container. + /// Those attributes can be updated at runtime. + /// public class UpdateConfig // (container.UpdateConfig) { public UpdateConfig() @@ -43,6 +47,9 @@ public UpdateConfig(Resources Resources) } } + /// + /// Applicable to all platforms + /// [JsonPropertyName("CpuShares")] public long CPUShares { get; set; } = default!; @@ -52,6 +59,9 @@ public UpdateConfig(Resources Resources) [JsonPropertyName("NanoCpus")] public long NanoCPUs { get; set; } = default!; + /// + /// Applicable to UNIX platforms + /// [JsonPropertyName("CgroupParent")] public string CgroupParent { get; set; } = default!; @@ -118,6 +128,9 @@ public UpdateConfig(Resources Resources) [JsonPropertyName("Ulimits")] public IList Ulimits { get; set; } = default!; + /// + /// Applicable to Windows + /// [JsonPropertyName("CpuCount")] public long CPUCount { get; set; } = default!; diff --git a/src/Docker.DotNet/Models/UpdateStatus.Generated.cs b/src/Docker.DotNet/Models/UpdateStatus.Generated.cs index 8271f7fa..0e377907 100644 --- a/src/Docker.DotNet/Models/UpdateStatus.Generated.cs +++ b/src/Docker.DotNet/Models/UpdateStatus.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// UpdateStatus reports the status of a service update. + /// public class UpdateStatus // (swarm.UpdateStatus) { [JsonPropertyName("State")] diff --git a/src/Docker.DotNet/Models/UsageData.Generated.cs b/src/Docker.DotNet/Models/UsageData.Generated.cs index a56be3bf..ea01e706 100644 --- a/src/Docker.DotNet/Models/UsageData.Generated.cs +++ b/src/Docker.DotNet/Models/UsageData.Generated.cs @@ -1,11 +1,31 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// UsageData Usage details about the volume. This information is used by the + /// `GET /system/df` endpoint, and omitted in other endpoints. + /// + /// swagger:model UsageData + /// public class UsageData // (volume.UsageData) { + /// + /// The number of containers referencing this volume. This field + /// is set to `-1` if the reference-count is not available. + /// + /// Required: true + /// [JsonPropertyName("RefCount")] public long RefCount { get; set; } = default!; + /// + /// Amount of disk space used by the volume (in bytes). This information + /// is only available for volumes created with the `"local"` volume + /// driver. For volumes created with other volume drivers, this field + /// is set to `-1` ("not available") + /// + /// Required: true + /// [JsonPropertyName("Size")] public long Size { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/Version.Generated.cs b/src/Docker.DotNet/Models/Version.Generated.cs index 68f9f30d..c44edf19 100644 --- a/src/Docker.DotNet/Models/Version.Generated.cs +++ b/src/Docker.DotNet/Models/Version.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Version represents the internal object version. + /// public class Version // (swarm.Version) { [JsonPropertyName("Index")] diff --git a/src/Docker.DotNet/Models/VersionResponse.Generated.cs b/src/Docker.DotNet/Models/VersionResponse.Generated.cs index ffc96783..8a1caa52 100644 --- a/src/Docker.DotNet/Models/VersionResponse.Generated.cs +++ b/src/Docker.DotNet/Models/VersionResponse.Generated.cs @@ -1,26 +1,53 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// VersionResponse contains information about the Docker server host. + /// GET "/version" + /// public class VersionResponse // (system.VersionResponse) { + /// + /// Platform is the platform (product name) the server is running on. + /// [JsonPropertyName("Platform")] public PlatformInfo? Platform { get; set; } + /// + /// Version is the version of the daemon. + /// [JsonPropertyName("Version")] public string Version { get; set; } = default!; + /// + /// APIVersion is the highest API version supported by the server. + /// [JsonPropertyName("ApiVersion")] public string APIVersion { get; set; } = default!; + /// + /// MinAPIVersion is the minimum API version the server supports. + /// [JsonPropertyName("MinAPIVersion")] public string? MinAPIVersion { get; set; } + /// + /// Os is the operating system the server runs on. + /// [JsonPropertyName("Os")] public string Os { get; set; } = default!; + /// + /// Arch is the hardware architecture the server runs on. + /// [JsonPropertyName("Arch")] public string Arch { get; set; } = default!; + /// + /// Components contains version information for the components making + /// up the server. Information in this field is for informational + /// purposes, and not part of the API contract. + /// [JsonPropertyName("Components")] public IList? Components { get; set; } diff --git a/src/Docker.DotNet/Models/VolumeAccessMode.Generated.cs b/src/Docker.DotNet/Models/VolumeAccessMode.Generated.cs index 1f2efadd..d4ffaf9c 100644 --- a/src/Docker.DotNet/Models/VolumeAccessMode.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeAccessMode.Generated.cs @@ -1,17 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// AccessMode defines the access mode of a volume. + /// public class VolumeAccessMode // (volume.AccessMode) { + /// + /// Scope defines the set of nodes this volume can be used on at one time. + /// [JsonPropertyName("Scope")] public string? Scope { get; set; } + /// + /// Sharing defines the number and way that different tasks can use this + /// volume at one time. + /// [JsonPropertyName("Sharing")] public string? Sharing { get; set; } + /// + /// MountVolume defines options for using this volume as a Mount-type + /// volume. + /// + /// Either BlockVolume or MountVolume, but not both, must be present. + /// [JsonPropertyName("MountVolume")] public TypeMount? MountVolume { get; set; } + /// + /// BlockVolume defines options for using this volume as a Block-type + /// volume. + /// + /// Either BlockVolume or MountVolume, but not both, must be present. + /// [JsonPropertyName("BlockVolume")] public TypeBlock? BlockVolume { get; set; } } diff --git a/src/Docker.DotNet/Models/VolumeAttachment.Generated.cs b/src/Docker.DotNet/Models/VolumeAttachment.Generated.cs index 099a286b..b074ab41 100644 --- a/src/Docker.DotNet/Models/VolumeAttachment.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeAttachment.Generated.cs @@ -1,14 +1,28 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// VolumeAttachment contains the associating a Volume to a Task. + /// public class VolumeAttachment // (swarm.VolumeAttachment) { + /// + /// ID is the Swarmkit ID of the Volume. This is not the CSI VolumeId. + /// [JsonPropertyName("ID")] public string? ID { get; set; } + /// + /// Source, together with Target, indicates the Mount, as specified in the + /// ContainerSpec, that this volume fulfills. + /// [JsonPropertyName("Source")] public string? Source { get; set; } + /// + /// Target, together with Source, indicates the Mount, as specified + /// in the ContainerSpec, that this volume fulfills. + /// [JsonPropertyName("Target")] public string? Target { get; set; } } diff --git a/src/Docker.DotNet/Models/VolumeInfo.Generated.cs b/src/Docker.DotNet/Models/VolumeInfo.Generated.cs index 27e5cd45..6d46db03 100644 --- a/src/Docker.DotNet/Models/VolumeInfo.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeInfo.Generated.cs @@ -1,17 +1,39 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Info contains information about the Volume as a whole as provided by + /// the CSI storage plugin. + /// public class VolumeInfo // (volume.Info) { + /// + /// CapacityBytes is the capacity of the volume in bytes. A value of 0 + /// indicates that the capacity is unknown. + /// [JsonPropertyName("CapacityBytes")] public long? CapacityBytes { get; set; } + /// + /// VolumeContext is the context originating from the CSI storage plugin + /// when the Volume is created. + /// [JsonPropertyName("VolumeContext")] public IDictionary? VolumeContext { get; set; } + /// + /// VolumeID is the ID of the Volume as seen by the CSI storage plugin. This + /// is distinct from the Volume's Swarm ID, which is the ID used by all of + /// the Docker Engine to refer to the Volume. If this field is blank, then + /// the Volume has not been successfully created yet. + /// [JsonPropertyName("VolumeID")] public string? VolumeID { get; set; } + /// + /// AccessibleTopology is the topology this volume is actually accessible + /// from. + /// [JsonPropertyName("AccessibleTopology")] public IList? AccessibleTopology { get; set; } } diff --git a/src/Docker.DotNet/Models/VolumeOptions.Generated.cs b/src/Docker.DotNet/Models/VolumeOptions.Generated.cs index ec26e96b..bfc7a5cc 100644 --- a/src/Docker.DotNet/Models/VolumeOptions.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeOptions.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// VolumeOptions represents the options for a mount of type volume. + /// public class VolumeOptions // (mount.VolumeOptions) { [JsonPropertyName("NoCopy")] diff --git a/src/Docker.DotNet/Models/VolumeSecret.Generated.cs b/src/Docker.DotNet/Models/VolumeSecret.Generated.cs index 494fd0d8..4553662f 100644 --- a/src/Docker.DotNet/Models/VolumeSecret.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeSecret.Generated.cs @@ -1,11 +1,24 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Secret represents a Swarm Secret value that must be passed to the CSI + /// storage plugin when operating on this Volume. It represents one key-value + /// pair of possibly many. + /// public class VolumeSecret // (volume.Secret) { + /// + /// Key is the name of the key of the key-value pair passed to the plugin. + /// [JsonPropertyName("Key")] public string Key { get; set; } = default!; + /// + /// Secret is the swarm Secret object from which to read data. This can be a + /// Secret name or ID. The Secret data is retrieved by Swarm and used as the + /// value of the key-value pair passed to the plugin. + /// [JsonPropertyName("Secret")] public string Secret { get; set; } = default!; } diff --git a/src/Docker.DotNet/Models/VolumeTopology.Generated.cs b/src/Docker.DotNet/Models/VolumeTopology.Generated.cs index e67b8850..e9cf08c7 100644 --- a/src/Docker.DotNet/Models/VolumeTopology.Generated.cs +++ b/src/Docker.DotNet/Models/VolumeTopology.Generated.cs @@ -1,6 +1,40 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// Topology is a map of topological domains to topological segments. + /// + /// This description is taken verbatim from the CSI Spec: + /// + /// A topological domain is a sub-division of a cluster, like "region", + /// "zone", "rack", etc. + /// A topological segment is a specific instance of a topological domain, + /// like "zone3", "rack3", etc. + /// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} + /// Valid keys have two segments: an OPTIONAL prefix and name, separated + /// by a slash (/), for example: "com.company.example/zone". + /// The key name segment is REQUIRED. The prefix is OPTIONAL. + /// The key name MUST be 63 characters or less, begin and end with an + /// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), + /// underscores (_), dots (.), or alphanumerics in between, for example + /// "zone". + /// The key prefix MUST be 63 characters or less, begin and end with a + /// lower-case alphanumeric character ([a-z0-9]), contain only + /// dashes (-), dots (.), or lower-case alphanumerics in between, and + /// follow domain name notation format + /// (https://tools.ietf.org/html/rfc1035#section-2.3.1). + /// The key prefix SHOULD include the plugin's host company name and/or + /// the plugin name, to minimize the possibility of collisions with keys + /// from other plugins. + /// If a key prefix is specified, it MUST be identical across all + /// topology keys returned by the SP (across all RPCs). + /// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" + /// MUST not both exist. + /// Each value (topological segment) MUST contain 1 or more strings. + /// Each string MUST be 63 characters or less and begin and end with an + /// alphanumeric character with '-', '_', '.', or alphanumerics in + /// between. + /// public class VolumeTopology // (volume.Topology) { [JsonPropertyName("Segments")] diff --git a/src/Docker.DotNet/Models/VolumesPruneResponse.Generated.cs b/src/Docker.DotNet/Models/VolumesPruneResponse.Generated.cs index 45bdefaf..a72b1ce8 100644 --- a/src/Docker.DotNet/Models/VolumesPruneResponse.Generated.cs +++ b/src/Docker.DotNet/Models/VolumesPruneResponse.Generated.cs @@ -1,6 +1,10 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// PruneReport contains the response for Engine API: + /// POST "/volumes/prune" + /// public class VolumesPruneResponse // (volume.PruneReport) { [JsonPropertyName("VolumesDeleted")] diff --git a/src/Docker.DotNet/Models/WaitExitError.Generated.cs b/src/Docker.DotNet/Models/WaitExitError.Generated.cs index 9efbecf0..ce712231 100644 --- a/src/Docker.DotNet/Models/WaitExitError.Generated.cs +++ b/src/Docker.DotNet/Models/WaitExitError.Generated.cs @@ -1,8 +1,16 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// WaitExitError container waiting error, if any + /// + /// swagger:model WaitExitError + /// public class WaitExitError // (container.WaitExitError) { + /// + /// Details of an error + /// [JsonPropertyName("Message")] public string? Message { get; set; } } diff --git a/src/Docker.DotNet/Models/WeightDevice.Generated.cs b/src/Docker.DotNet/Models/WeightDevice.Generated.cs index e0f6e292..dbfb32df 100644 --- a/src/Docker.DotNet/Models/WeightDevice.Generated.cs +++ b/src/Docker.DotNet/Models/WeightDevice.Generated.cs @@ -1,6 +1,9 @@ #nullable enable namespace Docker.DotNet.Models { + /// + /// WeightDevice is a structure that holds device:weight pair + /// public class WeightDevice // (blkiodev.WeightDevice) { [JsonPropertyName("Path")] diff --git a/tools/specgen/csharptype.go b/tools/specgen/csharptype.go index e58935c6..3d46947d 100644 --- a/tools/specgen/csharptype.go +++ b/tools/specgen/csharptype.go @@ -177,6 +177,7 @@ type CSProperty struct { IsOpt bool Attributes []CSAttribute DefaultValue string + Comment string } // CSModelType is a type that represents a reflected type to generate a C# model for. @@ -191,6 +192,7 @@ type CSModelType struct { // completed but as long as this is true we will not attempt to generate the // type more than once. IsStarted bool + Comment string } // NewModel creates a new model type with valid slices @@ -275,7 +277,22 @@ func safeAddUsing(using string, usings []string, added map[string]bool) []string return usings } +func writeXMLComment(w io.Writer, comment string, indent string) { + if comment == "" { + return + } + + fmt.Fprintf(w, "%s/// \n", indent) + escapedComment := escapeXMLComment(comment) + for _, line := range strings.Split(escapedComment, "\n") { + fmt.Fprintf(w, "%s/// %s\n", indent, line) + } + fmt.Fprintf(w, "%s/// \n", indent) +} + func writeClass(w io.Writer, t *CSModelType) { + writeXMLComment(w, t.Comment, " ") + for _, a := range t.Attributes { fmt.Fprintf(w, " %s\n", a) } @@ -344,6 +361,8 @@ func writeConstructors(w io.Writer, typeName string, constructors []CSConstructo func writeProperties(w io.Writer, properties []CSProperty) { len := len(properties) for i, p := range properties { + writeXMLComment(w, p.Comment, " ") + for _, a := range p.Attributes { fmt.Fprintf(w, " %s\n", a) } @@ -367,3 +386,14 @@ func writeProperties(w io.Writer, properties []CSProperty) { } } } + +func escapeXMLComment(text string) string { + replacer := strings.NewReplacer( + "&", "&", + "<", "<", + ">", ">", + "\"", """, + "'", "'", + ) + return replacer.Replace(text) +} diff --git a/tools/specgen/specgen.go b/tools/specgen/specgen.go index 0672cda9..1bcc2cff 100644 --- a/tools/specgen/specgen.go +++ b/tools/specgen/specgen.go @@ -3,8 +3,13 @@ package main import ( "bufio" "fmt" + "go/ast" + "go/parser" + "go/token" + "io/fs" "os" "path" + "path/filepath" "reflect" "slices" "strconv" @@ -26,6 +31,12 @@ import ( var reflectedTypes = map[string]*CSModelType{} +// TypeComments maps package.TypeName to the type's documentation comment +var typeComments = map[string]string{} + +// FieldComments maps package.TypeName.FieldName to the field's documentation comment +var fieldComments = map[string]string{} + func typeToKey(t reflect.Type) string { return t.String() } @@ -639,6 +650,116 @@ func ultimateType(t reflect.Type) reflect.Type { } } +// extractGoCommentsRecursive recursively extracts comments from all Go files in a directory and its subdirectories +func extractGoCommentsRecursive(rootDir string, baseImportPath string) error { + fset := token.NewFileSet() + type fileInfo struct { + importPath string + file *ast.File + } + files := []fileInfo{} + + // Walk the directory tree + err := filepath.WalkDir(rootDir, func(filePath string, d fs.DirEntry, err error) error { + if err != nil { + return nil + } + + // Skip vendor directories + if d.IsDir() && strings.Contains(filePath, "vendor") { + return filepath.SkipDir + } + + // Skip non-.go files and test files + if d.IsDir() || !strings.HasSuffix(d.Name(), ".go") || strings.HasSuffix(d.Name(), "_test.go") { + return nil + } + + // Parse the Go file + file, err := parser.ParseFile(fset, filePath, nil, parser.ParseComments) + if err != nil { + return nil // Skip unparseable files + } + + // Compute the full import path for this file + fileDir := filepath.Dir(filePath) + rel, _ := filepath.Rel(rootDir, fileDir) + fullImportPath := baseImportPath + if rel != "." { + fullImportPath = baseImportPath + "/" + filepath.ToSlash(rel) + } + + files = append(files, fileInfo{importPath: fullImportPath, file: file}) + return nil + }) + + if err != nil { + return err + } + + for _, fileInfo := range files { + file := fileInfo.file + importPath := fileInfo.importPath + + for _, decl := range file.Decls { + switch d := decl.(type) { + case *ast.GenDecl: + if d.Tok == token.TYPE { + for _, spec := range d.Specs { + if typeSpec, ok := spec.(*ast.TypeSpec); ok { + typeName := typeSpec.Name.Name + + if d.Doc != nil { + comment := strings.TrimSpace(d.Doc.Text()) + if comment != "" { + typeKey := fmt.Sprintf("%s.%s", importPath, typeName) + typeComments[typeKey] = comment + } + } + + if structType, ok := typeSpec.Type.(*ast.StructType); ok && structType.Fields != nil { + for _, field := range structType.Fields.List { + for _, fieldName := range field.Names { + if field.Doc != nil { + fieldComment := strings.TrimSpace(field.Doc.Text()) + if fieldComment != "" { + fieldKey := fmt.Sprintf("%s.%s.%s", importPath, typeName, fieldName.Name) + fieldComments[fieldKey] = fieldComment + } + } + } + } + } + } + } + } + } + } + } + + return nil +} + +// getTypeComment retrieves the documentation comment for a type +func getTypeComment(t reflect.Type) string { + // Look up using the full package path + typeKey := fmt.Sprintf("%s.%s", t.PkgPath(), t.Name()) + if comment, ok := typeComments[typeKey]; ok { + return comment + } + return "" +} + +// getFieldComment retrieves the documentation comment for a struct field +func getFieldComment(t reflect.Type, fieldName string) string { + // Look up using the full package path + fieldKey := fmt.Sprintf("%s.%s.%s", t.PkgPath(), t.Name(), fieldName) + if comment, ok := fieldComments[fieldKey]; ok { + return comment + } + return "" +} + func reflectTypeMembers(t reflect.Type, m *CSModelType) { for i := 0; i < t.NumField(); i++ { f := t.Field(i) @@ -661,8 +782,9 @@ func reflectTypeMembers(t reflect.Type, m *CSModelType) { reflectedTypes[typeToKey(f.Type)] = inlineModel csProp := CSProperty{ - Name: f.Name, - Type: CSType{"", inlineStructName}, + Name: f.Name, + Type: CSType{"", inlineStructName}, + Comment: getFieldComment(t, f.Name), } jsonTag := strings.Split(f.Tag.Get("json"), ",") @@ -719,7 +841,11 @@ func reflectTypeMembers(t reflect.Type, m *CSModelType) { } // Create our new property. - csProp := CSProperty{Name: f.Name, Type: csType(f.Type, false)} + csProp := CSProperty{ + Name: f.Name, + Type: csType(f.Type, false), + Comment: getFieldComment(t, f.Name), + } jsonName := f.Name if jsonTag[0] != "" { @@ -811,6 +937,7 @@ func reflectType(t reflect.Type) { if activeType == nil { activeType = NewModel(name, t.String()) + activeType.Comment = getTypeComment(t) } activeType.IsStarted = true @@ -837,6 +964,23 @@ func main() { sourcePath, _ = os.Getwd() } + // Extract comments from moby/moby source files + mobyModules := []string{ + "github.com/moby/moby/api", + "github.com/moby/moby/client", + } + + for _, moduleName := range mobyModules { + moduleInfo, err := findGoModulePath(moduleName) + if err != nil { + fmt.Printf("Warning: Failed to find module %s: %v\n", moduleName, err) + continue + } + if err := extractGoCommentsRecursive(moduleInfo.Path, moduleInfo.ImportPath); err != nil { + fmt.Printf("Warning: Failed to extract comments from %s: %v\n", moduleInfo.Path, err) + } + } + // Delete any previously generated files. if files, err := os.ReadDir(sourcePath); err != nil { panic(err) @@ -879,3 +1023,71 @@ func main() { os.Rename(f.Name(), path.Join(sourcePath, v.Name+".Generated.cs")) } } + +// ModuleInfo contains both the filesystem path and import path for a Go module +type ModuleInfo struct { + Path string // filesystem path to the module + ImportPath string // import path like github.com/moby/moby/api +} + +// findGoModulePath attempts to find the path to a Go module in GOPATH and returns both the filesystem path and import path +func findGoModulePath(moduleName string) (*ModuleInfo, error) { + goPath := os.Getenv("GOPATH") + if goPath == "" { + home, err := os.UserHomeDir() + if err != nil { + return nil, err + } + goPath = filepath.Join(home, "go") + } + + // Look in $GOPATH/pkg/mod for the module + modCacheBase := filepath.Join(goPath, "pkg", "mod", filepath.FromSlash(moduleName)) + baseDir := filepath.Dir(modCacheBase) + baseName := filepath.Base(modCacheBase) + + entries, err := os.ReadDir(baseDir) + if err != nil { + return nil, err + } + + // Find the latest version of the module (e.g., "moby@v1.44.0") + var latestVersion string + var latestPath string + + for _, entry := range entries { + if !entry.IsDir() { + continue + } + name := entry.Name() + // Check if this is a version of our module (e.g., "moby@v1.44.0") + if strings.HasPrefix(name, baseName+"@") { + if latestVersion == "" || name > latestVersion { + latestVersion = name + latestPath = filepath.Join(baseDir, name) + } + } + } + + if latestPath != "" { + // Extract import path from the filesystem path + fspath := latestPath + + // Remove version suffix (after @) + atIndex := strings.Index(fspath, "@") + if atIndex != -1 { + fspath = fspath[:atIndex] + } + + // Remove $GOPATH/pkg/mod/ prefix + modPrefix := filepath.Join(goPath, "pkg", "mod") + string(os.PathSeparator) + if after, ok := strings.CutPrefix(fspath, modPrefix); ok { + fspath = after + } + + importPath := filepath.ToSlash(fspath) + return &ModuleInfo{Path: latestPath, ImportPath: importPath}, nil + } + + return nil, fmt.Errorf("module %s not found in Go module cache", moduleName) +}