github.com/moby/docker@v26.1.3+incompatible/docs/api/v1.44.yaml (about)

     1  # A Swagger 2.0 (a.k.a. OpenAPI) definition of the Engine API.
     2  #
     3  # This is used for generating API documentation and the types used by the
     4  # client/server. See api/README.md for more information.
     5  #
     6  # Some style notes:
     7  # - This file is used by ReDoc, which allows GitHub Flavored Markdown in
     8  #   descriptions.
     9  # - There is no maximum line length, for ease of editing and pretty diffs.
    10  # - operationIds are in the format "NounVerb", with a singular noun.
    11  
    12  swagger: "2.0"
    13  schemes:
    14    - "http"
    15    - "https"
    16  produces:
    17    - "application/json"
    18    - "text/plain"
    19  consumes:
    20    - "application/json"
    21    - "text/plain"
    22  basePath: "/v1.44"
    23  info:
    24    title: "Docker Engine API"
    25    version: "1.44"
    26    x-logo:
    27      url: "https://docs.docker.com/assets/images/logo-docker-main.png"
    28    description: |
    29      The Engine API is an HTTP API served by Docker Engine. It is the API the
    30      Docker client uses to communicate with the Engine, so everything the Docker
    31      client can do can be done with the API.
    32  
    33      Most of the client's commands map directly to API endpoints (e.g. `docker ps`
    34      is `GET /containers/json`). The notable exception is running containers,
    35      which consists of several API calls.
    36  
    37      # Errors
    38  
    39      The API uses standard HTTP status codes to indicate the success or failure
    40      of the API call. The body of the response will be JSON in the following
    41      format:
    42  
    43      ```
    44      {
    45        "message": "page not found"
    46      }
    47      ```
    48  
    49      # Versioning
    50  
    51      The API is usually changed in each release, so API calls are versioned to
    52      ensure that clients don't break. To lock to a specific version of the API,
    53      you prefix the URL with its version, for example, call `/v1.30/info` to use
    54      the v1.30 version of the `/info` endpoint. If the API version specified in
    55      the URL is not supported by the daemon, a HTTP `400 Bad Request` error message
    56      is returned.
    57  
    58      If you omit the version-prefix, the current version of the API (v1.44) is used.
    59      For example, calling `/info` is the same as calling `/v1.44/info`. Using the
    60      API without a version-prefix is deprecated and will be removed in a future release.
    61  
    62      Engine releases in the near future should support this version of the API,
    63      so your client will continue to work even if it is talking to a newer Engine.
    64  
    65      The API uses an open schema model, which means server may add extra properties
    66      to responses. Likewise, the server will ignore any extra query parameters and
    67      request body properties. When you write clients, you need to ignore additional
    68      properties in responses to ensure they do not break when talking to newer
    69      daemons.
    70  
    71  
    72      # Authentication
    73  
    74      Authentication for registries is handled client side. The client has to send
    75      authentication details to various endpoints that need to communicate with
    76      registries, such as `POST /images/(name)/push`. These are sent as
    77      `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5)
    78      (JSON) string with the following structure:
    79  
    80      ```
    81      {
    82        "username": "string",
    83        "password": "string",
    84        "email": "string",
    85        "serveraddress": "string"
    86      }
    87      ```
    88  
    89      The `serveraddress` is a domain/IP without a protocol. Throughout this
    90      structure, double quotes are required.
    91  
    92      If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth),
    93      you can just pass this instead of credentials:
    94  
    95      ```
    96      {
    97        "identitytoken": "9cbaf023786cd7..."
    98      }
    99      ```
   100  
   101  # The tags on paths define the menu sections in the ReDoc documentation, so
   102  # the usage of tags must make sense for that:
   103  # - They should be singular, not plural.
   104  # - There should not be too many tags, or the menu becomes unwieldy. For
   105  #   example, it is preferable to add a path to the "System" tag instead of
   106  #   creating a tag with a single path in it.
   107  # - The order of tags in this list defines the order in the menu.
   108  tags:
   109    # Primary objects
   110    - name: "Container"
   111      x-displayName: "Containers"
   112      description: |
   113        Create and manage containers.
   114    - name: "Image"
   115      x-displayName: "Images"
   116    - name: "Network"
   117      x-displayName: "Networks"
   118      description: |
   119        Networks are user-defined networks that containers can be attached to.
   120        See the [networking documentation](https://docs.docker.com/network/)
   121        for more information.
   122    - name: "Volume"
   123      x-displayName: "Volumes"
   124      description: |
   125        Create and manage persistent storage that can be attached to containers.
   126    - name: "Exec"
   127      x-displayName: "Exec"
   128      description: |
   129        Run new commands inside running containers. Refer to the
   130        [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/)
   131        for more information.
   132  
   133        To exec a command in a container, you first need to create an exec instance,
   134        then start it. These two API endpoints are wrapped up in a single command-line
   135        command, `docker exec`.
   136  
   137    # Swarm things
   138    - name: "Swarm"
   139      x-displayName: "Swarm"
   140      description: |
   141        Engines can be clustered together in a swarm. Refer to the
   142        [swarm mode documentation](https://docs.docker.com/engine/swarm/)
   143        for more information.
   144    - name: "Node"
   145      x-displayName: "Nodes"
   146      description: |
   147        Nodes are instances of the Engine participating in a swarm. Swarm mode
   148        must be enabled for these endpoints to work.
   149    - name: "Service"
   150      x-displayName: "Services"
   151      description: |
   152        Services are the definitions of tasks to run on a swarm. Swarm mode must
   153        be enabled for these endpoints to work.
   154    - name: "Task"
   155      x-displayName: "Tasks"
   156      description: |
   157        A task is a container running on a swarm. It is the atomic scheduling unit
   158        of swarm. Swarm mode must be enabled for these endpoints to work.
   159    - name: "Secret"
   160      x-displayName: "Secrets"
   161      description: |
   162        Secrets are sensitive data that can be used by services. Swarm mode must
   163        be enabled for these endpoints to work.
   164    - name: "Config"
   165      x-displayName: "Configs"
   166      description: |
   167        Configs are application configurations that can be used by services. Swarm
   168        mode must be enabled for these endpoints to work.
   169    # System things
   170    - name: "Plugin"
   171      x-displayName: "Plugins"
   172    - name: "System"
   173      x-displayName: "System"
   174  
   175  definitions:
   176    Port:
   177      type: "object"
   178      description: "An open port on a container"
   179      required: [PrivatePort, Type]
   180      properties:
   181        IP:
   182          type: "string"
   183          format: "ip-address"
   184          description: "Host IP address that the container's port is mapped to"
   185        PrivatePort:
   186          type: "integer"
   187          format: "uint16"
   188          x-nullable: false
   189          description: "Port on the container"
   190        PublicPort:
   191          type: "integer"
   192          format: "uint16"
   193          description: "Port exposed on the host"
   194        Type:
   195          type: "string"
   196          x-nullable: false
   197          enum: ["tcp", "udp", "sctp"]
   198      example:
   199        PrivatePort: 8080
   200        PublicPort: 80
   201        Type: "tcp"
   202  
   203    MountPoint:
   204      type: "object"
   205      description: |
   206        MountPoint represents a mount point configuration inside the container.
   207        This is used for reporting the mountpoints in use by a container.
   208      properties:
   209        Type:
   210          description: |
   211            The mount type:
   212  
   213            - `bind` a mount of a file or directory from the host into the container.
   214            - `volume` a docker volume with the given `Name`.
   215            - `tmpfs` a `tmpfs`.
   216            - `npipe` a named pipe from the host into the container.
   217            - `cluster` a Swarm cluster volume
   218          type: "string"
   219          enum:
   220            - "bind"
   221            - "volume"
   222            - "tmpfs"
   223            - "npipe"
   224            - "cluster"
   225          example: "volume"
   226        Name:
   227          description: |
   228            Name is the name reference to the underlying data defined by `Source`
   229            e.g., the volume name.
   230          type: "string"
   231          example: "myvolume"
   232        Source:
   233          description: |
   234            Source location of the mount.
   235  
   236            For volumes, this contains the storage location of the volume (within
   237            `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains
   238            the source (host) part of the bind-mount. For `tmpfs` mount points, this
   239            field is empty.
   240          type: "string"
   241          example: "/var/lib/docker/volumes/myvolume/_data"
   242        Destination:
   243          description: |
   244            Destination is the path relative to the container root (`/`) where
   245            the `Source` is mounted inside the container.
   246          type: "string"
   247          example: "/usr/share/nginx/html/"
   248        Driver:
   249          description: |
   250            Driver is the volume driver used to create the volume (if it is a volume).
   251          type: "string"
   252          example: "local"
   253        Mode:
   254          description: |
   255            Mode is a comma separated list of options supplied by the user when
   256            creating the bind/volume mount.
   257  
   258            The default is platform-specific (`"z"` on Linux, empty on Windows).
   259          type: "string"
   260          example: "z"
   261        RW:
   262          description: |
   263            Whether the mount is mounted writable (read-write).
   264          type: "boolean"
   265          example: true
   266        Propagation:
   267          description: |
   268            Propagation describes how mounts are propagated from the host into the
   269            mount point, and vice-versa. Refer to the [Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt)
   270            for details. This field is not used on Windows.
   271          type: "string"
   272          example: ""
   273  
   274    DeviceMapping:
   275      type: "object"
   276      description: "A device mapping between the host and container"
   277      properties:
   278        PathOnHost:
   279          type: "string"
   280        PathInContainer:
   281          type: "string"
   282        CgroupPermissions:
   283          type: "string"
   284      example:
   285        PathOnHost: "/dev/deviceName"
   286        PathInContainer: "/dev/deviceName"
   287        CgroupPermissions: "mrw"
   288  
   289    DeviceRequest:
   290      type: "object"
   291      description: "A request for devices to be sent to device drivers"
   292      properties:
   293        Driver:
   294          type: "string"
   295          example: "nvidia"
   296        Count:
   297          type: "integer"
   298          example: -1
   299        DeviceIDs:
   300          type: "array"
   301          items:
   302            type: "string"
   303          example:
   304            - "0"
   305            - "1"
   306            - "GPU-fef8089b-4820-abfc-e83e-94318197576e"
   307        Capabilities:
   308          description: |
   309            A list of capabilities; an OR list of AND lists of capabilities.
   310          type: "array"
   311          items:
   312            type: "array"
   313            items:
   314              type: "string"
   315          example:
   316            # gpu AND nvidia AND compute
   317            - ["gpu", "nvidia", "compute"]
   318        Options:
   319          description: |
   320            Driver-specific options, specified as a key/value pairs. These options
   321            are passed directly to the driver.
   322          type: "object"
   323          additionalProperties:
   324            type: "string"
   325  
   326    ThrottleDevice:
   327      type: "object"
   328      properties:
   329        Path:
   330          description: "Device path"
   331          type: "string"
   332        Rate:
   333          description: "Rate"
   334          type: "integer"
   335          format: "int64"
   336          minimum: 0
   337  
   338    Mount:
   339      type: "object"
   340      properties:
   341        Target:
   342          description: "Container path."
   343          type: "string"
   344        Source:
   345          description: "Mount source (e.g. a volume name, a host path)."
   346          type: "string"
   347        Type:
   348          description: |
   349            The mount type. Available types:
   350  
   351            - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.
   352            - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.
   353            - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.
   354            - `npipe` Mounts a named pipe from the host into the container. Must exist prior to creating the container.
   355            - `cluster` a Swarm cluster volume
   356          type: "string"
   357          enum:
   358            - "bind"
   359            - "volume"
   360            - "tmpfs"
   361            - "npipe"
   362            - "cluster"
   363        ReadOnly:
   364          description: "Whether the mount should be read-only."
   365          type: "boolean"
   366        Consistency:
   367          description: "The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`."
   368          type: "string"
   369        BindOptions:
   370          description: "Optional configuration for the `bind` type."
   371          type: "object"
   372          properties:
   373            Propagation:
   374              description: "A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`."
   375              type: "string"
   376              enum:
   377                - "private"
   378                - "rprivate"
   379                - "shared"
   380                - "rshared"
   381                - "slave"
   382                - "rslave"
   383            NonRecursive:
   384              description: "Disable recursive bind mount."
   385              type: "boolean"
   386              default: false
   387            CreateMountpoint:
   388              description: "Create mount point on host if missing"
   389              type: "boolean"
   390              default: false
   391            ReadOnlyNonRecursive:
   392              description: |
   393                 Make the mount non-recursively read-only, but still leave the mount recursive
   394                 (unless NonRecursive is set to true in conjunction).
   395              type: "boolean"
   396              default: false
   397            ReadOnlyForceRecursive:
   398              description: "Raise an error if the mount cannot be made recursively read-only."
   399              type: "boolean"
   400              default: false
   401        VolumeOptions:
   402          description: "Optional configuration for the `volume` type."
   403          type: "object"
   404          properties:
   405            NoCopy:
   406              description: "Populate volume with data from the target."
   407              type: "boolean"
   408              default: false
   409            Labels:
   410              description: "User-defined key/value metadata."
   411              type: "object"
   412              additionalProperties:
   413                type: "string"
   414            DriverConfig:
   415              description: "Map of driver specific options"
   416              type: "object"
   417              properties:
   418                Name:
   419                  description: "Name of the driver to use to create the volume."
   420                  type: "string"
   421                Options:
   422                  description: "key/value map of driver specific options."
   423                  type: "object"
   424                  additionalProperties:
   425                    type: "string"
   426        TmpfsOptions:
   427          description: "Optional configuration for the `tmpfs` type."
   428          type: "object"
   429          properties:
   430            SizeBytes:
   431              description: "The size for the tmpfs mount in bytes."
   432              type: "integer"
   433              format: "int64"
   434            Mode:
   435              description: "The permission mode for the tmpfs mount in an integer."
   436              type: "integer"
   437  
   438    RestartPolicy:
   439      description: |
   440        The behavior to apply when the container exits. The default is not to
   441        restart.
   442  
   443        An ever increasing delay (double the previous delay, starting at 100ms) is
   444        added before each restart to prevent flooding the server.
   445      type: "object"
   446      properties:
   447        Name:
   448          type: "string"
   449          description: |
   450            - Empty string means not to restart
   451            - `no` Do not automatically restart
   452            - `always` Always restart
   453            - `unless-stopped` Restart always except when the user has manually stopped the container
   454            - `on-failure` Restart only when the container exit code is non-zero
   455          enum:
   456            - ""
   457            - "no"
   458            - "always"
   459            - "unless-stopped"
   460            - "on-failure"
   461        MaximumRetryCount:
   462          type: "integer"
   463          description: |
   464            If `on-failure` is used, the number of times to retry before giving up.
   465  
   466    Resources:
   467      description: "A container's resources (cgroups config, ulimits, etc)"
   468      type: "object"
   469      properties:
   470        # Applicable to all platforms
   471        CpuShares:
   472          description: |
   473            An integer value representing this container's relative CPU weight
   474            versus other containers.
   475          type: "integer"
   476        Memory:
   477          description: "Memory limit in bytes."
   478          type: "integer"
   479          format: "int64"
   480          default: 0
   481        # Applicable to UNIX platforms
   482        CgroupParent:
   483          description: |
   484            Path to `cgroups` under which the container's `cgroup` is created. If
   485            the path is not absolute, the path is considered to be relative to the
   486            `cgroups` path of the init process. Cgroups are created if they do not
   487            already exist.
   488          type: "string"
   489        BlkioWeight:
   490          description: "Block IO weight (relative weight)."
   491          type: "integer"
   492          minimum: 0
   493          maximum: 1000
   494        BlkioWeightDevice:
   495          description: |
   496            Block IO weight (relative device weight) in the form:
   497  
   498            ```
   499            [{"Path": "device_path", "Weight": weight}]
   500            ```
   501          type: "array"
   502          items:
   503            type: "object"
   504            properties:
   505              Path:
   506                type: "string"
   507              Weight:
   508                type: "integer"
   509                minimum: 0
   510        BlkioDeviceReadBps:
   511          description: |
   512            Limit read rate (bytes per second) from a device, in the form:
   513  
   514            ```
   515            [{"Path": "device_path", "Rate": rate}]
   516            ```
   517          type: "array"
   518          items:
   519            $ref: "#/definitions/ThrottleDevice"
   520        BlkioDeviceWriteBps:
   521          description: |
   522            Limit write rate (bytes per second) to a device, in the form:
   523  
   524            ```
   525            [{"Path": "device_path", "Rate": rate}]
   526            ```
   527          type: "array"
   528          items:
   529            $ref: "#/definitions/ThrottleDevice"
   530        BlkioDeviceReadIOps:
   531          description: |
   532            Limit read rate (IO per second) from a device, in the form:
   533  
   534            ```
   535            [{"Path": "device_path", "Rate": rate}]
   536            ```
   537          type: "array"
   538          items:
   539            $ref: "#/definitions/ThrottleDevice"
   540        BlkioDeviceWriteIOps:
   541          description: |
   542            Limit write rate (IO per second) to a device, in the form:
   543  
   544            ```
   545            [{"Path": "device_path", "Rate": rate}]
   546            ```
   547          type: "array"
   548          items:
   549            $ref: "#/definitions/ThrottleDevice"
   550        CpuPeriod:
   551          description: "The length of a CPU period in microseconds."
   552          type: "integer"
   553          format: "int64"
   554        CpuQuota:
   555          description: |
   556            Microseconds of CPU time that the container can get in a CPU period.
   557          type: "integer"
   558          format: "int64"
   559        CpuRealtimePeriod:
   560          description: |
   561            The length of a CPU real-time period in microseconds. Set to 0 to
   562            allocate no time allocated to real-time tasks.
   563          type: "integer"
   564          format: "int64"
   565        CpuRealtimeRuntime:
   566          description: |
   567            The length of a CPU real-time runtime in microseconds. Set to 0 to
   568            allocate no time allocated to real-time tasks.
   569          type: "integer"
   570          format: "int64"
   571        CpusetCpus:
   572          description: |
   573            CPUs in which to allow execution (e.g., `0-3`, `0,1`).
   574          type: "string"
   575          example: "0-3"
   576        CpusetMems:
   577          description: |
   578            Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only
   579            effective on NUMA systems.
   580          type: "string"
   581        Devices:
   582          description: "A list of devices to add to the container."
   583          type: "array"
   584          items:
   585            $ref: "#/definitions/DeviceMapping"
   586        DeviceCgroupRules:
   587          description: "a list of cgroup rules to apply to the container"
   588          type: "array"
   589          items:
   590            type: "string"
   591            example: "c 13:* rwm"
   592        DeviceRequests:
   593          description: |
   594            A list of requests for devices to be sent to device drivers.
   595          type: "array"
   596          items:
   597            $ref: "#/definitions/DeviceRequest"
   598        KernelMemoryTCP:
   599          description: |
   600            Hard limit for kernel TCP buffer memory (in bytes). Depending on the
   601            OCI runtime in use, this option may be ignored. It is no longer supported
   602            by the default (runc) runtime.
   603  
   604            This field is omitted when empty.
   605          type: "integer"
   606          format: "int64"
   607        MemoryReservation:
   608          description: "Memory soft limit in bytes."
   609          type: "integer"
   610          format: "int64"
   611        MemorySwap:
   612          description: |
   613            Total memory limit (memory + swap). Set as `-1` to enable unlimited
   614            swap.
   615          type: "integer"
   616          format: "int64"
   617        MemorySwappiness:
   618          description: |
   619            Tune a container's memory swappiness behavior. Accepts an integer
   620            between 0 and 100.
   621          type: "integer"
   622          format: "int64"
   623          minimum: 0
   624          maximum: 100
   625        NanoCpus:
   626          description: "CPU quota in units of 10<sup>-9</sup> CPUs."
   627          type: "integer"
   628          format: "int64"
   629        OomKillDisable:
   630          description: "Disable OOM Killer for the container."
   631          type: "boolean"
   632        Init:
   633          description: |
   634            Run an init inside the container that forwards signals and reaps
   635            processes. This field is omitted if empty, and the default (as
   636            configured on the daemon) is used.
   637          type: "boolean"
   638          x-nullable: true
   639        PidsLimit:
   640          description: |
   641            Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`
   642            to not change.
   643          type: "integer"
   644          format: "int64"
   645          x-nullable: true
   646        Ulimits:
   647          description: |
   648            A list of resource limits to set in the container. For example:
   649  
   650            ```
   651            {"Name": "nofile", "Soft": 1024, "Hard": 2048}
   652            ```
   653          type: "array"
   654          items:
   655            type: "object"
   656            properties:
   657              Name:
   658                description: "Name of ulimit"
   659                type: "string"
   660              Soft:
   661                description: "Soft limit"
   662                type: "integer"
   663              Hard:
   664                description: "Hard limit"
   665                type: "integer"
   666        # Applicable to Windows
   667        CpuCount:
   668          description: |
   669            The number of usable CPUs (Windows only).
   670  
   671            On Windows Server containers, the processor resource controls are
   672            mutually exclusive. The order of precedence is `CPUCount` first, then
   673            `CPUShares`, and `CPUPercent` last.
   674          type: "integer"
   675          format: "int64"
   676        CpuPercent:
   677          description: |
   678            The usable percentage of the available CPUs (Windows only).
   679  
   680            On Windows Server containers, the processor resource controls are
   681            mutually exclusive. The order of precedence is `CPUCount` first, then
   682            `CPUShares`, and `CPUPercent` last.
   683          type: "integer"
   684          format: "int64"
   685        IOMaximumIOps:
   686          description: "Maximum IOps for the container system drive (Windows only)"
   687          type: "integer"
   688          format: "int64"
   689        IOMaximumBandwidth:
   690          description: |
   691            Maximum IO in bytes per second for the container system drive
   692            (Windows only).
   693          type: "integer"
   694          format: "int64"
   695  
   696    Limit:
   697      description: |
   698        An object describing a limit on resources which can be requested by a task.
   699      type: "object"
   700      properties:
   701        NanoCPUs:
   702          type: "integer"
   703          format: "int64"
   704          example: 4000000000
   705        MemoryBytes:
   706          type: "integer"
   707          format: "int64"
   708          example: 8272408576
   709        Pids:
   710          description: |
   711            Limits the maximum number of PIDs in the container. Set `0` for unlimited.
   712          type: "integer"
   713          format: "int64"
   714          default: 0
   715          example: 100
   716  
   717    ResourceObject:
   718      description: |
   719        An object describing the resources which can be advertised by a node and
   720        requested by a task.
   721      type: "object"
   722      properties:
   723        NanoCPUs:
   724          type: "integer"
   725          format: "int64"
   726          example: 4000000000
   727        MemoryBytes:
   728          type: "integer"
   729          format: "int64"
   730          example: 8272408576
   731        GenericResources:
   732          $ref: "#/definitions/GenericResources"
   733  
   734    GenericResources:
   735      description: |
   736        User-defined resources can be either Integer resources (e.g, `SSD=3`) or
   737        String resources (e.g, `GPU=UUID1`).
   738      type: "array"
   739      items:
   740        type: "object"
   741        properties:
   742          NamedResourceSpec:
   743            type: "object"
   744            properties:
   745              Kind:
   746                type: "string"
   747              Value:
   748                type: "string"
   749          DiscreteResourceSpec:
   750            type: "object"
   751            properties:
   752              Kind:
   753                type: "string"
   754              Value:
   755                type: "integer"
   756                format: "int64"
   757      example:
   758        - DiscreteResourceSpec:
   759            Kind: "SSD"
   760            Value: 3
   761        - NamedResourceSpec:
   762            Kind: "GPU"
   763            Value: "UUID1"
   764        - NamedResourceSpec:
   765            Kind: "GPU"
   766            Value: "UUID2"
   767  
   768    HealthConfig:
   769      description: "A test to perform to check that the container is healthy."
   770      type: "object"
   771      properties:
   772        Test:
   773          description: |
   774            The test to perform. Possible values are:
   775  
   776            - `[]` inherit healthcheck from image or parent image
   777            - `["NONE"]` disable healthcheck
   778            - `["CMD", args...]` exec arguments directly
   779            - `["CMD-SHELL", command]` run command with system's default shell
   780          type: "array"
   781          items:
   782            type: "string"
   783        Interval:
   784          description: |
   785            The time to wait between checks in nanoseconds. It should be 0 or at
   786            least 1000000 (1 ms). 0 means inherit.
   787          type: "integer"
   788          format: "int64"
   789        Timeout:
   790          description: |
   791            The time to wait before considering the check to have hung. It should
   792            be 0 or at least 1000000 (1 ms). 0 means inherit.
   793          type: "integer"
   794          format: "int64"
   795        Retries:
   796          description: |
   797            The number of consecutive failures needed to consider a container as
   798            unhealthy. 0 means inherit.
   799          type: "integer"
   800        StartPeriod:
   801          description: |
   802            Start period for the container to initialize before starting
   803            health-retries countdown in nanoseconds. It should be 0 or at least
   804            1000000 (1 ms). 0 means inherit.
   805          type: "integer"
   806          format: "int64"
   807        StartInterval:
   808          description: |
   809            The time to wait between checks in nanoseconds during the start period.
   810            It should be 0 or at least 1000000 (1 ms). 0 means inherit.
   811          type: "integer"
   812          format: "int64"
   813  
   814    Health:
   815      description: |
   816        Health stores information about the container's healthcheck results.
   817      type: "object"
   818      x-nullable: true
   819      properties:
   820        Status:
   821          description: |
   822            Status is one of `none`, `starting`, `healthy` or `unhealthy`
   823  
   824            - "none"      Indicates there is no healthcheck
   825            - "starting"  Starting indicates that the container is not yet ready
   826            - "healthy"   Healthy indicates that the container is running correctly
   827            - "unhealthy" Unhealthy indicates that the container has a problem
   828          type: "string"
   829          enum:
   830            - "none"
   831            - "starting"
   832            - "healthy"
   833            - "unhealthy"
   834          example: "healthy"
   835        FailingStreak:
   836          description: "FailingStreak is the number of consecutive failures"
   837          type: "integer"
   838          example: 0
   839        Log:
   840          type: "array"
   841          description: |
   842            Log contains the last few results (oldest first)
   843          items:
   844            $ref: "#/definitions/HealthcheckResult"
   845  
   846    HealthcheckResult:
   847      description: |
   848        HealthcheckResult stores information about a single run of a healthcheck probe
   849      type: "object"
   850      x-nullable: true
   851      properties:
   852        Start:
   853          description: |
   854            Date and time at which this check started in
   855            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
   856          type: "string"
   857          format: "date-time"
   858          example: "2020-01-04T10:44:24.496525531Z"
   859        End:
   860          description: |
   861            Date and time at which this check ended in
   862            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
   863          type: "string"
   864          format: "dateTime"
   865          example: "2020-01-04T10:45:21.364524523Z"
   866        ExitCode:
   867          description: |
   868            ExitCode meanings:
   869  
   870            - `0` healthy
   871            - `1` unhealthy
   872            - `2` reserved (considered unhealthy)
   873            - other values: error running probe
   874          type: "integer"
   875          example: 0
   876        Output:
   877          description: "Output from last check"
   878          type: "string"
   879  
   880    HostConfig:
   881      description: "Container configuration that depends on the host we are running on"
   882      allOf:
   883        - $ref: "#/definitions/Resources"
   884        - type: "object"
   885          properties:
   886            # Applicable to all platforms
   887            Binds:
   888              type: "array"
   889              description: |
   890                A list of volume bindings for this container. Each volume binding
   891                is a string in one of these forms:
   892  
   893                - `host-src:container-dest[:options]` to bind-mount a host path
   894                  into the container. Both `host-src`, and `container-dest` must
   895                  be an _absolute_ path.
   896                - `volume-name:container-dest[:options]` to bind-mount a volume
   897                  managed by a volume driver into the container. `container-dest`
   898                  must be an _absolute_ path.
   899  
   900                `options` is an optional, comma-delimited list of:
   901  
   902                - `nocopy` disables automatic copying of data from the container
   903                  path to the volume. The `nocopy` flag only applies to named volumes.
   904                - `[ro|rw]` mounts a volume read-only or read-write, respectively.
   905                  If omitted or set to `rw`, volumes are mounted read-write.
   906                - `[z|Z]` applies SELinux labels to allow or deny multiple containers
   907                  to read and write to the same volume.
   908                    - `z`: a _shared_ content label is applied to the content. This
   909                      label indicates that multiple containers can share the volume
   910                      content, for both reading and writing.
   911                    - `Z`: a _private unshared_ label is applied to the content.
   912                      This label indicates that only the current container can use
   913                      a private volume. Labeling systems such as SELinux require
   914                      proper labels to be placed on volume content that is mounted
   915                      into a container. Without a label, the security system can
   916                      prevent a container's processes from using the content. By
   917                      default, the labels set by the host operating system are not
   918                      modified.
   919                - `[[r]shared|[r]slave|[r]private]` specifies mount
   920                  [propagation behavior](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt).
   921                  This only applies to bind-mounted volumes, not internal volumes
   922                  or named volumes. Mount propagation requires the source mount
   923                  point (the location where the source directory is mounted in the
   924                  host operating system) to have the correct propagation properties.
   925                  For shared volumes, the source mount point must be set to `shared`.
   926                  For slave volumes, the mount must be set to either `shared` or
   927                  `slave`.
   928              items:
   929                type: "string"
   930            ContainerIDFile:
   931              type: "string"
   932              description: "Path to a file where the container ID is written"
   933            LogConfig:
   934              type: "object"
   935              description: "The logging configuration for this container"
   936              properties:
   937                Type:
   938                  type: "string"
   939                  enum:
   940                    - "json-file"
   941                    - "syslog"
   942                    - "journald"
   943                    - "gelf"
   944                    - "fluentd"
   945                    - "awslogs"
   946                    - "splunk"
   947                    - "etwlogs"
   948                    - "none"
   949                Config:
   950                  type: "object"
   951                  additionalProperties:
   952                    type: "string"
   953            NetworkMode:
   954              type: "string"
   955              description: |
   956                Network mode to use for this container. Supported standard values
   957                are: `bridge`, `host`, `none`, and `container:<name|id>`. Any
   958                other value is taken as a custom network's name to which this
   959                container should connect to.
   960            PortBindings:
   961              $ref: "#/definitions/PortMap"
   962            RestartPolicy:
   963              $ref: "#/definitions/RestartPolicy"
   964            AutoRemove:
   965              type: "boolean"
   966              description: |
   967                Automatically remove the container when the container's process
   968                exits. This has no effect if `RestartPolicy` is set.
   969            VolumeDriver:
   970              type: "string"
   971              description: "Driver that this container uses to mount volumes."
   972            VolumesFrom:
   973              type: "array"
   974              description: |
   975                A list of volumes to inherit from another container, specified in
   976                the form `<container name>[:<ro|rw>]`.
   977              items:
   978                type: "string"
   979            Mounts:
   980              description: |
   981                Specification for mounts to be added to the container.
   982              type: "array"
   983              items:
   984                $ref: "#/definitions/Mount"
   985            ConsoleSize:
   986              type: "array"
   987              description: |
   988                Initial console size, as an `[height, width]` array.
   989              x-nullable: true
   990              minItems: 2
   991              maxItems: 2
   992              items:
   993                type: "integer"
   994                minimum: 0
   995            Annotations:
   996              type: "object"
   997              description: |
   998                Arbitrary non-identifying metadata attached to container and
   999                provided to the runtime when the container is started.
  1000              additionalProperties:
  1001                type: "string"
  1002  
  1003            # Applicable to UNIX platforms
  1004            CapAdd:
  1005              type: "array"
  1006              description: |
  1007                A list of kernel capabilities to add to the container. Conflicts
  1008                with option 'Capabilities'.
  1009              items:
  1010                type: "string"
  1011            CapDrop:
  1012              type: "array"
  1013              description: |
  1014                A list of kernel capabilities to drop from the container. Conflicts
  1015                with option 'Capabilities'.
  1016              items:
  1017                type: "string"
  1018            CgroupnsMode:
  1019              type: "string"
  1020              enum:
  1021                - "private"
  1022                - "host"
  1023              description: |
  1024                cgroup namespace mode for the container. Possible values are:
  1025  
  1026                - `"private"`: the container runs in its own private cgroup namespace
  1027                - `"host"`: use the host system's cgroup namespace
  1028  
  1029                If not specified, the daemon default is used, which can either be `"private"`
  1030                or `"host"`, depending on daemon version, kernel support and configuration.
  1031            Dns:
  1032              type: "array"
  1033              description: "A list of DNS servers for the container to use."
  1034              items:
  1035                type: "string"
  1036            DnsOptions:
  1037              type: "array"
  1038              description: "A list of DNS options."
  1039              items:
  1040                type: "string"
  1041            DnsSearch:
  1042              type: "array"
  1043              description: "A list of DNS search domains."
  1044              items:
  1045                type: "string"
  1046            ExtraHosts:
  1047              type: "array"
  1048              description: |
  1049                A list of hostnames/IP mappings to add to the container's `/etc/hosts`
  1050                file. Specified in the form `["hostname:IP"]`.
  1051              items:
  1052                type: "string"
  1053            GroupAdd:
  1054              type: "array"
  1055              description: |
  1056                A list of additional groups that the container process will run as.
  1057              items:
  1058                type: "string"
  1059            IpcMode:
  1060              type: "string"
  1061              description: |
  1062                IPC sharing mode for the container. Possible values are:
  1063  
  1064                - `"none"`: own private IPC namespace, with /dev/shm not mounted
  1065                - `"private"`: own private IPC namespace
  1066                - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
  1067                - `"container:<name|id>"`: join another (shareable) container's IPC namespace
  1068                - `"host"`: use the host system's IPC namespace
  1069  
  1070                If not specified, daemon default is used, which can either be `"private"`
  1071                or `"shareable"`, depending on daemon version and configuration.
  1072            Cgroup:
  1073              type: "string"
  1074              description: "Cgroup to use for the container."
  1075            Links:
  1076              type: "array"
  1077              description: |
  1078                A list of links for the container in the form `container_name:alias`.
  1079              items:
  1080                type: "string"
  1081            OomScoreAdj:
  1082              type: "integer"
  1083              description: |
  1084                An integer value containing the score given to the container in
  1085                order to tune OOM killer preferences.
  1086              example: 500
  1087            PidMode:
  1088              type: "string"
  1089              description: |
  1090                Set the PID (Process) Namespace mode for the container. It can be
  1091                either:
  1092  
  1093                - `"container:<name|id>"`: joins another container's PID namespace
  1094                - `"host"`: use the host's PID namespace inside the container
  1095            Privileged:
  1096              type: "boolean"
  1097              description: "Gives the container full access to the host."
  1098            PublishAllPorts:
  1099              type: "boolean"
  1100              description: |
  1101                Allocates an ephemeral host port for all of a container's
  1102                exposed ports.
  1103  
  1104                Ports are de-allocated when the container stops and allocated when
  1105                the container starts. The allocated port might be changed when
  1106                restarting the container.
  1107  
  1108                The port is selected from the ephemeral port range that depends on
  1109                the kernel. For example, on Linux the range is defined by
  1110                `/proc/sys/net/ipv4/ip_local_port_range`.
  1111            ReadonlyRootfs:
  1112              type: "boolean"
  1113              description: "Mount the container's root filesystem as read only."
  1114            SecurityOpt:
  1115              type: "array"
  1116              description: |
  1117                A list of string values to customize labels for MLS systems, such
  1118                as SELinux.
  1119              items:
  1120                type: "string"
  1121            StorageOpt:
  1122              type: "object"
  1123              description: |
  1124                Storage driver options for this container, in the form `{"size": "120G"}`.
  1125              additionalProperties:
  1126                type: "string"
  1127            Tmpfs:
  1128              type: "object"
  1129              description: |
  1130                A map of container directories which should be replaced by tmpfs
  1131                mounts, and their corresponding mount options. For example:
  1132  
  1133                ```
  1134                { "/run": "rw,noexec,nosuid,size=65536k" }
  1135                ```
  1136              additionalProperties:
  1137                type: "string"
  1138            UTSMode:
  1139              type: "string"
  1140              description: "UTS namespace to use for the container."
  1141            UsernsMode:
  1142              type: "string"
  1143              description: |
  1144                Sets the usernamespace mode for the container when usernamespace
  1145                remapping option is enabled.
  1146            ShmSize:
  1147              type: "integer"
  1148              format: "int64"
  1149              description: |
  1150                Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
  1151              minimum: 0
  1152            Sysctls:
  1153              type: "object"
  1154              description: |
  1155                A list of kernel parameters (sysctls) to set in the container.
  1156                For example:
  1157  
  1158                ```
  1159                {"net.ipv4.ip_forward": "1"}
  1160                ```
  1161              additionalProperties:
  1162                type: "string"
  1163            Runtime:
  1164              type: "string"
  1165              description: "Runtime to use with this container."
  1166            # Applicable to Windows
  1167            Isolation:
  1168              type: "string"
  1169              description: |
  1170                Isolation technology of the container. (Windows only)
  1171              enum:
  1172                - "default"
  1173                - "process"
  1174                - "hyperv"
  1175            MaskedPaths:
  1176              type: "array"
  1177              description: |
  1178                The list of paths to be masked inside the container (this overrides
  1179                the default set of paths).
  1180              items:
  1181                type: "string"
  1182            ReadonlyPaths:
  1183              type: "array"
  1184              description: |
  1185                The list of paths to be set as read-only inside the container
  1186                (this overrides the default set of paths).
  1187              items:
  1188                type: "string"
  1189  
  1190    ContainerConfig:
  1191      description: |
  1192        Configuration for a container that is portable between hosts.
  1193  
  1194        When used as `ContainerConfig` field in an image, `ContainerConfig` is an
  1195        optional field containing the configuration of the container that was last
  1196        committed when creating the image.
  1197  
  1198        Previous versions of Docker builder used this field to store build cache,
  1199        and it is not in active use anymore.
  1200      type: "object"
  1201      properties:
  1202        Hostname:
  1203          description: |
  1204            The hostname to use for the container, as a valid RFC 1123 hostname.
  1205          type: "string"
  1206          example: "439f4e91bd1d"
  1207        Domainname:
  1208          description: |
  1209            The domain name to use for the container.
  1210          type: "string"
  1211        User:
  1212          description: "The user that commands are run as inside the container."
  1213          type: "string"
  1214        AttachStdin:
  1215          description: "Whether to attach to `stdin`."
  1216          type: "boolean"
  1217          default: false
  1218        AttachStdout:
  1219          description: "Whether to attach to `stdout`."
  1220          type: "boolean"
  1221          default: true
  1222        AttachStderr:
  1223          description: "Whether to attach to `stderr`."
  1224          type: "boolean"
  1225          default: true
  1226        ExposedPorts:
  1227          description: |
  1228            An object mapping ports to an empty object in the form:
  1229  
  1230            `{"<port>/<tcp|udp|sctp>": {}}`
  1231          type: "object"
  1232          x-nullable: true
  1233          additionalProperties:
  1234            type: "object"
  1235            enum:
  1236              - {}
  1237            default: {}
  1238          example: {
  1239            "80/tcp": {},
  1240            "443/tcp": {}
  1241          }
  1242        Tty:
  1243          description: |
  1244            Attach standard streams to a TTY, including `stdin` if it is not closed.
  1245          type: "boolean"
  1246          default: false
  1247        OpenStdin:
  1248          description: "Open `stdin`"
  1249          type: "boolean"
  1250          default: false
  1251        StdinOnce:
  1252          description: "Close `stdin` after one attached client disconnects"
  1253          type: "boolean"
  1254          default: false
  1255        Env:
  1256          description: |
  1257            A list of environment variables to set inside the container in the
  1258            form `["VAR=value", ...]`. A variable without `=` is removed from the
  1259            environment, rather than to have an empty value.
  1260          type: "array"
  1261          items:
  1262            type: "string"
  1263          example:
  1264            - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1265        Cmd:
  1266          description: |
  1267            Command to run specified as a string or an array of strings.
  1268          type: "array"
  1269          items:
  1270            type: "string"
  1271          example: ["/bin/sh"]
  1272        Healthcheck:
  1273          $ref: "#/definitions/HealthConfig"
  1274        ArgsEscaped:
  1275          description: "Command is already escaped (Windows only)"
  1276          type: "boolean"
  1277          default: false
  1278          example: false
  1279          x-nullable: true
  1280        Image:
  1281          description: |
  1282            The name (or reference) of the image to use when creating the container,
  1283            or which was used when the container was created.
  1284          type: "string"
  1285          example: "example-image:1.0"
  1286        Volumes:
  1287          description: |
  1288            An object mapping mount point paths inside the container to empty
  1289            objects.
  1290          type: "object"
  1291          additionalProperties:
  1292            type: "object"
  1293            enum:
  1294              - {}
  1295            default: {}
  1296        WorkingDir:
  1297          description: "The working directory for commands to run in."
  1298          type: "string"
  1299          example: "/public/"
  1300        Entrypoint:
  1301          description: |
  1302            The entry point for the container as a string or an array of strings.
  1303  
  1304            If the array consists of exactly one empty string (`[""]`) then the
  1305            entry point is reset to system default (i.e., the entry point used by
  1306            docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
  1307          type: "array"
  1308          items:
  1309            type: "string"
  1310          example: []
  1311        NetworkDisabled:
  1312          description: "Disable networking for the container."
  1313          type: "boolean"
  1314          x-nullable: true
  1315        MacAddress:
  1316          description: |
  1317            MAC address of the container.
  1318  
  1319            Deprecated: this field is deprecated in API v1.44 and up. Use EndpointSettings.MacAddress instead.
  1320          type: "string"
  1321          x-nullable: true
  1322        OnBuild:
  1323          description: |
  1324            `ONBUILD` metadata that were defined in the image's `Dockerfile`.
  1325          type: "array"
  1326          x-nullable: true
  1327          items:
  1328            type: "string"
  1329          example: []
  1330        Labels:
  1331          description: "User-defined key/value metadata."
  1332          type: "object"
  1333          additionalProperties:
  1334            type: "string"
  1335          example:
  1336            com.example.some-label: "some-value"
  1337            com.example.some-other-label: "some-other-value"
  1338        StopSignal:
  1339          description: |
  1340            Signal to stop a container as a string or unsigned integer.
  1341          type: "string"
  1342          example: "SIGTERM"
  1343          x-nullable: true
  1344        StopTimeout:
  1345          description: "Timeout to stop a container in seconds."
  1346          type: "integer"
  1347          default: 10
  1348          x-nullable: true
  1349        Shell:
  1350          description: |
  1351            Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
  1352          type: "array"
  1353          x-nullable: true
  1354          items:
  1355            type: "string"
  1356          example: ["/bin/sh", "-c"]
  1357  
  1358    NetworkingConfig:
  1359      description: |
  1360        NetworkingConfig represents the container's networking configuration for
  1361        each of its interfaces.
  1362        It is used for the networking configs specified in the `docker create`
  1363        and `docker network connect` commands.
  1364      type: "object"
  1365      properties:
  1366        EndpointsConfig:
  1367          description: |
  1368            A mapping of network name to endpoint configuration for that network.
  1369            The endpoint configuration can be left empty to connect to that
  1370            network with no particular endpoint configuration.
  1371          type: "object"
  1372          additionalProperties:
  1373            $ref: "#/definitions/EndpointSettings"
  1374      example:
  1375        # putting an example here, instead of using the example values from
  1376        # /definitions/EndpointSettings, because EndpointSettings contains
  1377        # operational data returned when inspecting a container that we don't
  1378        # accept here.
  1379        EndpointsConfig:
  1380          isolated_nw:
  1381            IPAMConfig:
  1382              IPv4Address: "172.20.30.33"
  1383              IPv6Address: "2001:db8:abcd::3033"
  1384              LinkLocalIPs:
  1385                - "169.254.34.68"
  1386                - "fe80::3468"
  1387            MacAddress: "02:42:ac:12:05:02"
  1388            Links:
  1389              - "container_1"
  1390              - "container_2"
  1391            Aliases:
  1392              - "server_x"
  1393              - "server_y"
  1394          database_nw: {}
  1395  
  1396    NetworkSettings:
  1397      description: "NetworkSettings exposes the network settings in the API"
  1398      type: "object"
  1399      properties:
  1400        Bridge:
  1401          description: |
  1402            Name of the default bridge interface when dockerd's --bridge flag is set.
  1403          type: "string"
  1404          example: "docker0"
  1405        SandboxID:
  1406          description: SandboxID uniquely represents a container's network stack.
  1407          type: "string"
  1408          example: "9d12daf2c33f5959c8bf90aa513e4f65b561738661003029ec84830cd503a0c3"
  1409        HairpinMode:
  1410          description: |
  1411            Indicates if hairpin NAT should be enabled on the virtual interface.
  1412  
  1413            Deprecated: This field is never set and will be removed in a future release.
  1414          type: "boolean"
  1415          example: false
  1416        LinkLocalIPv6Address:
  1417          description: |
  1418            IPv6 unicast address using the link-local prefix.
  1419  
  1420            Deprecated: This field is never set and will be removed in a future release.
  1421          type: "string"
  1422          example: ""
  1423        LinkLocalIPv6PrefixLen:
  1424          description: |
  1425            Prefix length of the IPv6 unicast address.
  1426  
  1427            Deprecated: This field is never set and will be removed in a future release.
  1428          type: "integer"
  1429          example: ""
  1430        Ports:
  1431          $ref: "#/definitions/PortMap"
  1432        SandboxKey:
  1433          description: SandboxKey is the full path of the netns handle
  1434          type: "string"
  1435          example: "/var/run/docker/netns/8ab54b426c38"
  1436  
  1437        SecondaryIPAddresses:
  1438          description: "Deprecated: This field is never set and will be removed in a future release."
  1439          type: "array"
  1440          items:
  1441            $ref: "#/definitions/Address"
  1442          x-nullable: true
  1443  
  1444        SecondaryIPv6Addresses:
  1445          description: "Deprecated: This field is never set and will be removed in a future release."
  1446          type: "array"
  1447          items:
  1448            $ref: "#/definitions/Address"
  1449          x-nullable: true
  1450  
  1451        # TODO properties below are part of DefaultNetworkSettings, which is
  1452        # marked as deprecated since Docker 1.9 and to be removed in Docker v17.12
  1453        EndpointID:
  1454          description: |
  1455            EndpointID uniquely represents a service endpoint in a Sandbox.
  1456  
  1457            <p><br /></p>
  1458  
  1459            > **Deprecated**: This field is only propagated when attached to the
  1460            > default "bridge" network. Use the information from the "bridge"
  1461            > network inside the `Networks` map instead, which contains the same
  1462            > information. This field was deprecated in Docker 1.9 and is scheduled
  1463            > to be removed in Docker 17.12.0
  1464          type: "string"
  1465          example: "b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b"
  1466        Gateway:
  1467          description: |
  1468            Gateway address for the default "bridge" network.
  1469  
  1470            <p><br /></p>
  1471  
  1472            > **Deprecated**: This field is only propagated when attached to the
  1473            > default "bridge" network. Use the information from the "bridge"
  1474            > network inside the `Networks` map instead, which contains the same
  1475            > information. This field was deprecated in Docker 1.9 and is scheduled
  1476            > to be removed in Docker 17.12.0
  1477          type: "string"
  1478          example: "172.17.0.1"
  1479        GlobalIPv6Address:
  1480          description: |
  1481            Global IPv6 address for the default "bridge" network.
  1482  
  1483            <p><br /></p>
  1484  
  1485            > **Deprecated**: This field is only propagated when attached to the
  1486            > default "bridge" network. Use the information from the "bridge"
  1487            > network inside the `Networks` map instead, which contains the same
  1488            > information. This field was deprecated in Docker 1.9 and is scheduled
  1489            > to be removed in Docker 17.12.0
  1490          type: "string"
  1491          example: "2001:db8::5689"
  1492        GlobalIPv6PrefixLen:
  1493          description: |
  1494            Mask length of the global IPv6 address.
  1495  
  1496            <p><br /></p>
  1497  
  1498            > **Deprecated**: This field is only propagated when attached to the
  1499            > default "bridge" network. Use the information from the "bridge"
  1500            > network inside the `Networks` map instead, which contains the same
  1501            > information. This field was deprecated in Docker 1.9 and is scheduled
  1502            > to be removed in Docker 17.12.0
  1503          type: "integer"
  1504          example: 64
  1505        IPAddress:
  1506          description: |
  1507            IPv4 address for the default "bridge" network.
  1508  
  1509            <p><br /></p>
  1510  
  1511            > **Deprecated**: This field is only propagated when attached to the
  1512            > default "bridge" network. Use the information from the "bridge"
  1513            > network inside the `Networks` map instead, which contains the same
  1514            > information. This field was deprecated in Docker 1.9 and is scheduled
  1515            > to be removed in Docker 17.12.0
  1516          type: "string"
  1517          example: "172.17.0.4"
  1518        IPPrefixLen:
  1519          description: |
  1520            Mask length of the IPv4 address.
  1521  
  1522            <p><br /></p>
  1523  
  1524            > **Deprecated**: This field is only propagated when attached to the
  1525            > default "bridge" network. Use the information from the "bridge"
  1526            > network inside the `Networks` map instead, which contains the same
  1527            > information. This field was deprecated in Docker 1.9 and is scheduled
  1528            > to be removed in Docker 17.12.0
  1529          type: "integer"
  1530          example: 16
  1531        IPv6Gateway:
  1532          description: |
  1533            IPv6 gateway address for this network.
  1534  
  1535            <p><br /></p>
  1536  
  1537            > **Deprecated**: This field is only propagated when attached to the
  1538            > default "bridge" network. Use the information from the "bridge"
  1539            > network inside the `Networks` map instead, which contains the same
  1540            > information. This field was deprecated in Docker 1.9 and is scheduled
  1541            > to be removed in Docker 17.12.0
  1542          type: "string"
  1543          example: "2001:db8:2::100"
  1544        MacAddress:
  1545          description: |
  1546            MAC address for the container on the default "bridge" network.
  1547  
  1548            <p><br /></p>
  1549  
  1550            > **Deprecated**: This field is only propagated when attached to the
  1551            > default "bridge" network. Use the information from the "bridge"
  1552            > network inside the `Networks` map instead, which contains the same
  1553            > information. This field was deprecated in Docker 1.9 and is scheduled
  1554            > to be removed in Docker 17.12.0
  1555          type: "string"
  1556          example: "02:42:ac:11:00:04"
  1557        Networks:
  1558          description: |
  1559            Information about all networks that the container is connected to.
  1560          type: "object"
  1561          additionalProperties:
  1562            $ref: "#/definitions/EndpointSettings"
  1563  
  1564    Address:
  1565      description: Address represents an IPv4 or IPv6 IP address.
  1566      type: "object"
  1567      properties:
  1568        Addr:
  1569          description: IP address.
  1570          type: "string"
  1571        PrefixLen:
  1572          description: Mask length of the IP address.
  1573          type: "integer"
  1574  
  1575    PortMap:
  1576      description: |
  1577        PortMap describes the mapping of container ports to host ports, using the
  1578        container's port-number and protocol as key in the format `<port>/<protocol>`,
  1579        for example, `80/udp`.
  1580  
  1581        If a container's port is mapped for multiple protocols, separate entries
  1582        are added to the mapping table.
  1583      type: "object"
  1584      additionalProperties:
  1585        type: "array"
  1586        x-nullable: true
  1587        items:
  1588          $ref: "#/definitions/PortBinding"
  1589      example:
  1590        "443/tcp":
  1591          - HostIp: "127.0.0.1"
  1592            HostPort: "4443"
  1593        "80/tcp":
  1594          - HostIp: "0.0.0.0"
  1595            HostPort: "80"
  1596          - HostIp: "0.0.0.0"
  1597            HostPort: "8080"
  1598        "80/udp":
  1599          - HostIp: "0.0.0.0"
  1600            HostPort: "80"
  1601        "53/udp":
  1602          - HostIp: "0.0.0.0"
  1603            HostPort: "53"
  1604        "2377/tcp": null
  1605  
  1606    PortBinding:
  1607      description: |
  1608        PortBinding represents a binding between a host IP address and a host
  1609        port.
  1610      type: "object"
  1611      properties:
  1612        HostIp:
  1613          description: "Host IP address that the container's port is mapped to."
  1614          type: "string"
  1615          example: "127.0.0.1"
  1616        HostPort:
  1617          description: "Host port number that the container's port is mapped to."
  1618          type: "string"
  1619          example: "4443"
  1620  
  1621    GraphDriverData:
  1622      description: |
  1623        Information about the storage driver used to store the container's and
  1624        image's filesystem.
  1625      type: "object"
  1626      required: [Name, Data]
  1627      properties:
  1628        Name:
  1629          description: "Name of the storage driver."
  1630          type: "string"
  1631          x-nullable: false
  1632          example: "overlay2"
  1633        Data:
  1634          description: |
  1635            Low-level storage metadata, provided as key/value pairs.
  1636  
  1637            This information is driver-specific, and depends on the storage-driver
  1638            in use, and should be used for informational purposes only.
  1639          type: "object"
  1640          x-nullable: false
  1641          additionalProperties:
  1642            type: "string"
  1643          example: {
  1644            "MergedDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/merged",
  1645            "UpperDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/diff",
  1646            "WorkDir": "/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/work"
  1647          }
  1648  
  1649    FilesystemChange:
  1650      description: |
  1651        Change in the container's filesystem.
  1652      type: "object"
  1653      required: [Path, Kind]
  1654      properties:
  1655        Path:
  1656          description: |
  1657            Path to file or directory that has changed.
  1658          type: "string"
  1659          x-nullable: false
  1660        Kind:
  1661          $ref: "#/definitions/ChangeType"
  1662  
  1663    ChangeType:
  1664      description: |
  1665        Kind of change
  1666  
  1667        Can be one of:
  1668  
  1669        - `0`: Modified ("C")
  1670        - `1`: Added ("A")
  1671        - `2`: Deleted ("D")
  1672      type: "integer"
  1673      format: "uint8"
  1674      enum: [0, 1, 2]
  1675      x-nullable: false
  1676  
  1677    ImageInspect:
  1678      description: |
  1679        Information about an image in the local image cache.
  1680      type: "object"
  1681      properties:
  1682        Id:
  1683          description: |
  1684            ID is the content-addressable ID of an image.
  1685  
  1686            This identifier is a content-addressable digest calculated from the
  1687            image's configuration (which includes the digests of layers used by
  1688            the image).
  1689  
  1690            Note that this digest differs from the `RepoDigests` below, which
  1691            holds digests of image manifests that reference the image.
  1692          type: "string"
  1693          x-nullable: false
  1694          example: "sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710"
  1695        RepoTags:
  1696          description: |
  1697            List of image names/tags in the local image cache that reference this
  1698            image.
  1699  
  1700            Multiple image tags can refer to the same image, and this list may be
  1701            empty if no tags reference the image, in which case the image is
  1702            "untagged", in which case it can still be referenced by its ID.
  1703          type: "array"
  1704          items:
  1705            type: "string"
  1706          example:
  1707            - "example:1.0"
  1708            - "example:latest"
  1709            - "example:stable"
  1710            - "internal.registry.example.com:5000/example:1.0"
  1711        RepoDigests:
  1712          description: |
  1713            List of content-addressable digests of locally available image manifests
  1714            that the image is referenced from. Multiple manifests can refer to the
  1715            same image.
  1716  
  1717            These digests are usually only available if the image was either pulled
  1718            from a registry, or if the image was pushed to a registry, which is when
  1719            the manifest is generated and its digest calculated.
  1720          type: "array"
  1721          items:
  1722            type: "string"
  1723          example:
  1724            - "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb"
  1725            - "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578"
  1726        Parent:
  1727          description: |
  1728            ID of the parent image.
  1729  
  1730            Depending on how the image was created, this field may be empty and
  1731            is only set for images that were built/created locally. This field
  1732            is empty if the image was pulled from an image registry.
  1733          type: "string"
  1734          x-nullable: false
  1735          example: ""
  1736        Comment:
  1737          description: |
  1738            Optional message that was set when committing or importing the image.
  1739          type: "string"
  1740          x-nullable: false
  1741          example: ""
  1742        Created:
  1743          description: |
  1744            Date and time at which the image was created, formatted in
  1745            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  1746  
  1747            This information is only available if present in the image,
  1748            and omitted otherwise.
  1749          type: "string"
  1750          format: "dateTime"
  1751          x-nullable: true
  1752          example: "2022-02-04T21:20:12.497794809Z"
  1753        Container:
  1754          description: |
  1755            The ID of the container that was used to create the image.
  1756  
  1757            Depending on how the image was created, this field may be empty.
  1758  
  1759            **Deprecated**: this field is kept for backward compatibility, but
  1760            will be removed in API v1.45.
  1761          type: "string"
  1762          example: "65974bc86f1770ae4bff79f651ebdbce166ae9aada632ee3fa9af3a264911735"
  1763        ContainerConfig:
  1764          description: |
  1765            **Deprecated**: this field is kept for backward compatibility, but
  1766            will be removed in API v1.45.
  1767          $ref: "#/definitions/ContainerConfig"
  1768        DockerVersion:
  1769          description: |
  1770            The version of Docker that was used to build the image.
  1771  
  1772            Depending on how the image was created, this field may be empty.
  1773          type: "string"
  1774          x-nullable: false
  1775          example: "20.10.7"
  1776        Author:
  1777          description: |
  1778            Name of the author that was specified when committing the image, or as
  1779            specified through MAINTAINER (deprecated) in the Dockerfile.
  1780          type: "string"
  1781          x-nullable: false
  1782          example: ""
  1783        Config:
  1784          $ref: "#/definitions/ContainerConfig"
  1785        Architecture:
  1786          description: |
  1787            Hardware CPU architecture that the image runs on.
  1788          type: "string"
  1789          x-nullable: false
  1790          example: "arm"
  1791        Variant:
  1792          description: |
  1793            CPU architecture variant (presently ARM-only).
  1794          type: "string"
  1795          x-nullable: true
  1796          example: "v7"
  1797        Os:
  1798          description: |
  1799            Operating System the image is built to run on.
  1800          type: "string"
  1801          x-nullable: false
  1802          example: "linux"
  1803        OsVersion:
  1804          description: |
  1805            Operating System version the image is built to run on (especially
  1806            for Windows).
  1807          type: "string"
  1808          example: ""
  1809          x-nullable: true
  1810        Size:
  1811          description: |
  1812            Total size of the image including all layers it is composed of.
  1813          type: "integer"
  1814          format: "int64"
  1815          x-nullable: false
  1816          example: 1239828
  1817        VirtualSize:
  1818          description: |
  1819            Total size of the image including all layers it is composed of.
  1820  
  1821            Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.
  1822          type: "integer"
  1823          format: "int64"
  1824          example: 1239828
  1825        GraphDriver:
  1826          $ref: "#/definitions/GraphDriverData"
  1827        RootFS:
  1828          description: |
  1829            Information about the image's RootFS, including the layer IDs.
  1830          type: "object"
  1831          required: [Type]
  1832          properties:
  1833            Type:
  1834              type: "string"
  1835              x-nullable: false
  1836              example: "layers"
  1837            Layers:
  1838              type: "array"
  1839              items:
  1840                type: "string"
  1841              example:
  1842                - "sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6"
  1843                - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
  1844        Metadata:
  1845          description: |
  1846            Additional metadata of the image in the local cache. This information
  1847            is local to the daemon, and not part of the image itself.
  1848          type: "object"
  1849          properties:
  1850            LastTagTime:
  1851              description: |
  1852                Date and time at which the image was last tagged in
  1853                [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  1854  
  1855                This information is only available if the image was tagged locally,
  1856                and omitted otherwise.
  1857              type: "string"
  1858              format: "dateTime"
  1859              example: "2022-02-28T14:40:02.623929178Z"
  1860              x-nullable: true
  1861    ImageSummary:
  1862      type: "object"
  1863      x-go-name: "Summary"
  1864      required:
  1865        - Id
  1866        - ParentId
  1867        - RepoTags
  1868        - RepoDigests
  1869        - Created
  1870        - Size
  1871        - SharedSize
  1872        - Labels
  1873        - Containers
  1874      properties:
  1875        Id:
  1876          description: |
  1877            ID is the content-addressable ID of an image.
  1878  
  1879            This identifier is a content-addressable digest calculated from the
  1880            image's configuration (which includes the digests of layers used by
  1881            the image).
  1882  
  1883            Note that this digest differs from the `RepoDigests` below, which
  1884            holds digests of image manifests that reference the image.
  1885          type: "string"
  1886          x-nullable: false
  1887          example: "sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710"
  1888        ParentId:
  1889          description: |
  1890            ID of the parent image.
  1891  
  1892            Depending on how the image was created, this field may be empty and
  1893            is only set for images that were built/created locally. This field
  1894            is empty if the image was pulled from an image registry.
  1895          type: "string"
  1896          x-nullable: false
  1897          example: ""
  1898        RepoTags:
  1899          description: |
  1900            List of image names/tags in the local image cache that reference this
  1901            image.
  1902  
  1903            Multiple image tags can refer to the same image, and this list may be
  1904            empty if no tags reference the image, in which case the image is
  1905            "untagged", in which case it can still be referenced by its ID.
  1906          type: "array"
  1907          x-nullable: false
  1908          items:
  1909            type: "string"
  1910          example:
  1911            - "example:1.0"
  1912            - "example:latest"
  1913            - "example:stable"
  1914            - "internal.registry.example.com:5000/example:1.0"
  1915        RepoDigests:
  1916          description: |
  1917            List of content-addressable digests of locally available image manifests
  1918            that the image is referenced from. Multiple manifests can refer to the
  1919            same image.
  1920  
  1921            These digests are usually only available if the image was either pulled
  1922            from a registry, or if the image was pushed to a registry, which is when
  1923            the manifest is generated and its digest calculated.
  1924          type: "array"
  1925          x-nullable: false
  1926          items:
  1927            type: "string"
  1928          example:
  1929            - "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb"
  1930            - "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578"
  1931        Created:
  1932          description: |
  1933            Date and time at which the image was created as a Unix timestamp
  1934            (number of seconds sinds EPOCH).
  1935          type: "integer"
  1936          x-nullable: false
  1937          example: "1644009612"
  1938        Size:
  1939          description: |
  1940            Total size of the image including all layers it is composed of.
  1941          type: "integer"
  1942          format: "int64"
  1943          x-nullable: false
  1944          example: 172064416
  1945        SharedSize:
  1946          description: |
  1947            Total size of image layers that are shared between this image and other
  1948            images.
  1949  
  1950            This size is not calculated by default. `-1` indicates that the value
  1951            has not been set / calculated.
  1952          type: "integer"
  1953          format: "int64"
  1954          x-nullable: false
  1955          example: 1239828
  1956        VirtualSize:
  1957          description: |-
  1958            Total size of the image including all layers it is composed of.
  1959  
  1960            Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.
  1961          type: "integer"
  1962          format: "int64"
  1963          example: 172064416
  1964        Labels:
  1965          description: "User-defined key/value metadata."
  1966          type: "object"
  1967          x-nullable: false
  1968          additionalProperties:
  1969            type: "string"
  1970          example:
  1971            com.example.some-label: "some-value"
  1972            com.example.some-other-label: "some-other-value"
  1973        Containers:
  1974          description: |
  1975            Number of containers using this image. Includes both stopped and running
  1976            containers.
  1977  
  1978            This size is not calculated by default, and depends on which API endpoint
  1979            is used. `-1` indicates that the value has not been set / calculated.
  1980          x-nullable: false
  1981          type: "integer"
  1982          example: 2
  1983  
  1984    AuthConfig:
  1985      type: "object"
  1986      properties:
  1987        username:
  1988          type: "string"
  1989        password:
  1990          type: "string"
  1991        email:
  1992          type: "string"
  1993        serveraddress:
  1994          type: "string"
  1995      example:
  1996        username: "hannibal"
  1997        password: "xxxx"
  1998        serveraddress: "https://index.docker.io/v1/"
  1999  
  2000    ProcessConfig:
  2001      type: "object"
  2002      properties:
  2003        privileged:
  2004          type: "boolean"
  2005        user:
  2006          type: "string"
  2007        tty:
  2008          type: "boolean"
  2009        entrypoint:
  2010          type: "string"
  2011        arguments:
  2012          type: "array"
  2013          items:
  2014            type: "string"
  2015  
  2016    Volume:
  2017      type: "object"
  2018      required: [Name, Driver, Mountpoint, Labels, Scope, Options]
  2019      properties:
  2020        Name:
  2021          type: "string"
  2022          description: "Name of the volume."
  2023          x-nullable: false
  2024          example: "tardis"
  2025        Driver:
  2026          type: "string"
  2027          description: "Name of the volume driver used by the volume."
  2028          x-nullable: false
  2029          example: "custom"
  2030        Mountpoint:
  2031          type: "string"
  2032          description: "Mount path of the volume on the host."
  2033          x-nullable: false
  2034          example: "/var/lib/docker/volumes/tardis"
  2035        CreatedAt:
  2036          type: "string"
  2037          format: "dateTime"
  2038          description: "Date/Time the volume was created."
  2039          example: "2016-06-07T20:31:11.853781916Z"
  2040        Status:
  2041          type: "object"
  2042          description: |
  2043            Low-level details about the volume, provided by the volume driver.
  2044            Details are returned as a map with key/value pairs:
  2045            `{"key":"value","key2":"value2"}`.
  2046  
  2047            The `Status` field is optional, and is omitted if the volume driver
  2048            does not support this feature.
  2049          additionalProperties:
  2050            type: "object"
  2051          example:
  2052            hello: "world"
  2053        Labels:
  2054          type: "object"
  2055          description: "User-defined key/value metadata."
  2056          x-nullable: false
  2057          additionalProperties:
  2058            type: "string"
  2059          example:
  2060            com.example.some-label: "some-value"
  2061            com.example.some-other-label: "some-other-value"
  2062        Scope:
  2063          type: "string"
  2064          description: |
  2065            The level at which the volume exists. Either `global` for cluster-wide,
  2066            or `local` for machine level.
  2067          default: "local"
  2068          x-nullable: false
  2069          enum: ["local", "global"]
  2070          example: "local"
  2071        ClusterVolume:
  2072          $ref: "#/definitions/ClusterVolume"
  2073        Options:
  2074          type: "object"
  2075          description: |
  2076            The driver specific options used when creating the volume.
  2077          additionalProperties:
  2078            type: "string"
  2079          example:
  2080            device: "tmpfs"
  2081            o: "size=100m,uid=1000"
  2082            type: "tmpfs"
  2083        UsageData:
  2084          type: "object"
  2085          x-nullable: true
  2086          x-go-name: "UsageData"
  2087          required: [Size, RefCount]
  2088          description: |
  2089            Usage details about the volume. This information is used by the
  2090            `GET /system/df` endpoint, and omitted in other endpoints.
  2091          properties:
  2092            Size:
  2093              type: "integer"
  2094              format: "int64"
  2095              default: -1
  2096              description: |
  2097                Amount of disk space used by the volume (in bytes). This information
  2098                is only available for volumes created with the `"local"` volume
  2099                driver. For volumes created with other volume drivers, this field
  2100                is set to `-1` ("not available")
  2101              x-nullable: false
  2102            RefCount:
  2103              type: "integer"
  2104              format: "int64"
  2105              default: -1
  2106              description: |
  2107                The number of containers referencing this volume. This field
  2108                is set to `-1` if the reference-count is not available.
  2109              x-nullable: false
  2110  
  2111    VolumeCreateOptions:
  2112      description: "Volume configuration"
  2113      type: "object"
  2114      title: "VolumeConfig"
  2115      x-go-name: "CreateOptions"
  2116      properties:
  2117        Name:
  2118          description: |
  2119            The new volume's name. If not specified, Docker generates a name.
  2120          type: "string"
  2121          x-nullable: false
  2122          example: "tardis"
  2123        Driver:
  2124          description: "Name of the volume driver to use."
  2125          type: "string"
  2126          default: "local"
  2127          x-nullable: false
  2128          example: "custom"
  2129        DriverOpts:
  2130          description: |
  2131            A mapping of driver options and values. These options are
  2132            passed directly to the driver and are driver specific.
  2133          type: "object"
  2134          additionalProperties:
  2135            type: "string"
  2136          example:
  2137            device: "tmpfs"
  2138            o: "size=100m,uid=1000"
  2139            type: "tmpfs"
  2140        Labels:
  2141          description: "User-defined key/value metadata."
  2142          type: "object"
  2143          additionalProperties:
  2144            type: "string"
  2145          example:
  2146            com.example.some-label: "some-value"
  2147            com.example.some-other-label: "some-other-value"
  2148        ClusterVolumeSpec:
  2149          $ref: "#/definitions/ClusterVolumeSpec"
  2150  
  2151    VolumeListResponse:
  2152      type: "object"
  2153      title: "VolumeListResponse"
  2154      x-go-name: "ListResponse"
  2155      description: "Volume list response"
  2156      properties:
  2157        Volumes:
  2158          type: "array"
  2159          description: "List of volumes"
  2160          items:
  2161            $ref: "#/definitions/Volume"
  2162        Warnings:
  2163          type: "array"
  2164          description: |
  2165            Warnings that occurred when fetching the list of volumes.
  2166          items:
  2167            type: "string"
  2168          example: []
  2169  
  2170    Network:
  2171      type: "object"
  2172      properties:
  2173        Name:
  2174          type: "string"
  2175        Id:
  2176          type: "string"
  2177        Created:
  2178          type: "string"
  2179          format: "dateTime"
  2180        Scope:
  2181          type: "string"
  2182        Driver:
  2183          type: "string"
  2184        EnableIPv6:
  2185          type: "boolean"
  2186        IPAM:
  2187          $ref: "#/definitions/IPAM"
  2188        Internal:
  2189          type: "boolean"
  2190        Attachable:
  2191          type: "boolean"
  2192        Ingress:
  2193          type: "boolean"
  2194        Containers:
  2195          type: "object"
  2196          additionalProperties:
  2197            $ref: "#/definitions/NetworkContainer"
  2198        Options:
  2199          type: "object"
  2200          additionalProperties:
  2201            type: "string"
  2202        Labels:
  2203          type: "object"
  2204          additionalProperties:
  2205            type: "string"
  2206      example:
  2207        Name: "net01"
  2208        Id: "7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99"
  2209        Created: "2016-10-19T04:33:30.360899459Z"
  2210        Scope: "local"
  2211        Driver: "bridge"
  2212        EnableIPv6: false
  2213        IPAM:
  2214          Driver: "default"
  2215          Config:
  2216            - Subnet: "172.19.0.0/16"
  2217              Gateway: "172.19.0.1"
  2218          Options:
  2219            foo: "bar"
  2220        Internal: false
  2221        Attachable: false
  2222        Ingress: false
  2223        Containers:
  2224          19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c:
  2225            Name: "test"
  2226            EndpointID: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a"
  2227            MacAddress: "02:42:ac:13:00:02"
  2228            IPv4Address: "172.19.0.2/16"
  2229            IPv6Address: ""
  2230        Options:
  2231          com.docker.network.bridge.default_bridge: "true"
  2232          com.docker.network.bridge.enable_icc: "true"
  2233          com.docker.network.bridge.enable_ip_masquerade: "true"
  2234          com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
  2235          com.docker.network.bridge.name: "docker0"
  2236          com.docker.network.driver.mtu: "1500"
  2237        Labels:
  2238          com.example.some-label: "some-value"
  2239          com.example.some-other-label: "some-other-value"
  2240    IPAM:
  2241      type: "object"
  2242      properties:
  2243        Driver:
  2244          description: "Name of the IPAM driver to use."
  2245          type: "string"
  2246          default: "default"
  2247        Config:
  2248          description: |
  2249            List of IPAM configuration options, specified as a map:
  2250  
  2251            ```
  2252            {"Subnet": <CIDR>, "IPRange": <CIDR>, "Gateway": <IP address>, "AuxAddress": <device_name:IP address>}
  2253            ```
  2254          type: "array"
  2255          items:
  2256            $ref: "#/definitions/IPAMConfig"
  2257        Options:
  2258          description: "Driver-specific options, specified as a map."
  2259          type: "object"
  2260          additionalProperties:
  2261            type: "string"
  2262  
  2263    IPAMConfig:
  2264      type: "object"
  2265      properties:
  2266        Subnet:
  2267          type: "string"
  2268        IPRange:
  2269          type: "string"
  2270        Gateway:
  2271          type: "string"
  2272        AuxiliaryAddresses:
  2273          type: "object"
  2274          additionalProperties:
  2275            type: "string"
  2276  
  2277    NetworkContainer:
  2278      type: "object"
  2279      properties:
  2280        Name:
  2281          type: "string"
  2282        EndpointID:
  2283          type: "string"
  2284        MacAddress:
  2285          type: "string"
  2286        IPv4Address:
  2287          type: "string"
  2288        IPv6Address:
  2289          type: "string"
  2290  
  2291    BuildInfo:
  2292      type: "object"
  2293      properties:
  2294        id:
  2295          type: "string"
  2296        stream:
  2297          type: "string"
  2298        error:
  2299          type: "string"
  2300        errorDetail:
  2301          $ref: "#/definitions/ErrorDetail"
  2302        status:
  2303          type: "string"
  2304        progress:
  2305          type: "string"
  2306        progressDetail:
  2307          $ref: "#/definitions/ProgressDetail"
  2308        aux:
  2309          $ref: "#/definitions/ImageID"
  2310  
  2311    BuildCache:
  2312      type: "object"
  2313      description: |
  2314        BuildCache contains information about a build cache record.
  2315      properties:
  2316        ID:
  2317          type: "string"
  2318          description: |
  2319            Unique ID of the build cache record.
  2320          example: "ndlpt0hhvkqcdfkputsk4cq9c"
  2321        Parent:
  2322          description: |
  2323            ID of the parent build cache record.
  2324  
  2325            > **Deprecated**: This field is deprecated, and omitted if empty.
  2326          type: "string"
  2327          x-nullable: true
  2328          example: ""
  2329        Parents:
  2330          description: |
  2331            List of parent build cache record IDs.
  2332          type: "array"
  2333          items:
  2334            type: "string"
  2335          x-nullable: true
  2336          example: ["hw53o5aio51xtltp5xjp8v7fx"]
  2337        Type:
  2338          type: "string"
  2339          description: |
  2340            Cache record type.
  2341          example: "regular"
  2342          # see https://github.com/moby/buildkit/blob/fce4a32258dc9d9664f71a4831d5de10f0670677/client/diskusage.go#L75-L84
  2343          enum:
  2344            - "internal"
  2345            - "frontend"
  2346            - "source.local"
  2347            - "source.git.checkout"
  2348            - "exec.cachemount"
  2349            - "regular"
  2350        Description:
  2351          type: "string"
  2352          description: |
  2353            Description of the build-step that produced the build cache.
  2354          example: "mount / from exec /bin/sh -c echo 'Binary::apt::APT::Keep-Downloaded-Packages \"true\";' > /etc/apt/apt.conf.d/keep-cache"
  2355        InUse:
  2356          type: "boolean"
  2357          description: |
  2358            Indicates if the build cache is in use.
  2359          example: false
  2360        Shared:
  2361          type: "boolean"
  2362          description: |
  2363            Indicates if the build cache is shared.
  2364          example: true
  2365        Size:
  2366          description: |
  2367            Amount of disk space used by the build cache (in bytes).
  2368          type: "integer"
  2369          example: 51
  2370        CreatedAt:
  2371          description: |
  2372            Date and time at which the build cache was created in
  2373            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  2374          type: "string"
  2375          format: "dateTime"
  2376          example: "2016-08-18T10:44:24.496525531Z"
  2377        LastUsedAt:
  2378          description: |
  2379            Date and time at which the build cache was last used in
  2380            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  2381          type: "string"
  2382          format: "dateTime"
  2383          x-nullable: true
  2384          example: "2017-08-09T07:09:37.632105588Z"
  2385        UsageCount:
  2386          type: "integer"
  2387          example: 26
  2388  
  2389    ImageID:
  2390      type: "object"
  2391      description: "Image ID or Digest"
  2392      properties:
  2393        ID:
  2394          type: "string"
  2395      example:
  2396        ID: "sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c"
  2397  
  2398    CreateImageInfo:
  2399      type: "object"
  2400      properties:
  2401        id:
  2402          type: "string"
  2403        error:
  2404          type: "string"
  2405        errorDetail:
  2406          $ref: "#/definitions/ErrorDetail"
  2407        status:
  2408          type: "string"
  2409        progress:
  2410          type: "string"
  2411        progressDetail:
  2412          $ref: "#/definitions/ProgressDetail"
  2413  
  2414    PushImageInfo:
  2415      type: "object"
  2416      properties:
  2417        error:
  2418          type: "string"
  2419        status:
  2420          type: "string"
  2421        progress:
  2422          type: "string"
  2423        progressDetail:
  2424          $ref: "#/definitions/ProgressDetail"
  2425  
  2426    ErrorDetail:
  2427      type: "object"
  2428      properties:
  2429        code:
  2430          type: "integer"
  2431        message:
  2432          type: "string"
  2433  
  2434    ProgressDetail:
  2435      type: "object"
  2436      properties:
  2437        current:
  2438          type: "integer"
  2439        total:
  2440          type: "integer"
  2441  
  2442    ErrorResponse:
  2443      description: "Represents an error."
  2444      type: "object"
  2445      required: ["message"]
  2446      properties:
  2447        message:
  2448          description: "The error message."
  2449          type: "string"
  2450          x-nullable: false
  2451      example:
  2452        message: "Something went wrong."
  2453  
  2454    IdResponse:
  2455      description: "Response to an API call that returns just an Id"
  2456      type: "object"
  2457      required: ["Id"]
  2458      properties:
  2459        Id:
  2460          description: "The id of the newly created object."
  2461          type: "string"
  2462          x-nullable: false
  2463  
  2464    EndpointSettings:
  2465      description: "Configuration for a network endpoint."
  2466      type: "object"
  2467      properties:
  2468        # Configurations
  2469        IPAMConfig:
  2470          $ref: "#/definitions/EndpointIPAMConfig"
  2471        Links:
  2472          type: "array"
  2473          items:
  2474            type: "string"
  2475          example:
  2476            - "container_1"
  2477            - "container_2"
  2478        MacAddress:
  2479          description: |
  2480            MAC address for the endpoint on this network. The network driver might ignore this parameter.
  2481          type: "string"
  2482          example: "02:42:ac:11:00:04"
  2483        Aliases:
  2484          type: "array"
  2485          items:
  2486            type: "string"
  2487          example:
  2488            - "server_x"
  2489            - "server_y"
  2490  
  2491        # Operational data
  2492        NetworkID:
  2493          description: |
  2494            Unique ID of the network.
  2495          type: "string"
  2496          example: "08754567f1f40222263eab4102e1c733ae697e8e354aa9cd6e18d7402835292a"
  2497        EndpointID:
  2498          description: |
  2499            Unique ID for the service endpoint in a Sandbox.
  2500          type: "string"
  2501          example: "b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b"
  2502        Gateway:
  2503          description: |
  2504            Gateway address for this network.
  2505          type: "string"
  2506          example: "172.17.0.1"
  2507        IPAddress:
  2508          description: |
  2509            IPv4 address.
  2510          type: "string"
  2511          example: "172.17.0.4"
  2512        IPPrefixLen:
  2513          description: |
  2514            Mask length of the IPv4 address.
  2515          type: "integer"
  2516          example: 16
  2517        IPv6Gateway:
  2518          description: |
  2519            IPv6 gateway address.
  2520          type: "string"
  2521          example: "2001:db8:2::100"
  2522        GlobalIPv6Address:
  2523          description: |
  2524            Global IPv6 address.
  2525          type: "string"
  2526          example: "2001:db8::5689"
  2527        GlobalIPv6PrefixLen:
  2528          description: |
  2529            Mask length of the global IPv6 address.
  2530          type: "integer"
  2531          format: "int64"
  2532          example: 64
  2533        DriverOpts:
  2534          description: |
  2535            DriverOpts is a mapping of driver options and values. These options
  2536            are passed directly to the driver and are driver specific.
  2537          type: "object"
  2538          x-nullable: true
  2539          additionalProperties:
  2540            type: "string"
  2541          example:
  2542            com.example.some-label: "some-value"
  2543            com.example.some-other-label: "some-other-value"
  2544        DNSNames:
  2545          description: |
  2546            List of all DNS names an endpoint has on a specific network. This
  2547            list is based on the container name, network aliases, container short
  2548            ID, and hostname.
  2549  
  2550            These DNS names are non-fully qualified but can contain several dots.
  2551            You can get fully qualified DNS names by appending `.<network-name>`.
  2552            For instance, if container name is `my.ctr` and the network is named
  2553            `testnet`, `DNSNames` will contain `my.ctr` and the FQDN will be
  2554            `my.ctr.testnet`.
  2555          type: array
  2556          items:
  2557            type: string
  2558          example: ["foobar", "server_x", "server_y", "my.ctr"]
  2559  
  2560    EndpointIPAMConfig:
  2561      description: |
  2562        EndpointIPAMConfig represents an endpoint's IPAM configuration.
  2563      type: "object"
  2564      x-nullable: true
  2565      properties:
  2566        IPv4Address:
  2567          type: "string"
  2568          example: "172.20.30.33"
  2569        IPv6Address:
  2570          type: "string"
  2571          example: "2001:db8:abcd::3033"
  2572        LinkLocalIPs:
  2573          type: "array"
  2574          items:
  2575            type: "string"
  2576          example:
  2577            - "169.254.34.68"
  2578            - "fe80::3468"
  2579  
  2580    PluginMount:
  2581      type: "object"
  2582      x-nullable: false
  2583      required: [Name, Description, Settable, Source, Destination, Type, Options]
  2584      properties:
  2585        Name:
  2586          type: "string"
  2587          x-nullable: false
  2588          example: "some-mount"
  2589        Description:
  2590          type: "string"
  2591          x-nullable: false
  2592          example: "This is a mount that's used by the plugin."
  2593        Settable:
  2594          type: "array"
  2595          items:
  2596            type: "string"
  2597        Source:
  2598          type: "string"
  2599          example: "/var/lib/docker/plugins/"
  2600        Destination:
  2601          type: "string"
  2602          x-nullable: false
  2603          example: "/mnt/state"
  2604        Type:
  2605          type: "string"
  2606          x-nullable: false
  2607          example: "bind"
  2608        Options:
  2609          type: "array"
  2610          items:
  2611            type: "string"
  2612          example:
  2613            - "rbind"
  2614            - "rw"
  2615  
  2616    PluginDevice:
  2617      type: "object"
  2618      required: [Name, Description, Settable, Path]
  2619      x-nullable: false
  2620      properties:
  2621        Name:
  2622          type: "string"
  2623          x-nullable: false
  2624        Description:
  2625          type: "string"
  2626          x-nullable: false
  2627        Settable:
  2628          type: "array"
  2629          items:
  2630            type: "string"
  2631        Path:
  2632          type: "string"
  2633          example: "/dev/fuse"
  2634  
  2635    PluginEnv:
  2636      type: "object"
  2637      x-nullable: false
  2638      required: [Name, Description, Settable, Value]
  2639      properties:
  2640        Name:
  2641          x-nullable: false
  2642          type: "string"
  2643        Description:
  2644          x-nullable: false
  2645          type: "string"
  2646        Settable:
  2647          type: "array"
  2648          items:
  2649            type: "string"
  2650        Value:
  2651          type: "string"
  2652  
  2653    PluginInterfaceType:
  2654      type: "object"
  2655      x-nullable: false
  2656      required: [Prefix, Capability, Version]
  2657      properties:
  2658        Prefix:
  2659          type: "string"
  2660          x-nullable: false
  2661        Capability:
  2662          type: "string"
  2663          x-nullable: false
  2664        Version:
  2665          type: "string"
  2666          x-nullable: false
  2667  
  2668    PluginPrivilege:
  2669      description: |
  2670        Describes a permission the user has to accept upon installing
  2671        the plugin.
  2672      type: "object"
  2673      x-go-name: "PluginPrivilege"
  2674      properties:
  2675        Name:
  2676          type: "string"
  2677          example: "network"
  2678        Description:
  2679          type: "string"
  2680        Value:
  2681          type: "array"
  2682          items:
  2683            type: "string"
  2684          example:
  2685            - "host"
  2686  
  2687    Plugin:
  2688      description: "A plugin for the Engine API"
  2689      type: "object"
  2690      required: [Settings, Enabled, Config, Name]
  2691      properties:
  2692        Id:
  2693          type: "string"
  2694          example: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078"
  2695        Name:
  2696          type: "string"
  2697          x-nullable: false
  2698          example: "tiborvass/sample-volume-plugin"
  2699        Enabled:
  2700          description:
  2701            True if the plugin is running. False if the plugin is not running,
  2702            only installed.
  2703          type: "boolean"
  2704          x-nullable: false
  2705          example: true
  2706        Settings:
  2707          description: "Settings that can be modified by users."
  2708          type: "object"
  2709          x-nullable: false
  2710          required: [Args, Devices, Env, Mounts]
  2711          properties:
  2712            Mounts:
  2713              type: "array"
  2714              items:
  2715                $ref: "#/definitions/PluginMount"
  2716            Env:
  2717              type: "array"
  2718              items:
  2719                type: "string"
  2720              example:
  2721                - "DEBUG=0"
  2722            Args:
  2723              type: "array"
  2724              items:
  2725                type: "string"
  2726            Devices:
  2727              type: "array"
  2728              items:
  2729                $ref: "#/definitions/PluginDevice"
  2730        PluginReference:
  2731          description: "plugin remote reference used to push/pull the plugin"
  2732          type: "string"
  2733          x-nullable: false
  2734          example: "localhost:5000/tiborvass/sample-volume-plugin:latest"
  2735        Config:
  2736          description: "The config of a plugin."
  2737          type: "object"
  2738          x-nullable: false
  2739          required:
  2740            - Description
  2741            - Documentation
  2742            - Interface
  2743            - Entrypoint
  2744            - WorkDir
  2745            - Network
  2746            - Linux
  2747            - PidHost
  2748            - PropagatedMount
  2749            - IpcHost
  2750            - Mounts
  2751            - Env
  2752            - Args
  2753          properties:
  2754            DockerVersion:
  2755              description: "Docker Version used to create the plugin"
  2756              type: "string"
  2757              x-nullable: false
  2758              example: "17.06.0-ce"
  2759            Description:
  2760              type: "string"
  2761              x-nullable: false
  2762              example: "A sample volume plugin for Docker"
  2763            Documentation:
  2764              type: "string"
  2765              x-nullable: false
  2766              example: "https://docs.docker.com/engine/extend/plugins/"
  2767            Interface:
  2768              description: "The interface between Docker and the plugin"
  2769              x-nullable: false
  2770              type: "object"
  2771              required: [Types, Socket]
  2772              properties:
  2773                Types:
  2774                  type: "array"
  2775                  items:
  2776                    $ref: "#/definitions/PluginInterfaceType"
  2777                  example:
  2778                    - "docker.volumedriver/1.0"
  2779                Socket:
  2780                  type: "string"
  2781                  x-nullable: false
  2782                  example: "plugins.sock"
  2783                ProtocolScheme:
  2784                  type: "string"
  2785                  example: "some.protocol/v1.0"
  2786                  description: "Protocol to use for clients connecting to the plugin."
  2787                  enum:
  2788                    - ""
  2789                    - "moby.plugins.http/v1"
  2790            Entrypoint:
  2791              type: "array"
  2792              items:
  2793                type: "string"
  2794              example:
  2795                - "/usr/bin/sample-volume-plugin"
  2796                - "/data"
  2797            WorkDir:
  2798              type: "string"
  2799              x-nullable: false
  2800              example: "/bin/"
  2801            User:
  2802              type: "object"
  2803              x-nullable: false
  2804              properties:
  2805                UID:
  2806                  type: "integer"
  2807                  format: "uint32"
  2808                  example: 1000
  2809                GID:
  2810                  type: "integer"
  2811                  format: "uint32"
  2812                  example: 1000
  2813            Network:
  2814              type: "object"
  2815              x-nullable: false
  2816              required: [Type]
  2817              properties:
  2818                Type:
  2819                  x-nullable: false
  2820                  type: "string"
  2821                  example: "host"
  2822            Linux:
  2823              type: "object"
  2824              x-nullable: false
  2825              required: [Capabilities, AllowAllDevices, Devices]
  2826              properties:
  2827                Capabilities:
  2828                  type: "array"
  2829                  items:
  2830                    type: "string"
  2831                  example:
  2832                    - "CAP_SYS_ADMIN"
  2833                    - "CAP_SYSLOG"
  2834                AllowAllDevices:
  2835                  type: "boolean"
  2836                  x-nullable: false
  2837                  example: false
  2838                Devices:
  2839                  type: "array"
  2840                  items:
  2841                    $ref: "#/definitions/PluginDevice"
  2842            PropagatedMount:
  2843              type: "string"
  2844              x-nullable: false
  2845              example: "/mnt/volumes"
  2846            IpcHost:
  2847              type: "boolean"
  2848              x-nullable: false
  2849              example: false
  2850            PidHost:
  2851              type: "boolean"
  2852              x-nullable: false
  2853              example: false
  2854            Mounts:
  2855              type: "array"
  2856              items:
  2857                $ref: "#/definitions/PluginMount"
  2858            Env:
  2859              type: "array"
  2860              items:
  2861                $ref: "#/definitions/PluginEnv"
  2862              example:
  2863                - Name: "DEBUG"
  2864                  Description: "If set, prints debug messages"
  2865                  Settable: null
  2866                  Value: "0"
  2867            Args:
  2868              type: "object"
  2869              x-nullable: false
  2870              required: [Name, Description, Settable, Value]
  2871              properties:
  2872                Name:
  2873                  x-nullable: false
  2874                  type: "string"
  2875                  example: "args"
  2876                Description:
  2877                  x-nullable: false
  2878                  type: "string"
  2879                  example: "command line arguments"
  2880                Settable:
  2881                  type: "array"
  2882                  items:
  2883                    type: "string"
  2884                Value:
  2885                  type: "array"
  2886                  items:
  2887                    type: "string"
  2888            rootfs:
  2889              type: "object"
  2890              properties:
  2891                type:
  2892                  type: "string"
  2893                  example: "layers"
  2894                diff_ids:
  2895                  type: "array"
  2896                  items:
  2897                    type: "string"
  2898                  example:
  2899                    - "sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887"
  2900                    - "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"
  2901  
  2902    ObjectVersion:
  2903      description: |
  2904        The version number of the object such as node, service, etc. This is needed
  2905        to avoid conflicting writes. The client must send the version number along
  2906        with the modified specification when updating these objects.
  2907  
  2908        This approach ensures safe concurrency and determinism in that the change
  2909        on the object may not be applied if the version number has changed from the
  2910        last read. In other words, if two update requests specify the same base
  2911        version, only one of the requests can succeed. As a result, two separate
  2912        update requests that happen at the same time will not unintentionally
  2913        overwrite each other.
  2914      type: "object"
  2915      properties:
  2916        Index:
  2917          type: "integer"
  2918          format: "uint64"
  2919          example: 373531
  2920  
  2921    NodeSpec:
  2922      type: "object"
  2923      properties:
  2924        Name:
  2925          description: "Name for the node."
  2926          type: "string"
  2927          example: "my-node"
  2928        Labels:
  2929          description: "User-defined key/value metadata."
  2930          type: "object"
  2931          additionalProperties:
  2932            type: "string"
  2933        Role:
  2934          description: "Role of the node."
  2935          type: "string"
  2936          enum:
  2937            - "worker"
  2938            - "manager"
  2939          example: "manager"
  2940        Availability:
  2941          description: "Availability of the node."
  2942          type: "string"
  2943          enum:
  2944            - "active"
  2945            - "pause"
  2946            - "drain"
  2947          example: "active"
  2948      example:
  2949        Availability: "active"
  2950        Name: "node-name"
  2951        Role: "manager"
  2952        Labels:
  2953          foo: "bar"
  2954  
  2955    Node:
  2956      type: "object"
  2957      properties:
  2958        ID:
  2959          type: "string"
  2960          example: "24ifsmvkjbyhk"
  2961        Version:
  2962          $ref: "#/definitions/ObjectVersion"
  2963        CreatedAt:
  2964          description: |
  2965            Date and time at which the node was added to the swarm in
  2966            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  2967          type: "string"
  2968          format: "dateTime"
  2969          example: "2016-08-18T10:44:24.496525531Z"
  2970        UpdatedAt:
  2971          description: |
  2972            Date and time at which the node was last updated in
  2973            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  2974          type: "string"
  2975          format: "dateTime"
  2976          example: "2017-08-09T07:09:37.632105588Z"
  2977        Spec:
  2978          $ref: "#/definitions/NodeSpec"
  2979        Description:
  2980          $ref: "#/definitions/NodeDescription"
  2981        Status:
  2982          $ref: "#/definitions/NodeStatus"
  2983        ManagerStatus:
  2984          $ref: "#/definitions/ManagerStatus"
  2985  
  2986    NodeDescription:
  2987      description: |
  2988        NodeDescription encapsulates the properties of the Node as reported by the
  2989        agent.
  2990      type: "object"
  2991      properties:
  2992        Hostname:
  2993          type: "string"
  2994          example: "bf3067039e47"
  2995        Platform:
  2996          $ref: "#/definitions/Platform"
  2997        Resources:
  2998          $ref: "#/definitions/ResourceObject"
  2999        Engine:
  3000          $ref: "#/definitions/EngineDescription"
  3001        TLSInfo:
  3002          $ref: "#/definitions/TLSInfo"
  3003  
  3004    Platform:
  3005      description: |
  3006        Platform represents the platform (Arch/OS).
  3007      type: "object"
  3008      properties:
  3009        Architecture:
  3010          description: |
  3011            Architecture represents the hardware architecture (for example,
  3012            `x86_64`).
  3013          type: "string"
  3014          example: "x86_64"
  3015        OS:
  3016          description: |
  3017            OS represents the Operating System (for example, `linux` or `windows`).
  3018          type: "string"
  3019          example: "linux"
  3020  
  3021    EngineDescription:
  3022      description: "EngineDescription provides information about an engine."
  3023      type: "object"
  3024      properties:
  3025        EngineVersion:
  3026          type: "string"
  3027          example: "17.06.0"
  3028        Labels:
  3029          type: "object"
  3030          additionalProperties:
  3031            type: "string"
  3032          example:
  3033            foo: "bar"
  3034        Plugins:
  3035          type: "array"
  3036          items:
  3037            type: "object"
  3038            properties:
  3039              Type:
  3040                type: "string"
  3041              Name:
  3042                type: "string"
  3043          example:
  3044            - Type: "Log"
  3045              Name: "awslogs"
  3046            - Type: "Log"
  3047              Name: "fluentd"
  3048            - Type: "Log"
  3049              Name: "gcplogs"
  3050            - Type: "Log"
  3051              Name: "gelf"
  3052            - Type: "Log"
  3053              Name: "journald"
  3054            - Type: "Log"
  3055              Name: "json-file"
  3056            - Type: "Log"
  3057              Name: "splunk"
  3058            - Type: "Log"
  3059              Name: "syslog"
  3060            - Type: "Network"
  3061              Name: "bridge"
  3062            - Type: "Network"
  3063              Name: "host"
  3064            - Type: "Network"
  3065              Name: "ipvlan"
  3066            - Type: "Network"
  3067              Name: "macvlan"
  3068            - Type: "Network"
  3069              Name: "null"
  3070            - Type: "Network"
  3071              Name: "overlay"
  3072            - Type: "Volume"
  3073              Name: "local"
  3074            - Type: "Volume"
  3075              Name: "localhost:5000/vieux/sshfs:latest"
  3076            - Type: "Volume"
  3077              Name: "vieux/sshfs:latest"
  3078  
  3079    TLSInfo:
  3080      description: |
  3081        Information about the issuer of leaf TLS certificates and the trusted root
  3082        CA certificate.
  3083      type: "object"
  3084      properties:
  3085        TrustRoot:
  3086          description: |
  3087            The root CA certificate(s) that are used to validate leaf TLS
  3088            certificates.
  3089          type: "string"
  3090        CertIssuerSubject:
  3091          description:
  3092            The base64-url-safe-encoded raw subject bytes of the issuer.
  3093          type: "string"
  3094        CertIssuerPublicKey:
  3095          description: |
  3096            The base64-url-safe-encoded raw public key bytes of the issuer.
  3097          type: "string"
  3098      example:
  3099        TrustRoot: |
  3100          -----BEGIN CERTIFICATE-----
  3101          MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
  3102          EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
  3103          MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
  3104          A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
  3105          3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
  3106          Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
  3107          PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
  3108          pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
  3109          -----END CERTIFICATE-----
  3110        CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
  3111        CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
  3112  
  3113    NodeStatus:
  3114      description: |
  3115        NodeStatus represents the status of a node.
  3116  
  3117        It provides the current status of the node, as seen by the manager.
  3118      type: "object"
  3119      properties:
  3120        State:
  3121          $ref: "#/definitions/NodeState"
  3122        Message:
  3123          type: "string"
  3124          example: ""
  3125        Addr:
  3126          description: "IP address of the node."
  3127          type: "string"
  3128          example: "172.17.0.2"
  3129  
  3130    NodeState:
  3131      description: "NodeState represents the state of a node."
  3132      type: "string"
  3133      enum:
  3134        - "unknown"
  3135        - "down"
  3136        - "ready"
  3137        - "disconnected"
  3138      example: "ready"
  3139  
  3140    ManagerStatus:
  3141      description: |
  3142        ManagerStatus represents the status of a manager.
  3143  
  3144        It provides the current status of a node's manager component, if the node
  3145        is a manager.
  3146      x-nullable: true
  3147      type: "object"
  3148      properties:
  3149        Leader:
  3150          type: "boolean"
  3151          default: false
  3152          example: true
  3153        Reachability:
  3154          $ref: "#/definitions/Reachability"
  3155        Addr:
  3156          description: |
  3157            The IP address and port at which the manager is reachable.
  3158          type: "string"
  3159          example: "10.0.0.46:2377"
  3160  
  3161    Reachability:
  3162      description: "Reachability represents the reachability of a node."
  3163      type: "string"
  3164      enum:
  3165        - "unknown"
  3166        - "unreachable"
  3167        - "reachable"
  3168      example: "reachable"
  3169  
  3170    SwarmSpec:
  3171      description: "User modifiable swarm configuration."
  3172      type: "object"
  3173      properties:
  3174        Name:
  3175          description: "Name of the swarm."
  3176          type: "string"
  3177          example: "default"
  3178        Labels:
  3179          description: "User-defined key/value metadata."
  3180          type: "object"
  3181          additionalProperties:
  3182            type: "string"
  3183          example:
  3184            com.example.corp.type: "production"
  3185            com.example.corp.department: "engineering"
  3186        Orchestration:
  3187          description: "Orchestration configuration."
  3188          type: "object"
  3189          x-nullable: true
  3190          properties:
  3191            TaskHistoryRetentionLimit:
  3192              description: |
  3193                The number of historic tasks to keep per instance or node. If
  3194                negative, never remove completed or failed tasks.
  3195              type: "integer"
  3196              format: "int64"
  3197              example: 10
  3198        Raft:
  3199          description: "Raft configuration."
  3200          type: "object"
  3201          properties:
  3202            SnapshotInterval:
  3203              description: "The number of log entries between snapshots."
  3204              type: "integer"
  3205              format: "uint64"
  3206              example: 10000
  3207            KeepOldSnapshots:
  3208              description: |
  3209                The number of snapshots to keep beyond the current snapshot.
  3210              type: "integer"
  3211              format: "uint64"
  3212            LogEntriesForSlowFollowers:
  3213              description: |
  3214                The number of log entries to keep around to sync up slow followers
  3215                after a snapshot is created.
  3216              type: "integer"
  3217              format: "uint64"
  3218              example: 500
  3219            ElectionTick:
  3220              description: |
  3221                The number of ticks that a follower will wait for a message from
  3222                the leader before becoming a candidate and starting an election.
  3223                `ElectionTick` must be greater than `HeartbeatTick`.
  3224  
  3225                A tick currently defaults to one second, so these translate
  3226                directly to seconds currently, but this is NOT guaranteed.
  3227              type: "integer"
  3228              example: 3
  3229            HeartbeatTick:
  3230              description: |
  3231                The number of ticks between heartbeats. Every HeartbeatTick ticks,
  3232                the leader will send a heartbeat to the followers.
  3233  
  3234                A tick currently defaults to one second, so these translate
  3235                directly to seconds currently, but this is NOT guaranteed.
  3236              type: "integer"
  3237              example: 1
  3238        Dispatcher:
  3239          description: "Dispatcher configuration."
  3240          type: "object"
  3241          x-nullable: true
  3242          properties:
  3243            HeartbeatPeriod:
  3244              description: |
  3245                The delay for an agent to send a heartbeat to the dispatcher.
  3246              type: "integer"
  3247              format: "int64"
  3248              example: 5000000000
  3249        CAConfig:
  3250          description: "CA configuration."
  3251          type: "object"
  3252          x-nullable: true
  3253          properties:
  3254            NodeCertExpiry:
  3255              description: "The duration node certificates are issued for."
  3256              type: "integer"
  3257              format: "int64"
  3258              example: 7776000000000000
  3259            ExternalCAs:
  3260              description: |
  3261                Configuration for forwarding signing requests to an external
  3262                certificate authority.
  3263              type: "array"
  3264              items:
  3265                type: "object"
  3266                properties:
  3267                  Protocol:
  3268                    description: |
  3269                      Protocol for communication with the external CA (currently
  3270                      only `cfssl` is supported).
  3271                    type: "string"
  3272                    enum:
  3273                      - "cfssl"
  3274                    default: "cfssl"
  3275                  URL:
  3276                    description: |
  3277                      URL where certificate signing requests should be sent.
  3278                    type: "string"
  3279                  Options:
  3280                    description: |
  3281                      An object with key/value pairs that are interpreted as
  3282                      protocol-specific options for the external CA driver.
  3283                    type: "object"
  3284                    additionalProperties:
  3285                      type: "string"
  3286                  CACert:
  3287                    description: |
  3288                      The root CA certificate (in PEM format) this external CA uses
  3289                      to issue TLS certificates (assumed to be to the current swarm
  3290                      root CA certificate if not provided).
  3291                    type: "string"
  3292            SigningCACert:
  3293              description: |
  3294                The desired signing CA certificate for all swarm node TLS leaf
  3295                certificates, in PEM format.
  3296              type: "string"
  3297            SigningCAKey:
  3298              description: |
  3299                The desired signing CA key for all swarm node TLS leaf certificates,
  3300                in PEM format.
  3301              type: "string"
  3302            ForceRotate:
  3303              description: |
  3304                An integer whose purpose is to force swarm to generate a new
  3305                signing CA certificate and key, if none have been specified in
  3306                `SigningCACert` and `SigningCAKey`
  3307              format: "uint64"
  3308              type: "integer"
  3309        EncryptionConfig:
  3310          description: "Parameters related to encryption-at-rest."
  3311          type: "object"
  3312          properties:
  3313            AutoLockManagers:
  3314              description: |
  3315                If set, generate a key and use it to lock data stored on the
  3316                managers.
  3317              type: "boolean"
  3318              example: false
  3319        TaskDefaults:
  3320          description: "Defaults for creating tasks in this cluster."
  3321          type: "object"
  3322          properties:
  3323            LogDriver:
  3324              description: |
  3325                The log driver to use for tasks created in the orchestrator if
  3326                unspecified by a service.
  3327  
  3328                Updating this value only affects new tasks. Existing tasks continue
  3329                to use their previously configured log driver until recreated.
  3330              type: "object"
  3331              properties:
  3332                Name:
  3333                  description: |
  3334                    The log driver to use as a default for new tasks.
  3335                  type: "string"
  3336                  example: "json-file"
  3337                Options:
  3338                  description: |
  3339                    Driver-specific options for the selectd log driver, specified
  3340                    as key/value pairs.
  3341                  type: "object"
  3342                  additionalProperties:
  3343                    type: "string"
  3344                  example:
  3345                    "max-file": "10"
  3346                    "max-size": "100m"
  3347  
  3348    # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but
  3349    # without `JoinTokens`.
  3350    ClusterInfo:
  3351      description: |
  3352        ClusterInfo represents information about the swarm as is returned by the
  3353        "/info" endpoint. Join-tokens are not included.
  3354      x-nullable: true
  3355      type: "object"
  3356      properties:
  3357        ID:
  3358          description: "The ID of the swarm."
  3359          type: "string"
  3360          example: "abajmipo7b4xz5ip2nrla6b11"
  3361        Version:
  3362          $ref: "#/definitions/ObjectVersion"
  3363        CreatedAt:
  3364          description: |
  3365            Date and time at which the swarm was initialised in
  3366            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  3367          type: "string"
  3368          format: "dateTime"
  3369          example: "2016-08-18T10:44:24.496525531Z"
  3370        UpdatedAt:
  3371          description: |
  3372            Date and time at which the swarm was last updated in
  3373            [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
  3374          type: "string"
  3375          format: "dateTime"
  3376          example: "2017-08-09T07:09:37.632105588Z"
  3377        Spec:
  3378          $ref: "#/definitions/SwarmSpec"
  3379        TLSInfo:
  3380          $ref: "#/definitions/TLSInfo"
  3381        RootRotationInProgress:
  3382          description: |
  3383            Whether there is currently a root CA rotation in progress for the swarm
  3384          type: "boolean"
  3385          example: false
  3386        DataPathPort:
  3387          description: |
  3388            DataPathPort specifies the data path port number for data traffic.
  3389            Acceptable port range is 1024 to 49151.
  3390            If no port is set or is set to 0, the default port (4789) is used.
  3391          type: "integer"
  3392          format: "uint32"
  3393          default: 4789
  3394          example: 4789
  3395        DefaultAddrPool:
  3396          description: |
  3397            Default Address Pool specifies default subnet pools for global scope
  3398            networks.
  3399          type: "array"
  3400          items:
  3401            type: "string"
  3402            format: "CIDR"
  3403            example: ["10.10.0.0/16", "20.20.0.0/16"]
  3404        SubnetSize:
  3405          description: |
  3406            SubnetSize specifies the subnet size of the networks created from the
  3407            default subnet pool.
  3408          type: "integer"
  3409          format: "uint32"
  3410          maximum: 29
  3411          default: 24
  3412          example: 24
  3413  
  3414    JoinTokens:
  3415      description: |
  3416        JoinTokens contains the tokens workers and managers need to join the swarm.
  3417      type: "object"
  3418      properties:
  3419        Worker:
  3420          description: |
  3421            The token workers can use to join the swarm.
  3422          type: "string"
  3423          example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"
  3424        Manager:
  3425          description: |
  3426            The token managers can use to join the swarm.
  3427          type: "string"
  3428          example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
  3429  
  3430    Swarm:
  3431      type: "object"
  3432      allOf:
  3433        - $ref: "#/definitions/ClusterInfo"
  3434        - type: "object"
  3435          properties:
  3436            JoinTokens:
  3437              $ref: "#/definitions/JoinTokens"
  3438  
  3439    TaskSpec:
  3440      description: "User modifiable task configuration."
  3441      type: "object"
  3442      properties:
  3443        PluginSpec:
  3444          type: "object"
  3445          description: |
  3446            Plugin spec for the service.  *(Experimental release only.)*
  3447  
  3448            <p><br /></p>
  3449  
  3450            > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are
  3451            > mutually exclusive. PluginSpec is only used when the Runtime field
  3452            > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime
  3453            > field is set to `attachment`.
  3454          properties:
  3455            Name:
  3456              description: "The name or 'alias' to use for the plugin."
  3457              type: "string"
  3458            Remote:
  3459              description: "The plugin image reference to use."
  3460              type: "string"
  3461            Disabled:
  3462              description: "Disable the plugin once scheduled."
  3463              type: "boolean"
  3464            PluginPrivilege:
  3465              type: "array"
  3466              items:
  3467                $ref: "#/definitions/PluginPrivilege"
  3468        ContainerSpec:
  3469          type: "object"
  3470          description: |
  3471            Container spec for the service.
  3472  
  3473            <p><br /></p>
  3474  
  3475            > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are
  3476            > mutually exclusive. PluginSpec is only used when the Runtime field
  3477            > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime
  3478            > field is set to `attachment`.
  3479          properties:
  3480            Image:
  3481              description: "The image name to use for the container"
  3482              type: "string"
  3483            Labels:
  3484              description: "User-defined key/value data."
  3485              type: "object"
  3486              additionalProperties:
  3487                type: "string"
  3488            Command:
  3489              description: "The command to be run in the image."
  3490              type: "array"
  3491              items:
  3492                type: "string"
  3493            Args:
  3494              description: "Arguments to the command."
  3495              type: "array"
  3496              items:
  3497                type: "string"
  3498            Hostname:
  3499              description: |
  3500                The hostname to use for the container, as a valid
  3501                [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
  3502              type: "string"
  3503            Env:
  3504              description: |
  3505                A list of environment variables in the form `VAR=value`.
  3506              type: "array"
  3507              items:
  3508                type: "string"
  3509            Dir:
  3510              description: "The working directory for commands to run in."
  3511              type: "string"
  3512            User:
  3513              description: "The user inside the container."
  3514              type: "string"
  3515            Groups:
  3516              type: "array"
  3517              description: |
  3518                A list of additional groups that the container process will run as.
  3519              items:
  3520                type: "string"
  3521            Privileges:
  3522              type: "object"
  3523              description: "Security options for the container"
  3524              properties:
  3525                CredentialSpec:
  3526                  type: "object"
  3527                  description: "CredentialSpec for managed service account (Windows only)"
  3528                  properties:
  3529                    Config:
  3530                      type: "string"
  3531                      example: "0bt9dmxjvjiqermk6xrop3ekq"
  3532                      description: |
  3533                        Load credential spec from a Swarm Config with the given ID.
  3534                        The specified config must also be present in the Configs
  3535                        field with the Runtime property set.
  3536  
  3537                        <p><br /></p>
  3538  
  3539  
  3540                        > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
  3541                        > and `CredentialSpec.Config` are mutually exclusive.
  3542                    File:
  3543                      type: "string"
  3544                      example: "spec.json"
  3545                      description: |
  3546                        Load credential spec from this file. The file is read by
  3547                        the daemon, and must be present in the `CredentialSpecs`
  3548                        subdirectory in the docker data directory, which defaults
  3549                        to `C:\ProgramData\Docker\` on Windows.
  3550  
  3551                        For example, specifying `spec.json` loads
  3552                        `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
  3553  
  3554                        <p><br /></p>
  3555  
  3556                        > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
  3557                        > and `CredentialSpec.Config` are mutually exclusive.
  3558                    Registry:
  3559                      type: "string"
  3560                      description: |
  3561                        Load credential spec from this value in the Windows
  3562                        registry. The specified registry value must be located in:
  3563  
  3564                        `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
  3565  
  3566                        <p><br /></p>
  3567  
  3568  
  3569                        > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
  3570                        > and `CredentialSpec.Config` are mutually exclusive.
  3571                SELinuxContext:
  3572                  type: "object"
  3573                  description: "SELinux labels of the container"
  3574                  properties:
  3575                    Disable:
  3576                      type: "boolean"
  3577                      description: "Disable SELinux"
  3578                    User:
  3579                      type: "string"
  3580                      description: "SELinux user label"
  3581                    Role:
  3582                      type: "string"
  3583                      description: "SELinux role label"
  3584                    Type:
  3585                      type: "string"
  3586                      description: "SELinux type label"
  3587                    Level:
  3588                      type: "string"
  3589                      description: "SELinux level label"
  3590                Seccomp:
  3591                  type: "object"
  3592                  description: "Options for configuring seccomp on the container"
  3593                  properties:
  3594                    Mode:
  3595                      type: "string"
  3596                      enum:
  3597                        - "default"
  3598                        - "unconfined"
  3599                        - "custom"
  3600                    Profile:
  3601                      description: "The custom seccomp profile as a json object"
  3602                      type: "string"
  3603                AppArmor:
  3604                  type: "object"
  3605                  description: "Options for configuring AppArmor on the container"
  3606                  properties:
  3607                    Mode:
  3608                      type: "string"
  3609                      enum:
  3610                        - "default"
  3611                        - "disabled"
  3612                NoNewPrivileges:
  3613                  type: "boolean"
  3614                  description: "Configuration of the no_new_privs bit in the container"
  3615  
  3616            TTY:
  3617              description: "Whether a pseudo-TTY should be allocated."
  3618              type: "boolean"
  3619            OpenStdin:
  3620              description: "Open `stdin`"
  3621              type: "boolean"
  3622            ReadOnly:
  3623              description: "Mount the container's root filesystem as read only."
  3624              type: "boolean"
  3625            Mounts:
  3626              description: |
  3627                Specification for mounts to be added to containers created as part
  3628                of the service.
  3629              type: "array"
  3630              items:
  3631                $ref: "#/definitions/Mount"
  3632            StopSignal:
  3633              description: "Signal to stop the container."
  3634              type: "string"
  3635            StopGracePeriod:
  3636              description: |
  3637                Amount of time to wait for the container to terminate before
  3638                forcefully killing it.
  3639              type: "integer"
  3640              format: "int64"
  3641            HealthCheck:
  3642              $ref: "#/definitions/HealthConfig"
  3643            Hosts:
  3644              type: "array"
  3645              description: |
  3646                A list of hostname/IP mappings to add to the container's `hosts`
  3647                file. The format of extra hosts is specified in the
  3648                [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html)
  3649                man page:
  3650  
  3651                    IP_address canonical_hostname [aliases...]
  3652              items:
  3653                type: "string"
  3654            DNSConfig:
  3655              description: |
  3656                Specification for DNS related configurations in resolver configuration
  3657                file (`resolv.conf`).
  3658              type: "object"
  3659              properties:
  3660                Nameservers:
  3661                  description: "The IP addresses of the name servers."
  3662                  type: "array"
  3663                  items:
  3664                    type: "string"
  3665                Search:
  3666                  description: "A search list for host-name lookup."
  3667                  type: "array"
  3668                  items:
  3669                    type: "string"
  3670                Options:
  3671                  description: |
  3672                    A list of internal resolver variables to be modified (e.g.,
  3673                    `debug`, `ndots:3`, etc.).
  3674                  type: "array"
  3675                  items:
  3676                    type: "string"
  3677            Secrets:
  3678              description: |
  3679                Secrets contains references to zero or more secrets that will be
  3680                exposed to the service.
  3681              type: "array"
  3682              items:
  3683                type: "object"
  3684                properties:
  3685                  File:
  3686                    description: |
  3687                      File represents a specific target that is backed by a file.
  3688                    type: "object"
  3689                    properties:
  3690                      Name:
  3691                        description: |
  3692                          Name represents the final filename in the filesystem.
  3693                        type: "string"
  3694                      UID:
  3695                        description: "UID represents the file UID."
  3696                        type: "string"
  3697                      GID:
  3698                        description: "GID represents the file GID."
  3699                        type: "string"
  3700                      Mode:
  3701                        description: "Mode represents the FileMode of the file."
  3702                        type: "integer"
  3703                        format: "uint32"
  3704                  SecretID:
  3705                    description: |
  3706                      SecretID represents the ID of the specific secret that we're
  3707                      referencing.
  3708                    type: "string"
  3709                  SecretName:
  3710                    description: |
  3711                      SecretName is the name of the secret that this references,
  3712                      but this is just provided for lookup/display purposes. The
  3713                      secret in the reference will be identified by its ID.
  3714                    type: "string"
  3715            Configs:
  3716              description: |
  3717                Configs contains references to zero or more configs that will be
  3718                exposed to the service.
  3719              type: "array"
  3720              items:
  3721                type: "object"
  3722                properties:
  3723                  File:
  3724                    description: |
  3725                      File represents a specific target that is backed by a file.
  3726  
  3727                      <p><br /><p>
  3728  
  3729                      > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
  3730                    type: "object"
  3731                    properties:
  3732                      Name:
  3733                        description: |
  3734                          Name represents the final filename in the filesystem.
  3735                        type: "string"
  3736                      UID:
  3737                        description: "UID represents the file UID."
  3738                        type: "string"
  3739                      GID:
  3740                        description: "GID represents the file GID."
  3741                        type: "string"
  3742                      Mode:
  3743                        description: "Mode represents the FileMode of the file."
  3744                        type: "integer"
  3745                        format: "uint32"
  3746                  Runtime:
  3747                    description: |
  3748                      Runtime represents a target that is not mounted into the
  3749                      container but is used by the task
  3750  
  3751                      <p><br /><p>
  3752  
  3753                      > **Note**: `Configs.File` and `Configs.Runtime` are mutually
  3754                      > exclusive
  3755                    type: "object"
  3756                  ConfigID:
  3757                    description: |
  3758                      ConfigID represents the ID of the specific config that we're
  3759                      referencing.
  3760                    type: "string"
  3761                  ConfigName:
  3762                    description: |
  3763                      ConfigName is the name of the config that this references,
  3764                      but this is just provided for lookup/display purposes. The
  3765                      config in the reference will be identified by its ID.
  3766                    type: "string"
  3767            Isolation:
  3768              type: "string"
  3769              description: |
  3770                Isolation technology of the containers running the service.
  3771                (Windows only)
  3772              enum:
  3773                - "default"
  3774                - "process"
  3775                - "hyperv"
  3776            Init:
  3777              description: |
  3778                Run an init inside the container that forwards signals and reaps
  3779                processes. This field is omitted if empty, and the default (as
  3780                configured on the daemon) is used.
  3781              type: "boolean"
  3782              x-nullable: true
  3783            Sysctls:
  3784              description: |
  3785                Set kernel namedspaced parameters (sysctls) in the container.
  3786                The Sysctls option on services accepts the same sysctls as the
  3787                are supported on containers. Note that while the same sysctls are
  3788                supported, no guarantees or checks are made about their
  3789                suitability for a clustered environment, and it's up to the user
  3790                to determine whether a given sysctl will work properly in a
  3791                Service.
  3792              type: "object"
  3793              additionalProperties:
  3794                type: "string"
  3795            # This option is not used by Windows containers
  3796            CapabilityAdd:
  3797              type: "array"
  3798              description: |
  3799                A list of kernel capabilities to add to the default set
  3800                for the container.
  3801              items:
  3802                type: "string"
  3803              example:
  3804                - "CAP_NET_RAW"
  3805                - "CAP_SYS_ADMIN"
  3806                - "CAP_SYS_CHROOT"
  3807                - "CAP_SYSLOG"
  3808            CapabilityDrop:
  3809              type: "array"
  3810              description: |
  3811                A list of kernel capabilities to drop from the default set
  3812                for the container.
  3813              items:
  3814                type: "string"
  3815              example:
  3816                - "CAP_NET_RAW"
  3817            Ulimits:
  3818              description: |
  3819                A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
  3820              type: "array"
  3821              items:
  3822                type: "object"
  3823                properties:
  3824                  Name:
  3825                    description: "Name of ulimit"
  3826                    type: "string"
  3827                  Soft:
  3828                    description: "Soft limit"
  3829                    type: "integer"
  3830                  Hard:
  3831                    description: "Hard limit"
  3832                    type: "integer"
  3833        NetworkAttachmentSpec:
  3834          description: |
  3835            Read-only spec type for non-swarm containers attached to swarm overlay
  3836            networks.
  3837  
  3838            <p><br /></p>
  3839  
  3840            > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are
  3841            > mutually exclusive. PluginSpec is only used when the Runtime field
  3842            > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime
  3843            > field is set to `attachment`.
  3844          type: "object"
  3845          properties:
  3846            ContainerID:
  3847              description: "ID of the container represented by this task"
  3848              type: "string"
  3849        Resources:
  3850          description: |
  3851            Resource requirements which apply to each individual container created
  3852            as part of the service.
  3853          type: "object"
  3854          properties:
  3855            Limits:
  3856              description: "Define resources limits."
  3857              $ref: "#/definitions/Limit"
  3858            Reservations:
  3859              description: "Define resources reservation."
  3860              $ref: "#/definitions/ResourceObject"
  3861        RestartPolicy:
  3862          description: |
  3863            Specification for the restart policy which applies to containers
  3864            created as part of this service.
  3865          type: "object"
  3866          properties:
  3867            Condition:
  3868              description: "Condition for restart."
  3869              type: "string"
  3870              enum:
  3871                - "none"
  3872                - "on-failure"
  3873                - "any"
  3874            Delay:
  3875              description: "Delay between restart attempts."
  3876              type: "integer"
  3877              format: "int64"
  3878            MaxAttempts:
  3879              description: |
  3880                Maximum attempts to restart a given container before giving up
  3881                (default value is 0, which is ignored).
  3882              type: "integer"
  3883              format: "int64"
  3884              default: 0
  3885            Window:
  3886              description: |
  3887                Windows is the time window used to evaluate the restart policy
  3888                (default value is 0, which is unbounded).
  3889              type: "integer"
  3890              format: "int64"
  3891              default: 0
  3892        Placement:
  3893          type: "object"
  3894          properties:
  3895            Constraints:
  3896              description: |
  3897                An array of constraint expressions to limit the set of nodes where
  3898                a task can be scheduled. Constraint expressions can either use a
  3899                _match_ (`==`) or _exclude_ (`!=`) rule. Multiple constraints find
  3900                nodes that satisfy every expression (AND match). Constraints can
  3901                match node or Docker Engine labels as follows:
  3902  
  3903                node attribute       | matches                        | example
  3904                ---------------------|--------------------------------|-----------------------------------------------
  3905                `node.id`            | Node ID                        | `node.id==2ivku8v2gvtg4`
  3906                `node.hostname`      | Node hostname                  | `node.hostname!=node-2`
  3907                `node.role`          | Node role (`manager`/`worker`) | `node.role==manager`
  3908                `node.platform.os`   | Node operating system          | `node.platform.os==windows`
  3909                `node.platform.arch` | Node architecture              | `node.platform.arch==x86_64`
  3910                `node.labels`        | User-defined node labels       | `node.labels.security==high`
  3911                `engine.labels`      | Docker Engine's labels         | `engine.labels.operatingsystem==ubuntu-14.04`
  3912  
  3913                `engine.labels` apply to Docker Engine labels like operating system,
  3914                drivers, etc. Swarm administrators add `node.labels` for operational
  3915                purposes by using the [`node update endpoint`](#operation/NodeUpdate).
  3916  
  3917              type: "array"
  3918              items:
  3919                type: "string"
  3920              example:
  3921                - "node.hostname!=node3.corp.example.com"
  3922                - "node.role!=manager"
  3923                - "node.labels.type==production"
  3924                - "node.platform.os==linux"
  3925                - "node.platform.arch==x86_64"
  3926            Preferences:
  3927              description: |
  3928                Preferences provide a way to make the scheduler aware of factors
  3929                such as topology. They are provided in order from highest to
  3930                lowest precedence.
  3931              type: "array"
  3932              items:
  3933                type: "object"
  3934                properties:
  3935                  Spread:
  3936                    type: "object"
  3937                    properties:
  3938                      SpreadDescriptor:
  3939                        description: |
  3940                          label descriptor, such as `engine.labels.az`.
  3941                        type: "string"
  3942              example:
  3943                - Spread:
  3944                    SpreadDescriptor: "node.labels.datacenter"
  3945                - Spread:
  3946                    SpreadDescriptor: "node.labels.rack"
  3947            MaxReplicas:
  3948              description: |
  3949                Maximum number of replicas for per node (default value is 0, which
  3950                is unlimited)
  3951              type: "integer"
  3952              format: "int64"
  3953              default: 0
  3954            Platforms:
  3955              description: |
  3956                Platforms stores all the platforms that the service's image can
  3957                run on. This field is used in the platform filter for scheduling.
  3958                If empty, then the platform filter is off, meaning there are no
  3959                scheduling restrictions.
  3960              type: "array"
  3961              items:
  3962                $ref: "#/definitions/Platform"
  3963        ForceUpdate:
  3964          description: |
  3965            A counter that triggers an update even if no relevant parameters have
  3966            been changed.
  3967          type: "integer"
  3968        Runtime:
  3969          description: |
  3970            Runtime is the type of runtime specified for the task executor.
  3971          type: "string"
  3972        Networks:
  3973          description: "Specifies which networks the service should attach to."
  3974          type: "array"
  3975          items:
  3976            $ref: "#/definitions/NetworkAttachmentConfig"
  3977        LogDriver:
  3978          description: |
  3979            Specifies the log driver to use for tasks created from this spec. If
  3980            not present, the default one for the swarm will be used, finally
  3981            falling back to the engine default if not specified.
  3982          type: "object"
  3983          properties:
  3984            Name:
  3985              type: "string"
  3986            Options:
  3987              type: "object"
  3988              additionalProperties:
  3989                type: "string"
  3990  
  3991    TaskState:
  3992      type: "string"
  3993      enum:
  3994        - "new"
  3995        - "allocated"
  3996        - "pending"
  3997        - "assigned"
  3998        - "accepted"
  3999        - "preparing"
  4000        - "ready"
  4001        - "starting"
  4002        - "running"
  4003        - "complete"
  4004        - "shutdown"
  4005        - "failed"
  4006        - "rejected"
  4007        - "remove"
  4008        - "orphaned"
  4009  
  4010    ContainerStatus:
  4011      type: "object"
  4012      description: "represents the status of a container."
  4013      properties:
  4014        ContainerID:
  4015          type: "string"
  4016        PID:
  4017          type: "integer"
  4018        ExitCode:
  4019          type: "integer"
  4020  
  4021    PortStatus:
  4022      type: "object"
  4023      description: "represents the port status of a task's host ports whose service has published host ports"
  4024      properties:
  4025        Ports:
  4026          type: "array"
  4027          items:
  4028            $ref: "#/definitions/EndpointPortConfig"
  4029  
  4030    TaskStatus:
  4031      type: "object"
  4032      description: "represents the status of a task."
  4033      properties:
  4034        Timestamp:
  4035          type: "string"
  4036          format: "dateTime"
  4037        State:
  4038          $ref: "#/definitions/TaskState"
  4039        Message:
  4040          type: "string"
  4041        Err:
  4042          type: "string"
  4043        ContainerStatus:
  4044          $ref: "#/definitions/ContainerStatus"
  4045        PortStatus:
  4046          $ref: "#/definitions/PortStatus"
  4047  
  4048    Task:
  4049      type: "object"
  4050      properties:
  4051        ID:
  4052          description: "The ID of the task."
  4053          type: "string"
  4054        Version:
  4055          $ref: "#/definitions/ObjectVersion"
  4056        CreatedAt:
  4057          type: "string"
  4058          format: "dateTime"
  4059        UpdatedAt:
  4060          type: "string"
  4061          format: "dateTime"
  4062        Name:
  4063          description: "Name of the task."
  4064          type: "string"
  4065        Labels:
  4066          description: "User-defined key/value metadata."
  4067          type: "object"
  4068          additionalProperties:
  4069            type: "string"
  4070        Spec:
  4071          $ref: "#/definitions/TaskSpec"
  4072        ServiceID:
  4073          description: "The ID of the service this task is part of."
  4074          type: "string"
  4075        Slot:
  4076          type: "integer"
  4077        NodeID:
  4078          description: "The ID of the node that this task is on."
  4079          type: "string"
  4080        AssignedGenericResources:
  4081          $ref: "#/definitions/GenericResources"
  4082        Status:
  4083          $ref: "#/definitions/TaskStatus"
  4084        DesiredState:
  4085          $ref: "#/definitions/TaskState"
  4086        JobIteration:
  4087          description: |
  4088            If the Service this Task belongs to is a job-mode service, contains
  4089            the JobIteration of the Service this Task was created for. Absent if
  4090            the Task was created for a Replicated or Global Service.
  4091          $ref: "#/definitions/ObjectVersion"
  4092      example:
  4093        ID: "0kzzo1i0y4jz6027t0k7aezc7"
  4094        Version:
  4095          Index: 71
  4096        CreatedAt: "2016-06-07T21:07:31.171892745Z"
  4097        UpdatedAt: "2016-06-07T21:07:31.376370513Z"
  4098        Spec:
  4099          ContainerSpec:
  4100            Image: "redis"
  4101          Resources:
  4102            Limits: {}
  4103            Reservations: {}
  4104          RestartPolicy:
  4105            Condition: "any"
  4106            MaxAttempts: 0
  4107          Placement: {}
  4108        ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  4109        Slot: 1
  4110        NodeID: "60gvrl6tm78dmak4yl7srz94v"
  4111        Status:
  4112          Timestamp: "2016-06-07T21:07:31.290032978Z"
  4113          State: "running"
  4114          Message: "started"
  4115          ContainerStatus:
  4116            ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
  4117            PID: 677
  4118        DesiredState: "running"
  4119        NetworksAttachments:
  4120          - Network:
  4121              ID: "4qvuz4ko70xaltuqbt8956gd1"
  4122              Version:
  4123                Index: 18
  4124              CreatedAt: "2016-06-07T20:31:11.912919752Z"
  4125              UpdatedAt: "2016-06-07T21:07:29.955277358Z"
  4126              Spec:
  4127                Name: "ingress"
  4128                Labels:
  4129                  com.docker.swarm.internal: "true"
  4130                DriverConfiguration: {}
  4131                IPAMOptions:
  4132                  Driver: {}
  4133                  Configs:
  4134                    - Subnet: "10.255.0.0/16"
  4135                      Gateway: "10.255.0.1"
  4136              DriverState:
  4137                Name: "overlay"
  4138                Options:
  4139                  com.docker.network.driver.overlay.vxlanid_list: "256"
  4140              IPAMOptions:
  4141                Driver:
  4142                  Name: "default"
  4143                Configs:
  4144                  - Subnet: "10.255.0.0/16"
  4145                    Gateway: "10.255.0.1"
  4146            Addresses:
  4147              - "10.255.0.10/16"
  4148        AssignedGenericResources:
  4149          - DiscreteResourceSpec:
  4150              Kind: "SSD"
  4151              Value: 3
  4152          - NamedResourceSpec:
  4153              Kind: "GPU"
  4154              Value: "UUID1"
  4155          - NamedResourceSpec:
  4156              Kind: "GPU"
  4157              Value: "UUID2"
  4158  
  4159    ServiceSpec:
  4160      description: "User modifiable configuration for a service."
  4161      type: object
  4162      properties:
  4163        Name:
  4164          description: "Name of the service."
  4165          type: "string"
  4166        Labels:
  4167          description: "User-defined key/value metadata."
  4168          type: "object"
  4169          additionalProperties:
  4170            type: "string"
  4171        TaskTemplate:
  4172          $ref: "#/definitions/TaskSpec"
  4173        Mode:
  4174          description: "Scheduling mode for the service."
  4175          type: "object"
  4176          properties:
  4177            Replicated:
  4178              type: "object"
  4179              properties:
  4180                Replicas:
  4181                  type: "integer"
  4182                  format: "int64"
  4183            Global:
  4184              type: "object"
  4185            ReplicatedJob:
  4186              description: |
  4187                The mode used for services with a finite number of tasks that run
  4188                to a completed state.
  4189              type: "object"
  4190              properties:
  4191                MaxConcurrent:
  4192                  description: |
  4193                    The maximum number of replicas to run simultaneously.
  4194                  type: "integer"
  4195                  format: "int64"
  4196                  default: 1
  4197                TotalCompletions:
  4198                  description: |
  4199                    The total number of replicas desired to reach the Completed
  4200                    state. If unset, will default to the value of `MaxConcurrent`
  4201                  type: "integer"
  4202                  format: "int64"
  4203            GlobalJob:
  4204              description: |
  4205                The mode used for services which run a task to the completed state
  4206                on each valid node.
  4207              type: "object"
  4208        UpdateConfig:
  4209          description: "Specification for the update strategy of the service."
  4210          type: "object"
  4211          properties:
  4212            Parallelism:
  4213              description: |
  4214                Maximum number of tasks to be updated in one iteration (0 means
  4215                unlimited parallelism).
  4216              type: "integer"
  4217              format: "int64"
  4218            Delay:
  4219              description: "Amount of time between updates, in nanoseconds."
  4220              type: "integer"
  4221              format: "int64"
  4222            FailureAction:
  4223              description: |
  4224                Action to take if an updated task fails to run, or stops running
  4225                during the update.
  4226              type: "string"
  4227              enum:
  4228                - "continue"
  4229                - "pause"
  4230                - "rollback"
  4231            Monitor:
  4232              description: |
  4233                Amount of time to monitor each updated task for failures, in
  4234                nanoseconds.
  4235              type: "integer"
  4236              format: "int64"
  4237            MaxFailureRatio:
  4238              description: |
  4239                The fraction of tasks that may fail during an update before the
  4240                failure action is invoked, specified as a floating point number
  4241                between 0 and 1.
  4242              type: "number"
  4243              default: 0
  4244            Order:
  4245              description: |
  4246                The order of operations when rolling out an updated task. Either
  4247                the old task is shut down before the new task is started, or the
  4248                new task is started before the old task is shut down.
  4249              type: "string"
  4250              enum:
  4251                - "stop-first"
  4252                - "start-first"
  4253        RollbackConfig:
  4254          description: "Specification for the rollback strategy of the service."
  4255          type: "object"
  4256          properties:
  4257            Parallelism:
  4258              description: |
  4259                Maximum number of tasks to be rolled back in one iteration (0 means
  4260                unlimited parallelism).
  4261              type: "integer"
  4262              format: "int64"
  4263            Delay:
  4264              description: |
  4265                Amount of time between rollback iterations, in nanoseconds.
  4266              type: "integer"
  4267              format: "int64"
  4268            FailureAction:
  4269              description: |
  4270                Action to take if an rolled back task fails to run, or stops
  4271                running during the rollback.
  4272              type: "string"
  4273              enum:
  4274                - "continue"
  4275                - "pause"
  4276            Monitor:
  4277              description: |
  4278                Amount of time to monitor each rolled back task for failures, in
  4279                nanoseconds.
  4280              type: "integer"
  4281              format: "int64"
  4282            MaxFailureRatio:
  4283              description: |
  4284                The fraction of tasks that may fail during a rollback before the
  4285                failure action is invoked, specified as a floating point number
  4286                between 0 and 1.
  4287              type: "number"
  4288              default: 0
  4289            Order:
  4290              description: |
  4291                The order of operations when rolling back a task. Either the old
  4292                task is shut down before the new task is started, or the new task
  4293                is started before the old task is shut down.
  4294              type: "string"
  4295              enum:
  4296                - "stop-first"
  4297                - "start-first"
  4298        Networks:
  4299          description: |
  4300            Specifies which networks the service should attach to.
  4301  
  4302            Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec should be used instead.
  4303          type: "array"
  4304          items:
  4305            $ref: "#/definitions/NetworkAttachmentConfig"
  4306  
  4307        EndpointSpec:
  4308          $ref: "#/definitions/EndpointSpec"
  4309  
  4310    EndpointPortConfig:
  4311      type: "object"
  4312      properties:
  4313        Name:
  4314          type: "string"
  4315        Protocol:
  4316          type: "string"
  4317          enum:
  4318            - "tcp"
  4319            - "udp"
  4320            - "sctp"
  4321        TargetPort:
  4322          description: "The port inside the container."
  4323          type: "integer"
  4324        PublishedPort:
  4325          description: "The port on the swarm hosts."
  4326          type: "integer"
  4327        PublishMode:
  4328          description: |
  4329            The mode in which port is published.
  4330  
  4331            <p><br /></p>
  4332  
  4333            - "ingress" makes the target port accessible on every node,
  4334              regardless of whether there is a task for the service running on
  4335              that node or not.
  4336            - "host" bypasses the routing mesh and publish the port directly on
  4337              the swarm node where that service is running.
  4338  
  4339          type: "string"
  4340          enum:
  4341            - "ingress"
  4342            - "host"
  4343          default: "ingress"
  4344          example: "ingress"
  4345  
  4346    EndpointSpec:
  4347      description: "Properties that can be configured to access and load balance a service."
  4348      type: "object"
  4349      properties:
  4350        Mode:
  4351          description: |
  4352            The mode of resolution to use for internal load balancing between tasks.
  4353          type: "string"
  4354          enum:
  4355            - "vip"
  4356            - "dnsrr"
  4357          default: "vip"
  4358        Ports:
  4359          description: |
  4360            List of exposed ports that this service is accessible on from the
  4361            outside. Ports can only be provided if `vip` resolution mode is used.
  4362          type: "array"
  4363          items:
  4364            $ref: "#/definitions/EndpointPortConfig"
  4365  
  4366    Service:
  4367      type: "object"
  4368      properties:
  4369        ID:
  4370          type: "string"
  4371        Version:
  4372          $ref: "#/definitions/ObjectVersion"
  4373        CreatedAt:
  4374          type: "string"
  4375          format: "dateTime"
  4376        UpdatedAt:
  4377          type: "string"
  4378          format: "dateTime"
  4379        Spec:
  4380          $ref: "#/definitions/ServiceSpec"
  4381        Endpoint:
  4382          type: "object"
  4383          properties:
  4384            Spec:
  4385              $ref: "#/definitions/EndpointSpec"
  4386            Ports:
  4387              type: "array"
  4388              items:
  4389                $ref: "#/definitions/EndpointPortConfig"
  4390            VirtualIPs:
  4391              type: "array"
  4392              items:
  4393                type: "object"
  4394                properties:
  4395                  NetworkID:
  4396                    type: "string"
  4397                  Addr:
  4398                    type: "string"
  4399        UpdateStatus:
  4400          description: "The status of a service update."
  4401          type: "object"
  4402          properties:
  4403            State:
  4404              type: "string"
  4405              enum:
  4406                - "updating"
  4407                - "paused"
  4408                - "completed"
  4409            StartedAt:
  4410              type: "string"
  4411              format: "dateTime"
  4412            CompletedAt:
  4413              type: "string"
  4414              format: "dateTime"
  4415            Message:
  4416              type: "string"
  4417        ServiceStatus:
  4418          description: |
  4419            The status of the service's tasks. Provided only when requested as
  4420            part of a ServiceList operation.
  4421          type: "object"
  4422          properties:
  4423            RunningTasks:
  4424              description: |
  4425                The number of tasks for the service currently in the Running state.
  4426              type: "integer"
  4427              format: "uint64"
  4428              example: 7
  4429            DesiredTasks:
  4430              description: |
  4431                The number of tasks for the service desired to be running.
  4432                For replicated services, this is the replica count from the
  4433                service spec. For global services, this is computed by taking
  4434                count of all tasks for the service with a Desired State other
  4435                than Shutdown.
  4436              type: "integer"
  4437              format: "uint64"
  4438              example: 10
  4439            CompletedTasks:
  4440              description: |
  4441                The number of tasks for a job that are in the Completed state.
  4442                This field must be cross-referenced with the service type, as the
  4443                value of 0 may mean the service is not in a job mode, or it may
  4444                mean the job-mode service has no tasks yet Completed.
  4445              type: "integer"
  4446              format: "uint64"
  4447        JobStatus:
  4448          description: |
  4449            The status of the service when it is in one of ReplicatedJob or
  4450            GlobalJob modes. Absent on Replicated and Global mode services. The
  4451            JobIteration is an ObjectVersion, but unlike the Service's version,
  4452            does not need to be sent with an update request.
  4453          type: "object"
  4454          properties:
  4455            JobIteration:
  4456              description: |
  4457                JobIteration is a value increased each time a Job is executed,
  4458                successfully or otherwise. "Executed", in this case, means the
  4459                job as a whole has been started, not that an individual Task has
  4460                been launched. A job is "Executed" when its ServiceSpec is
  4461                updated. JobIteration can be used to disambiguate Tasks belonging
  4462                to different executions of a job.  Though JobIteration will
  4463                increase with each subsequent execution, it may not necessarily
  4464                increase by 1, and so JobIteration should not be used to
  4465              $ref: "#/definitions/ObjectVersion"
  4466            LastExecution:
  4467              description: |
  4468                The last time, as observed by the server, that this job was
  4469                started.
  4470              type: "string"
  4471              format: "dateTime"
  4472      example:
  4473        ID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  4474        Version:
  4475          Index: 19
  4476        CreatedAt: "2016-06-07T21:05:51.880065305Z"
  4477        UpdatedAt: "2016-06-07T21:07:29.962229872Z"
  4478        Spec:
  4479          Name: "hopeful_cori"
  4480          TaskTemplate:
  4481            ContainerSpec:
  4482              Image: "redis"
  4483            Resources:
  4484              Limits: {}
  4485              Reservations: {}
  4486            RestartPolicy:
  4487              Condition: "any"
  4488              MaxAttempts: 0
  4489            Placement: {}
  4490            ForceUpdate: 0
  4491          Mode:
  4492            Replicated:
  4493              Replicas: 1
  4494          UpdateConfig:
  4495            Parallelism: 1
  4496            Delay: 1000000000
  4497            FailureAction: "pause"
  4498            Monitor: 15000000000
  4499            MaxFailureRatio: 0.15
  4500          RollbackConfig:
  4501            Parallelism: 1
  4502            Delay: 1000000000
  4503            FailureAction: "pause"
  4504            Monitor: 15000000000
  4505            MaxFailureRatio: 0.15
  4506          EndpointSpec:
  4507            Mode: "vip"
  4508            Ports:
  4509              -
  4510                Protocol: "tcp"
  4511                TargetPort: 6379
  4512                PublishedPort: 30001
  4513        Endpoint:
  4514          Spec:
  4515            Mode: "vip"
  4516            Ports:
  4517              -
  4518                Protocol: "tcp"
  4519                TargetPort: 6379
  4520                PublishedPort: 30001
  4521          Ports:
  4522            -
  4523              Protocol: "tcp"
  4524              TargetPort: 6379
  4525              PublishedPort: 30001
  4526          VirtualIPs:
  4527            -
  4528              NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
  4529              Addr: "10.255.0.2/16"
  4530            -
  4531              NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
  4532              Addr: "10.255.0.3/16"
  4533  
  4534    ImageDeleteResponseItem:
  4535      type: "object"
  4536      x-go-name: "DeleteResponse"
  4537      properties:
  4538        Untagged:
  4539          description: "The image ID of an image that was untagged"
  4540          type: "string"
  4541        Deleted:
  4542          description: "The image ID of an image that was deleted"
  4543          type: "string"
  4544  
  4545    ServiceCreateResponse:
  4546      type: "object"
  4547      description: |
  4548        contains the information returned to a client on the
  4549        creation of a new service.
  4550      properties:
  4551        ID:
  4552          description: "The ID of the created service."
  4553          type: "string"
  4554          x-nullable: false
  4555          example: "ak7w3gjqoa3kuz8xcpnyy0pvl"
  4556        Warnings:
  4557          description: |
  4558            Optional warning message.
  4559  
  4560            FIXME(thaJeztah): this should have "omitempty" in the generated type.
  4561          type: "array"
  4562          x-nullable: true
  4563          items:
  4564            type: "string"
  4565          example:
  4566            - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
  4567  
  4568    ServiceUpdateResponse:
  4569      type: "object"
  4570      properties:
  4571        Warnings:
  4572          description: "Optional warning messages"
  4573          type: "array"
  4574          items:
  4575            type: "string"
  4576      example:
  4577        Warnings:
  4578          - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
  4579  
  4580    ContainerSummary:
  4581      type: "object"
  4582      properties:
  4583        Id:
  4584          description: "The ID of this container"
  4585          type: "string"
  4586          x-go-name: "ID"
  4587        Names:
  4588          description: "The names that this container has been given"
  4589          type: "array"
  4590          items:
  4591            type: "string"
  4592        Image:
  4593          description: "The name of the image used when creating this container"
  4594          type: "string"
  4595        ImageID:
  4596          description: "The ID of the image that this container was created from"
  4597          type: "string"
  4598        Command:
  4599          description: "Command to run when starting the container"
  4600          type: "string"
  4601        Created:
  4602          description: "When the container was created"
  4603          type: "integer"
  4604          format: "int64"
  4605        Ports:
  4606          description: "The ports exposed by this container"
  4607          type: "array"
  4608          items:
  4609            $ref: "#/definitions/Port"
  4610        SizeRw:
  4611          description: "The size of files that have been created or changed by this container"
  4612          type: "integer"
  4613          format: "int64"
  4614        SizeRootFs:
  4615          description: "The total size of all the files in this container"
  4616          type: "integer"
  4617          format: "int64"
  4618        Labels:
  4619          description: "User-defined key/value metadata."
  4620          type: "object"
  4621          additionalProperties:
  4622            type: "string"
  4623        State:
  4624          description: "The state of this container (e.g. `Exited`)"
  4625          type: "string"
  4626        Status:
  4627          description: "Additional human-readable status of this container (e.g. `Exit 0`)"
  4628          type: "string"
  4629        HostConfig:
  4630          type: "object"
  4631          properties:
  4632            NetworkMode:
  4633              type: "string"
  4634        NetworkSettings:
  4635          description: "A summary of the container's network settings"
  4636          type: "object"
  4637          properties:
  4638            Networks:
  4639              type: "object"
  4640              additionalProperties:
  4641                $ref: "#/definitions/EndpointSettings"
  4642        Mounts:
  4643          type: "array"
  4644          items:
  4645            $ref: "#/definitions/MountPoint"
  4646  
  4647    Driver:
  4648      description: "Driver represents a driver (network, logging, secrets)."
  4649      type: "object"
  4650      required: [Name]
  4651      properties:
  4652        Name:
  4653          description: "Name of the driver."
  4654          type: "string"
  4655          x-nullable: false
  4656          example: "some-driver"
  4657        Options:
  4658          description: "Key/value map of driver-specific options."
  4659          type: "object"
  4660          x-nullable: false
  4661          additionalProperties:
  4662            type: "string"
  4663          example:
  4664            OptionA: "value for driver-specific option A"
  4665            OptionB: "value for driver-specific option B"
  4666  
  4667    SecretSpec:
  4668      type: "object"
  4669      properties:
  4670        Name:
  4671          description: "User-defined name of the secret."
  4672          type: "string"
  4673        Labels:
  4674          description: "User-defined key/value metadata."
  4675          type: "object"
  4676          additionalProperties:
  4677            type: "string"
  4678          example:
  4679            com.example.some-label: "some-value"
  4680            com.example.some-other-label: "some-other-value"
  4681        Data:
  4682          description: |
  4683            Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
  4684            data to store as secret.
  4685  
  4686            This field is only used to _create_ a secret, and is not returned by
  4687            other endpoints.
  4688          type: "string"
  4689          example: ""
  4690        Driver:
  4691          description: |
  4692            Name of the secrets driver used to fetch the secret's value from an
  4693            external secret store.
  4694          $ref: "#/definitions/Driver"
  4695        Templating:
  4696          description: |
  4697            Templating driver, if applicable
  4698  
  4699            Templating controls whether and how to evaluate the config payload as
  4700            a template. If no driver is set, no templating is used.
  4701          $ref: "#/definitions/Driver"
  4702  
  4703    Secret:
  4704      type: "object"
  4705      properties:
  4706        ID:
  4707          type: "string"
  4708          example: "blt1owaxmitz71s9v5zh81zun"
  4709        Version:
  4710          $ref: "#/definitions/ObjectVersion"
  4711        CreatedAt:
  4712          type: "string"
  4713          format: "dateTime"
  4714          example: "2017-07-20T13:55:28.678958722Z"
  4715        UpdatedAt:
  4716          type: "string"
  4717          format: "dateTime"
  4718          example: "2017-07-20T13:55:28.678958722Z"
  4719        Spec:
  4720          $ref: "#/definitions/SecretSpec"
  4721  
  4722    ConfigSpec:
  4723      type: "object"
  4724      properties:
  4725        Name:
  4726          description: "User-defined name of the config."
  4727          type: "string"
  4728        Labels:
  4729          description: "User-defined key/value metadata."
  4730          type: "object"
  4731          additionalProperties:
  4732            type: "string"
  4733        Data:
  4734          description: |
  4735            Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
  4736            config data.
  4737          type: "string"
  4738        Templating:
  4739          description: |
  4740            Templating driver, if applicable
  4741  
  4742            Templating controls whether and how to evaluate the config payload as
  4743            a template. If no driver is set, no templating is used.
  4744          $ref: "#/definitions/Driver"
  4745  
  4746    Config:
  4747      type: "object"
  4748      properties:
  4749        ID:
  4750          type: "string"
  4751        Version:
  4752          $ref: "#/definitions/ObjectVersion"
  4753        CreatedAt:
  4754          type: "string"
  4755          format: "dateTime"
  4756        UpdatedAt:
  4757          type: "string"
  4758          format: "dateTime"
  4759        Spec:
  4760          $ref: "#/definitions/ConfigSpec"
  4761  
  4762    ContainerState:
  4763      description: |
  4764        ContainerState stores container's running state. It's part of ContainerJSONBase
  4765        and will be returned by the "inspect" command.
  4766      type: "object"
  4767      x-nullable: true
  4768      properties:
  4769        Status:
  4770          description: |
  4771            String representation of the container state. Can be one of "created",
  4772            "running", "paused", "restarting", "removing", "exited", or "dead".
  4773          type: "string"
  4774          enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
  4775          example: "running"
  4776        Running:
  4777          description: |
  4778            Whether this container is running.
  4779  
  4780            Note that a running container can be _paused_. The `Running` and `Paused`
  4781            booleans are not mutually exclusive:
  4782  
  4783            When pausing a container (on Linux), the freezer cgroup is used to suspend
  4784            all processes in the container. Freezing the process requires the process to
  4785            be running. As a result, paused containers are both `Running` _and_ `Paused`.
  4786  
  4787            Use the `Status` field instead to determine if a container's state is "running".
  4788          type: "boolean"
  4789          example: true
  4790        Paused:
  4791          description: "Whether this container is paused."
  4792          type: "boolean"
  4793          example: false
  4794        Restarting:
  4795          description: "Whether this container is restarting."
  4796          type: "boolean"
  4797          example: false
  4798        OOMKilled:
  4799          description: |
  4800            Whether a process within this container has been killed because it ran
  4801            out of memory since the container was last started.
  4802          type: "boolean"
  4803          example: false
  4804        Dead:
  4805          type: "boolean"
  4806          example: false
  4807        Pid:
  4808          description: "The process ID of this container"
  4809          type: "integer"
  4810          example: 1234
  4811        ExitCode:
  4812          description: "The last exit code of this container"
  4813          type: "integer"
  4814          example: 0
  4815        Error:
  4816          type: "string"
  4817        StartedAt:
  4818          description: "The time when this container was last started."
  4819          type: "string"
  4820          example: "2020-01-06T09:06:59.461876391Z"
  4821        FinishedAt:
  4822          description: "The time when this container last exited."
  4823          type: "string"
  4824          example: "2020-01-06T09:07:59.461876391Z"
  4825        Health:
  4826          $ref: "#/definitions/Health"
  4827  
  4828    ContainerCreateResponse:
  4829      description: "OK response to ContainerCreate operation"
  4830      type: "object"
  4831      title: "ContainerCreateResponse"
  4832      x-go-name: "CreateResponse"
  4833      required: [Id, Warnings]
  4834      properties:
  4835        Id:
  4836          description: "The ID of the created container"
  4837          type: "string"
  4838          x-nullable: false
  4839          example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
  4840        Warnings:
  4841          description: "Warnings encountered when creating the container"
  4842          type: "array"
  4843          x-nullable: false
  4844          items:
  4845            type: "string"
  4846          example: []
  4847  
  4848    ContainerWaitResponse:
  4849      description: "OK response to ContainerWait operation"
  4850      type: "object"
  4851      x-go-name: "WaitResponse"
  4852      title: "ContainerWaitResponse"
  4853      required: [StatusCode]
  4854      properties:
  4855        StatusCode:
  4856          description: "Exit code of the container"
  4857          type: "integer"
  4858          format: "int64"
  4859          x-nullable: false
  4860        Error:
  4861          $ref: "#/definitions/ContainerWaitExitError"
  4862  
  4863    ContainerWaitExitError:
  4864      description: "container waiting error, if any"
  4865      type: "object"
  4866      x-go-name: "WaitExitError"
  4867      properties:
  4868        Message:
  4869          description: "Details of an error"
  4870          type: "string"
  4871  
  4872    SystemVersion:
  4873      type: "object"
  4874      description: |
  4875        Response of Engine API: GET "/version"
  4876      properties:
  4877        Platform:
  4878          type: "object"
  4879          required: [Name]
  4880          properties:
  4881            Name:
  4882              type: "string"
  4883        Components:
  4884          type: "array"
  4885          description: |
  4886            Information about system components
  4887          items:
  4888            type: "object"
  4889            x-go-name: ComponentVersion
  4890            required: [Name, Version]
  4891            properties:
  4892              Name:
  4893                description: |
  4894                  Name of the component
  4895                type: "string"
  4896                example: "Engine"
  4897              Version:
  4898                description: |
  4899                  Version of the component
  4900                type: "string"
  4901                x-nullable: false
  4902                example: "19.03.12"
  4903              Details:
  4904                description: |
  4905                  Key/value pairs of strings with additional information about the
  4906                  component. These values are intended for informational purposes
  4907                  only, and their content is not defined, and not part of the API
  4908                  specification.
  4909  
  4910                  These messages can be printed by the client as information to the user.
  4911                type: "object"
  4912                x-nullable: true
  4913        Version:
  4914          description: "The version of the daemon"
  4915          type: "string"
  4916          example: "19.03.12"
  4917        ApiVersion:
  4918          description: |
  4919            The default (and highest) API version that is supported by the daemon
  4920          type: "string"
  4921          example: "1.40"
  4922        MinAPIVersion:
  4923          description: |
  4924            The minimum API version that is supported by the daemon
  4925          type: "string"
  4926          example: "1.12"
  4927        GitCommit:
  4928          description: |
  4929            The Git commit of the source code that was used to build the daemon
  4930          type: "string"
  4931          example: "48a66213fe"
  4932        GoVersion:
  4933          description: |
  4934            The version Go used to compile the daemon, and the version of the Go
  4935            runtime in use.
  4936          type: "string"
  4937          example: "go1.13.14"
  4938        Os:
  4939          description: |
  4940            The operating system that the daemon is running on ("linux" or "windows")
  4941          type: "string"
  4942          example: "linux"
  4943        Arch:
  4944          description: |
  4945            The architecture that the daemon is running on
  4946          type: "string"
  4947          example: "amd64"
  4948        KernelVersion:
  4949          description: |
  4950            The kernel version (`uname -r`) that the daemon is running on.
  4951  
  4952            This field is omitted when empty.
  4953          type: "string"
  4954          example: "4.19.76-linuxkit"
  4955        Experimental:
  4956          description: |
  4957            Indicates if the daemon is started with experimental features enabled.
  4958  
  4959            This field is omitted when empty / false.
  4960          type: "boolean"
  4961          example: true
  4962        BuildTime:
  4963          description: |
  4964            The date and time that the daemon was compiled.
  4965          type: "string"
  4966          example: "2020-06-22T15:49:27.000000000+00:00"
  4967  
  4968    SystemInfo:
  4969      type: "object"
  4970      properties:
  4971        ID:
  4972          description: |
  4973            Unique identifier of the daemon.
  4974  
  4975            <p><br /></p>
  4976  
  4977            > **Note**: The format of the ID itself is not part of the API, and
  4978            > should not be considered stable.
  4979          type: "string"
  4980          example: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS"
  4981        Containers:
  4982          description: "Total number of containers on the host."
  4983          type: "integer"
  4984          example: 14
  4985        ContainersRunning:
  4986          description: |
  4987            Number of containers with status `"running"`.
  4988          type: "integer"
  4989          example: 3
  4990        ContainersPaused:
  4991          description: |
  4992            Number of containers with status `"paused"`.
  4993          type: "integer"
  4994          example: 1
  4995        ContainersStopped:
  4996          description: |
  4997            Number of containers with status `"stopped"`.
  4998          type: "integer"
  4999          example: 10
  5000        Images:
  5001          description: |
  5002            Total number of images on the host.
  5003  
  5004            Both _tagged_ and _untagged_ (dangling) images are counted.
  5005          type: "integer"
  5006          example: 508
  5007        Driver:
  5008          description: "Name of the storage driver in use."
  5009          type: "string"
  5010          example: "overlay2"
  5011        DriverStatus:
  5012          description: |
  5013            Information specific to the storage driver, provided as
  5014            "label" / "value" pairs.
  5015  
  5016            This information is provided by the storage driver, and formatted
  5017            in a way consistent with the output of `docker info` on the command
  5018            line.
  5019  
  5020            <p><br /></p>
  5021  
  5022            > **Note**: The information returned in this field, including the
  5023            > formatting of values and labels, should not be considered stable,
  5024            > and may change without notice.
  5025          type: "array"
  5026          items:
  5027            type: "array"
  5028            items:
  5029              type: "string"
  5030          example:
  5031            - ["Backing Filesystem", "extfs"]
  5032            - ["Supports d_type", "true"]
  5033            - ["Native Overlay Diff", "true"]
  5034        DockerRootDir:
  5035          description: |
  5036            Root directory of persistent Docker state.
  5037  
  5038            Defaults to `/var/lib/docker` on Linux, and `C:\ProgramData\docker`
  5039            on Windows.
  5040          type: "string"
  5041          example: "/var/lib/docker"
  5042        Plugins:
  5043          $ref: "#/definitions/PluginsInfo"
  5044        MemoryLimit:
  5045          description: "Indicates if the host has memory limit support enabled."
  5046          type: "boolean"
  5047          example: true
  5048        SwapLimit:
  5049          description: "Indicates if the host has memory swap limit support enabled."
  5050          type: "boolean"
  5051          example: true
  5052        KernelMemoryTCP:
  5053          description: |
  5054            Indicates if the host has kernel memory TCP limit support enabled. This
  5055            field is omitted if not supported.
  5056  
  5057            Kernel memory TCP limits are not supported when using cgroups v2, which
  5058            does not support the corresponding `memory.kmem.tcp.limit_in_bytes` cgroup.
  5059          type: "boolean"
  5060          example: true
  5061        CpuCfsPeriod:
  5062          description: |
  5063            Indicates if CPU CFS(Completely Fair Scheduler) period is supported by
  5064            the host.
  5065          type: "boolean"
  5066          example: true
  5067        CpuCfsQuota:
  5068          description: |
  5069            Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by
  5070            the host.
  5071          type: "boolean"
  5072          example: true
  5073        CPUShares:
  5074          description: |
  5075            Indicates if CPU Shares limiting is supported by the host.
  5076          type: "boolean"
  5077          example: true
  5078        CPUSet:
  5079          description: |
  5080            Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host.
  5081  
  5082            See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)
  5083          type: "boolean"
  5084          example: true
  5085        PidsLimit:
  5086          description: "Indicates if the host kernel has PID limit support enabled."
  5087          type: "boolean"
  5088          example: true
  5089        OomKillDisable:
  5090          description: "Indicates if OOM killer disable is supported on the host."
  5091          type: "boolean"
  5092        IPv4Forwarding:
  5093          description: "Indicates IPv4 forwarding is enabled."
  5094          type: "boolean"
  5095          example: true
  5096        BridgeNfIptables:
  5097          description: "Indicates if `bridge-nf-call-iptables` is available on the host."
  5098          type: "boolean"
  5099          example: true
  5100        BridgeNfIp6tables:
  5101          description: "Indicates if `bridge-nf-call-ip6tables` is available on the host."
  5102          type: "boolean"
  5103          example: true
  5104        Debug:
  5105          description: |
  5106            Indicates if the daemon is running in debug-mode / with debug-level
  5107            logging enabled.
  5108          type: "boolean"
  5109          example: true
  5110        NFd:
  5111          description: |
  5112            The total number of file Descriptors in use by the daemon process.
  5113  
  5114            This information is only returned if debug-mode is enabled.
  5115          type: "integer"
  5116          example: 64
  5117        NGoroutines:
  5118          description: |
  5119            The  number of goroutines that currently exist.
  5120  
  5121            This information is only returned if debug-mode is enabled.
  5122          type: "integer"
  5123          example: 174
  5124        SystemTime:
  5125          description: |
  5126            Current system-time in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
  5127            format with nano-seconds.
  5128          type: "string"
  5129          example: "2017-08-08T20:28:29.06202363Z"
  5130        LoggingDriver:
  5131          description: |
  5132            The logging driver to use as a default for new containers.
  5133          type: "string"
  5134        CgroupDriver:
  5135          description: |
  5136            The driver to use for managing cgroups.
  5137          type: "string"
  5138          enum: ["cgroupfs", "systemd", "none"]
  5139          default: "cgroupfs"
  5140          example: "cgroupfs"
  5141        CgroupVersion:
  5142          description: |
  5143            The version of the cgroup.
  5144          type: "string"
  5145          enum: ["1", "2"]
  5146          default: "1"
  5147          example: "1"
  5148        NEventsListener:
  5149          description: "Number of event listeners subscribed."
  5150          type: "integer"
  5151          example: 30
  5152        KernelVersion:
  5153          description: |
  5154            Kernel version of the host.
  5155  
  5156            On Linux, this information obtained from `uname`. On Windows this
  5157            information is queried from the <kbd>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\</kbd>
  5158            registry value, for example _"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)"_.
  5159          type: "string"
  5160          example: "4.9.38-moby"
  5161        OperatingSystem:
  5162          description: |
  5163            Name of the host's operating system, for example: "Ubuntu 16.04.2 LTS"
  5164            or "Windows Server 2016 Datacenter"
  5165          type: "string"
  5166          example: "Alpine Linux v3.5"
  5167        OSVersion:
  5168          description: |
  5169            Version of the host's operating system
  5170  
  5171            <p><br /></p>
  5172  
  5173            > **Note**: The information returned in this field, including its
  5174            > very existence, and the formatting of values, should not be considered
  5175            > stable, and may change without notice.
  5176          type: "string"
  5177          example: "16.04"
  5178        OSType:
  5179          description: |
  5180            Generic type of the operating system of the host, as returned by the
  5181            Go runtime (`GOOS`).
  5182  
  5183            Currently returned values are "linux" and "windows". A full list of
  5184            possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment).
  5185          type: "string"
  5186          example: "linux"
  5187        Architecture:
  5188          description: |
  5189            Hardware architecture of the host, as returned by the Go runtime
  5190            (`GOARCH`).
  5191  
  5192            A full list of possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment).
  5193          type: "string"
  5194          example: "x86_64"
  5195        NCPU:
  5196          description: |
  5197            The number of logical CPUs usable by the daemon.
  5198  
  5199            The number of available CPUs is checked by querying the operating
  5200            system when the daemon starts. Changes to operating system CPU
  5201            allocation after the daemon is started are not reflected.
  5202          type: "integer"
  5203          example: 4
  5204        MemTotal:
  5205          description: |
  5206            Total amount of physical memory available on the host, in bytes.
  5207          type: "integer"
  5208          format: "int64"
  5209          example: 2095882240
  5210  
  5211        IndexServerAddress:
  5212          description: |
  5213            Address / URL of the index server that is used for image search,
  5214            and as a default for user authentication for Docker Hub and Docker Cloud.
  5215          default: "https://index.docker.io/v1/"
  5216          type: "string"
  5217          example: "https://index.docker.io/v1/"
  5218        RegistryConfig:
  5219          $ref: "#/definitions/RegistryServiceConfig"
  5220        GenericResources:
  5221          $ref: "#/definitions/GenericResources"
  5222        HttpProxy:
  5223          description: |
  5224            HTTP-proxy configured for the daemon. This value is obtained from the
  5225            [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
  5226            Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL
  5227            are masked in the API response.
  5228  
  5229            Containers do not automatically inherit this configuration.
  5230          type: "string"
  5231          example: "http://xxxxx:xxxxx@proxy.corp.example.com:8080"
  5232        HttpsProxy:
  5233          description: |
  5234            HTTPS-proxy configured for the daemon. This value is obtained from the
  5235            [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
  5236            Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL
  5237            are masked in the API response.
  5238  
  5239            Containers do not automatically inherit this configuration.
  5240          type: "string"
  5241          example: "https://xxxxx:xxxxx@proxy.corp.example.com:4443"
  5242        NoProxy:
  5243          description: |
  5244            Comma-separated list of domain extensions for which no proxy should be
  5245            used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html)
  5246            environment variable.
  5247  
  5248            Containers do not automatically inherit this configuration.
  5249          type: "string"
  5250          example: "*.local, 169.254/16"
  5251        Name:
  5252          description: "Hostname of the host."
  5253          type: "string"
  5254          example: "node5.corp.example.com"
  5255        Labels:
  5256          description: |
  5257            User-defined labels (key/value metadata) as set on the daemon.
  5258  
  5259            <p><br /></p>
  5260  
  5261            > **Note**: When part of a Swarm, nodes can both have _daemon_ labels,
  5262            > set through the daemon configuration, and _node_ labels, set from a
  5263            > manager node in the Swarm. Node labels are not included in this
  5264            > field. Node labels can be retrieved using the `/nodes/(id)` endpoint
  5265            > on a manager node in the Swarm.
  5266          type: "array"
  5267          items:
  5268            type: "string"
  5269          example: ["storage=ssd", "production"]
  5270        ExperimentalBuild:
  5271          description: |
  5272            Indicates if experimental features are enabled on the daemon.
  5273          type: "boolean"
  5274          example: true
  5275        ServerVersion:
  5276          description: |
  5277            Version string of the daemon.
  5278          type: "string"
  5279          example: "24.0.2"
  5280        Runtimes:
  5281          description: |
  5282            List of [OCI compliant](https://github.com/opencontainers/runtime-spec)
  5283            runtimes configured on the daemon. Keys hold the "name" used to
  5284            reference the runtime.
  5285  
  5286            The Docker daemon relies on an OCI compliant runtime (invoked via the
  5287            `containerd` daemon) as its interface to the Linux kernel namespaces,
  5288            cgroups, and SELinux.
  5289  
  5290            The default runtime is `runc`, and automatically configured. Additional
  5291            runtimes can be configured by the user and will be listed here.
  5292          type: "object"
  5293          additionalProperties:
  5294            $ref: "#/definitions/Runtime"
  5295          default:
  5296            runc:
  5297              path: "runc"
  5298          example:
  5299            runc:
  5300              path: "runc"
  5301            runc-master:
  5302              path: "/go/bin/runc"
  5303            custom:
  5304              path: "/usr/local/bin/my-oci-runtime"
  5305              runtimeArgs: ["--debug", "--systemd-cgroup=false"]
  5306        DefaultRuntime:
  5307          description: |
  5308            Name of the default OCI runtime that is used when starting containers.
  5309  
  5310            The default can be overridden per-container at create time.
  5311          type: "string"
  5312          default: "runc"
  5313          example: "runc"
  5314        Swarm:
  5315          $ref: "#/definitions/SwarmInfo"
  5316        LiveRestoreEnabled:
  5317          description: |
  5318            Indicates if live restore is enabled.
  5319  
  5320            If enabled, containers are kept running when the daemon is shutdown
  5321            or upon daemon start if running containers are detected.
  5322          type: "boolean"
  5323          default: false
  5324          example: false
  5325        Isolation:
  5326          description: |
  5327            Represents the isolation technology to use as a default for containers.
  5328            The supported values are platform-specific.
  5329  
  5330            If no isolation value is specified on daemon start, on Windows client,
  5331            the default is `hyperv`, and on Windows server, the default is `process`.
  5332  
  5333            This option is currently not used on other platforms.
  5334          default: "default"
  5335          type: "string"
  5336          enum:
  5337            - "default"
  5338            - "hyperv"
  5339            - "process"
  5340        InitBinary:
  5341          description: |
  5342            Name and, optional, path of the `docker-init` binary.
  5343  
  5344            If the path is omitted, the daemon searches the host's `$PATH` for the
  5345            binary and uses the first result.
  5346          type: "string"
  5347          example: "docker-init"
  5348        ContainerdCommit:
  5349          $ref: "#/definitions/Commit"
  5350        RuncCommit:
  5351          $ref: "#/definitions/Commit"
  5352        InitCommit:
  5353          $ref: "#/definitions/Commit"
  5354        SecurityOptions:
  5355          description: |
  5356            List of security features that are enabled on the daemon, such as
  5357            apparmor, seccomp, SELinux, user-namespaces (userns), rootless and
  5358            no-new-privileges.
  5359  
  5360            Additional configuration options for each security feature may
  5361            be present, and are included as a comma-separated list of key/value
  5362            pairs.
  5363          type: "array"
  5364          items:
  5365            type: "string"
  5366          example:
  5367            - "name=apparmor"
  5368            - "name=seccomp,profile=default"
  5369            - "name=selinux"
  5370            - "name=userns"
  5371            - "name=rootless"
  5372        ProductLicense:
  5373          description: |
  5374            Reports a summary of the product license on the daemon.
  5375  
  5376            If a commercial license has been applied to the daemon, information
  5377            such as number of nodes, and expiration are included.
  5378          type: "string"
  5379          example: "Community Engine"
  5380        DefaultAddressPools:
  5381          description: |
  5382            List of custom default address pools for local networks, which can be
  5383            specified in the daemon.json file or dockerd option.
  5384  
  5385            Example: a Base "10.10.0.0/16" with Size 24 will define the set of 256
  5386            10.10.[0-255].0/24 address pools.
  5387          type: "array"
  5388          items:
  5389            type: "object"
  5390            properties:
  5391              Base:
  5392                description: "The network address in CIDR format"
  5393                type: "string"
  5394                example: "10.10.0.0/16"
  5395              Size:
  5396                description: "The network pool size"
  5397                type: "integer"
  5398                example: "24"
  5399        Warnings:
  5400          description: |
  5401            List of warnings / informational messages about missing features, or
  5402            issues related to the daemon configuration.
  5403  
  5404            These messages can be printed by the client as information to the user.
  5405          type: "array"
  5406          items:
  5407            type: "string"
  5408          example:
  5409            - "WARNING: No memory limit support"
  5410            - "WARNING: bridge-nf-call-iptables is disabled"
  5411            - "WARNING: bridge-nf-call-ip6tables is disabled"
  5412        CDISpecDirs:
  5413          description: |
  5414            List of directories where (Container Device Interface) CDI
  5415            specifications are located.
  5416  
  5417            These specifications define vendor-specific modifications to an OCI
  5418            runtime specification for a container being created.
  5419  
  5420            An empty list indicates that CDI device injection is disabled.
  5421  
  5422            Note that since using CDI device injection requires the daemon to have
  5423            experimental enabled. For non-experimental daemons an empty list will
  5424            always be returned.
  5425          type: "array"
  5426          items:
  5427            type: "string"
  5428          example:
  5429            - "/etc/cdi"
  5430            - "/var/run/cdi"
  5431  
  5432    # PluginsInfo is a temp struct holding Plugins name
  5433    # registered with docker daemon. It is used by Info struct
  5434    PluginsInfo:
  5435      description: |
  5436        Available plugins per type.
  5437  
  5438        <p><br /></p>
  5439  
  5440        > **Note**: Only unmanaged (V1) plugins are included in this list.
  5441        > V1 plugins are "lazily" loaded, and are not returned in this list
  5442        > if there is no resource using the plugin.
  5443      type: "object"
  5444      properties:
  5445        Volume:
  5446          description: "Names of available volume-drivers, and network-driver plugins."
  5447          type: "array"
  5448          items:
  5449            type: "string"
  5450          example: ["local"]
  5451        Network:
  5452          description: "Names of available network-drivers, and network-driver plugins."
  5453          type: "array"
  5454          items:
  5455            type: "string"
  5456          example: ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"]
  5457        Authorization:
  5458          description: "Names of available authorization plugins."
  5459          type: "array"
  5460          items:
  5461            type: "string"
  5462          example: ["img-authz-plugin", "hbm"]
  5463        Log:
  5464          description: "Names of available logging-drivers, and logging-driver plugins."
  5465          type: "array"
  5466          items:
  5467            type: "string"
  5468          example: ["awslogs", "fluentd", "gcplogs", "gelf", "journald", "json-file", "splunk", "syslog"]
  5469  
  5470  
  5471    RegistryServiceConfig:
  5472      description: |
  5473        RegistryServiceConfig stores daemon registry services configuration.
  5474      type: "object"
  5475      x-nullable: true
  5476      properties:
  5477        AllowNondistributableArtifactsCIDRs:
  5478          description: |
  5479            List of IP ranges to which nondistributable artifacts can be pushed,
  5480            using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632).
  5481  
  5482            Some images (for example, Windows base images) contain artifacts
  5483            whose distribution is restricted by license. When these images are
  5484            pushed to a registry, restricted artifacts are not included.
  5485  
  5486            This configuration override this behavior, and enables the daemon to
  5487            push nondistributable artifacts to all registries whose resolved IP
  5488            address is within the subnet described by the CIDR syntax.
  5489  
  5490            This option is useful when pushing images containing
  5491            nondistributable artifacts to a registry on an air-gapped network so
  5492            hosts on that network can pull the images without connecting to
  5493            another server.
  5494  
  5495            > **Warning**: Nondistributable artifacts typically have restrictions
  5496            > on how and where they can be distributed and shared. Only use this
  5497            > feature to push artifacts to private registries and ensure that you
  5498            > are in compliance with any terms that cover redistributing
  5499            > nondistributable artifacts.
  5500  
  5501          type: "array"
  5502          items:
  5503            type: "string"
  5504          example: ["::1/128", "127.0.0.0/8"]
  5505        AllowNondistributableArtifactsHostnames:
  5506          description: |
  5507            List of registry hostnames to which nondistributable artifacts can be
  5508            pushed, using the format `<hostname>[:<port>]` or `<IP address>[:<port>]`.
  5509  
  5510            Some images (for example, Windows base images) contain artifacts
  5511            whose distribution is restricted by license. When these images are
  5512            pushed to a registry, restricted artifacts are not included.
  5513  
  5514            This configuration override this behavior for the specified
  5515            registries.
  5516  
  5517            This option is useful when pushing images containing
  5518            nondistributable artifacts to a registry on an air-gapped network so
  5519            hosts on that network can pull the images without connecting to
  5520            another server.
  5521  
  5522            > **Warning**: Nondistributable artifacts typically have restrictions
  5523            > on how and where they can be distributed and shared. Only use this
  5524            > feature to push artifacts to private registries and ensure that you
  5525            > are in compliance with any terms that cover redistributing
  5526            > nondistributable artifacts.
  5527          type: "array"
  5528          items:
  5529            type: "string"
  5530          example: ["registry.internal.corp.example.com:3000", "[2001:db8:a0b:12f0::1]:443"]
  5531        InsecureRegistryCIDRs:
  5532          description: |
  5533            List of IP ranges of insecure registries, using the CIDR syntax
  5534            ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries
  5535            accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates
  5536            from unknown CAs) communication.
  5537  
  5538            By default, local registries (`127.0.0.0/8`) are configured as
  5539            insecure. All other registries are secure. Communicating with an
  5540            insecure registry is not possible if the daemon assumes that registry
  5541            is secure.
  5542  
  5543            This configuration override this behavior, insecure communication with
  5544            registries whose resolved IP address is within the subnet described by
  5545            the CIDR syntax.
  5546  
  5547            Registries can also be marked insecure by hostname. Those registries
  5548            are listed under `IndexConfigs` and have their `Secure` field set to
  5549            `false`.
  5550  
  5551            > **Warning**: Using this option can be useful when running a local
  5552            > registry, but introduces security vulnerabilities. This option
  5553            > should therefore ONLY be used for testing purposes. For increased
  5554            > security, users should add their CA to their system's list of trusted
  5555            > CAs instead of enabling this option.
  5556          type: "array"
  5557          items:
  5558            type: "string"
  5559          example: ["::1/128", "127.0.0.0/8"]
  5560        IndexConfigs:
  5561          type: "object"
  5562          additionalProperties:
  5563            $ref: "#/definitions/IndexInfo"
  5564          example:
  5565            "127.0.0.1:5000":
  5566              "Name": "127.0.0.1:5000"
  5567              "Mirrors": []
  5568              "Secure": false
  5569              "Official": false
  5570            "[2001:db8:a0b:12f0::1]:80":
  5571              "Name": "[2001:db8:a0b:12f0::1]:80"
  5572              "Mirrors": []
  5573              "Secure": false
  5574              "Official": false
  5575            "docker.io":
  5576              Name: "docker.io"
  5577              Mirrors: ["https://hub-mirror.corp.example.com:5000/"]
  5578              Secure: true
  5579              Official: true
  5580            "registry.internal.corp.example.com:3000":
  5581              Name: "registry.internal.corp.example.com:3000"
  5582              Mirrors: []
  5583              Secure: false
  5584              Official: false
  5585        Mirrors:
  5586          description: |
  5587            List of registry URLs that act as a mirror for the official
  5588            (`docker.io`) registry.
  5589  
  5590          type: "array"
  5591          items:
  5592            type: "string"
  5593          example:
  5594            - "https://hub-mirror.corp.example.com:5000/"
  5595            - "https://[2001:db8:a0b:12f0::1]/"
  5596  
  5597    IndexInfo:
  5598      description:
  5599        IndexInfo contains information about a registry.
  5600      type: "object"
  5601      x-nullable: true
  5602      properties:
  5603        Name:
  5604          description: |
  5605            Name of the registry, such as "docker.io".
  5606          type: "string"
  5607          example: "docker.io"
  5608        Mirrors:
  5609          description: |
  5610            List of mirrors, expressed as URIs.
  5611          type: "array"
  5612          items:
  5613            type: "string"
  5614          example:
  5615            - "https://hub-mirror.corp.example.com:5000/"
  5616            - "https://registry-2.docker.io/"
  5617            - "https://registry-3.docker.io/"
  5618        Secure:
  5619          description: |
  5620            Indicates if the registry is part of the list of insecure
  5621            registries.
  5622  
  5623            If `false`, the registry is insecure. Insecure registries accept
  5624            un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from
  5625            unknown CAs) communication.
  5626  
  5627            > **Warning**: Insecure registries can be useful when running a local
  5628            > registry. However, because its use creates security vulnerabilities
  5629            > it should ONLY be enabled for testing purposes. For increased
  5630            > security, users should add their CA to their system's list of
  5631            > trusted CAs instead of enabling this option.
  5632          type: "boolean"
  5633          example: true
  5634        Official:
  5635          description: |
  5636            Indicates whether this is an official registry (i.e., Docker Hub / docker.io)
  5637          type: "boolean"
  5638          example: true
  5639  
  5640    Runtime:
  5641      description: |
  5642        Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec)
  5643        runtime.
  5644  
  5645        The runtime is invoked by the daemon via the `containerd` daemon. OCI
  5646        runtimes act as an interface to the Linux kernel namespaces, cgroups,
  5647        and SELinux.
  5648      type: "object"
  5649      properties:
  5650        path:
  5651          description: |
  5652            Name and, optional, path, of the OCI executable binary.
  5653  
  5654            If the path is omitted, the daemon searches the host's `$PATH` for the
  5655            binary and uses the first result.
  5656          type: "string"
  5657          example: "/usr/local/bin/my-oci-runtime"
  5658        runtimeArgs:
  5659          description: |
  5660            List of command-line arguments to pass to the runtime when invoked.
  5661          type: "array"
  5662          x-nullable: true
  5663          items:
  5664            type: "string"
  5665          example: ["--debug", "--systemd-cgroup=false"]
  5666        status:
  5667          description: |
  5668            Information specific to the runtime.
  5669  
  5670            While this API specification does not define data provided by runtimes,
  5671            the following well-known properties may be provided by runtimes:
  5672  
  5673            `org.opencontainers.runtime-spec.features`: features structure as defined
  5674            in the [OCI Runtime Specification](https://github.com/opencontainers/runtime-spec/blob/main/features.md),
  5675            in a JSON string representation.
  5676  
  5677            <p><br /></p>
  5678  
  5679            > **Note**: The information returned in this field, including the
  5680            > formatting of values and labels, should not be considered stable,
  5681            > and may change without notice.
  5682          type: "object"
  5683          x-nullable: true
  5684          additionalProperties:
  5685            type: "string"
  5686          example:
  5687            "org.opencontainers.runtime-spec.features": "{\"ociVersionMin\":\"1.0.0\",\"ociVersionMax\":\"1.1.0\",\"...\":\"...\"}"
  5688  
  5689    Commit:
  5690      description: |
  5691        Commit holds the Git-commit (SHA1) that a binary was built from, as
  5692        reported in the version-string of external tools, such as `containerd`,
  5693        or `runC`.
  5694      type: "object"
  5695      properties:
  5696        ID:
  5697          description: "Actual commit ID of external tool."
  5698          type: "string"
  5699          example: "cfb82a876ecc11b5ca0977d1733adbe58599088a"
  5700        Expected:
  5701          description: |
  5702            Commit ID of external tool expected by dockerd as set at build time.
  5703          type: "string"
  5704          example: "2d41c047c83e09a6d61d464906feb2a2f3c52aa4"
  5705  
  5706    SwarmInfo:
  5707      description: |
  5708        Represents generic information about swarm.
  5709      type: "object"
  5710      properties:
  5711        NodeID:
  5712          description: "Unique identifier of for this node in the swarm."
  5713          type: "string"
  5714          default: ""
  5715          example: "k67qz4598weg5unwwffg6z1m1"
  5716        NodeAddr:
  5717          description: |
  5718            IP address at which this node can be reached by other nodes in the
  5719            swarm.
  5720          type: "string"
  5721          default: ""
  5722          example: "10.0.0.46"
  5723        LocalNodeState:
  5724          $ref: "#/definitions/LocalNodeState"
  5725        ControlAvailable:
  5726          type: "boolean"
  5727          default: false
  5728          example: true
  5729        Error:
  5730          type: "string"
  5731          default: ""
  5732        RemoteManagers:
  5733          description: |
  5734            List of ID's and addresses of other managers in the swarm.
  5735          type: "array"
  5736          default: null
  5737          x-nullable: true
  5738          items:
  5739            $ref: "#/definitions/PeerNode"
  5740          example:
  5741            - NodeID: "71izy0goik036k48jg985xnds"
  5742              Addr: "10.0.0.158:2377"
  5743            - NodeID: "79y6h1o4gv8n120drcprv5nmc"
  5744              Addr: "10.0.0.159:2377"
  5745            - NodeID: "k67qz4598weg5unwwffg6z1m1"
  5746              Addr: "10.0.0.46:2377"
  5747        Nodes:
  5748          description: "Total number of nodes in the swarm."
  5749          type: "integer"
  5750          x-nullable: true
  5751          example: 4
  5752        Managers:
  5753          description: "Total number of managers in the swarm."
  5754          type: "integer"
  5755          x-nullable: true
  5756          example: 3
  5757        Cluster:
  5758          $ref: "#/definitions/ClusterInfo"
  5759  
  5760    LocalNodeState:
  5761      description: "Current local status of this node."
  5762      type: "string"
  5763      default: ""
  5764      enum:
  5765        - ""
  5766        - "inactive"
  5767        - "pending"
  5768        - "active"
  5769        - "error"
  5770        - "locked"
  5771      example: "active"
  5772  
  5773    PeerNode:
  5774      description: "Represents a peer-node in the swarm"
  5775      type: "object"
  5776      properties:
  5777        NodeID:
  5778          description: "Unique identifier of for this node in the swarm."
  5779          type: "string"
  5780        Addr:
  5781          description: |
  5782            IP address and ports at which this node can be reached.
  5783          type: "string"
  5784  
  5785    NetworkAttachmentConfig:
  5786      description: |
  5787        Specifies how a service should be attached to a particular network.
  5788      type: "object"
  5789      properties:
  5790        Target:
  5791          description: |
  5792            The target network for attachment. Must be a network name or ID.
  5793          type: "string"
  5794        Aliases:
  5795          description: |
  5796            Discoverable alternate names for the service on this network.
  5797          type: "array"
  5798          items:
  5799            type: "string"
  5800        DriverOpts:
  5801          description: |
  5802            Driver attachment options for the network target.
  5803          type: "object"
  5804          additionalProperties:
  5805            type: "string"
  5806  
  5807    EventActor:
  5808      description: |
  5809        Actor describes something that generates events, like a container, network,
  5810        or a volume.
  5811      type: "object"
  5812      properties:
  5813        ID:
  5814          description: "The ID of the object emitting the event"
  5815          type: "string"
  5816          example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
  5817        Attributes:
  5818          description: |
  5819            Various key/value attributes of the object, depending on its type.
  5820          type: "object"
  5821          additionalProperties:
  5822            type: "string"
  5823          example:
  5824            com.example.some-label: "some-label-value"
  5825            image: "alpine:latest"
  5826            name: "my-container"
  5827  
  5828    EventMessage:
  5829      description: |
  5830        EventMessage represents the information an event contains.
  5831      type: "object"
  5832      title: "SystemEventsResponse"
  5833      properties:
  5834        Type:
  5835          description: "The type of object emitting the event"
  5836          type: "string"
  5837          enum: ["builder", "config", "container", "daemon", "image", "network", "node", "plugin", "secret", "service", "volume"]
  5838          example: "container"
  5839        Action:
  5840          description: "The type of event"
  5841          type: "string"
  5842          example: "create"
  5843        Actor:
  5844          $ref: "#/definitions/EventActor"
  5845        scope:
  5846          description: |
  5847            Scope of the event. Engine events are `local` scope. Cluster (Swarm)
  5848            events are `swarm` scope.
  5849          type: "string"
  5850          enum: ["local", "swarm"]
  5851        time:
  5852          description: "Timestamp of event"
  5853          type: "integer"
  5854          format: "int64"
  5855          example: 1629574695
  5856        timeNano:
  5857          description: "Timestamp of event, with nanosecond accuracy"
  5858          type: "integer"
  5859          format: "int64"
  5860          example: 1629574695515050031
  5861  
  5862    OCIDescriptor:
  5863      type: "object"
  5864      x-go-name: Descriptor
  5865      description: |
  5866        A descriptor struct containing digest, media type, and size, as defined in
  5867        the [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
  5868      properties:
  5869        mediaType:
  5870          description: |
  5871            The media type of the object this schema refers to.
  5872          type: "string"
  5873          example: "application/vnd.docker.distribution.manifest.v2+json"
  5874        digest:
  5875          description: |
  5876            The digest of the targeted content.
  5877          type: "string"
  5878          example: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96"
  5879        size:
  5880          description: |
  5881            The size in bytes of the blob.
  5882          type: "integer"
  5883          format: "int64"
  5884          example: 3987495
  5885          # TODO Not yet including these fields for now, as they are nil / omitted in our response.
  5886          # urls:
  5887          #   description: |
  5888          #     List of URLs from which this object MAY be downloaded.
  5889          #   type: "array"
  5890          #   items:
  5891          #     type: "string"
  5892          #     format: "uri"
  5893          # annotations:
  5894          #   description: |
  5895          #     Arbitrary metadata relating to the targeted content.
  5896          #   type: "object"
  5897          #   additionalProperties:
  5898          #     type: "string"
  5899          # platform:
  5900          #   $ref: "#/definitions/OCIPlatform"
  5901  
  5902    OCIPlatform:
  5903      type: "object"
  5904      x-go-name: Platform
  5905      description: |
  5906        Describes the platform which the image in the manifest runs on, as defined
  5907        in the [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
  5908      properties:
  5909        architecture:
  5910          description: |
  5911            The CPU architecture, for example `amd64` or `ppc64`.
  5912          type: "string"
  5913          example: "arm"
  5914        os:
  5915          description: |
  5916            The operating system, for example `linux` or `windows`.
  5917          type: "string"
  5918          example: "windows"
  5919        os.version:
  5920          description: |
  5921            Optional field specifying the operating system version, for example on
  5922            Windows `10.0.19041.1165`.
  5923          type: "string"
  5924          example: "10.0.19041.1165"
  5925        os.features:
  5926          description: |
  5927            Optional field specifying an array of strings, each listing a required
  5928            OS feature (for example on Windows `win32k`).
  5929          type: "array"
  5930          items:
  5931            type: "string"
  5932          example:
  5933            - "win32k"
  5934        variant:
  5935          description: |
  5936            Optional field specifying a variant of the CPU, for example `v7` to
  5937            specify ARMv7 when architecture is `arm`.
  5938          type: "string"
  5939          example: "v7"
  5940  
  5941    DistributionInspect:
  5942      type: "object"
  5943      x-go-name: DistributionInspect
  5944      title: "DistributionInspectResponse"
  5945      required: [Descriptor, Platforms]
  5946      description: |
  5947        Describes the result obtained from contacting the registry to retrieve
  5948        image metadata.
  5949      properties:
  5950        Descriptor:
  5951          $ref: "#/definitions/OCIDescriptor"
  5952        Platforms:
  5953          type: "array"
  5954          description: |
  5955            An array containing all platforms supported by the image.
  5956          items:
  5957            $ref: "#/definitions/OCIPlatform"
  5958  
  5959    ClusterVolume:
  5960      type: "object"
  5961      description: |
  5962        Options and information specific to, and only present on, Swarm CSI
  5963        cluster volumes.
  5964      properties:
  5965        ID:
  5966          type: "string"
  5967          description: |
  5968            The Swarm ID of this volume. Because cluster volumes are Swarm
  5969            objects, they have an ID, unlike non-cluster volumes. This ID can
  5970            be used to refer to the Volume instead of the name.
  5971        Version:
  5972          $ref: "#/definitions/ObjectVersion"
  5973        CreatedAt:
  5974          type: "string"
  5975          format: "dateTime"
  5976        UpdatedAt:
  5977          type: "string"
  5978          format: "dateTime"
  5979        Spec:
  5980          $ref: "#/definitions/ClusterVolumeSpec"
  5981        Info:
  5982          type: "object"
  5983          description: |
  5984            Information about the global status of the volume.
  5985          properties:
  5986            CapacityBytes:
  5987              type: "integer"
  5988              format: "int64"
  5989              description: |
  5990                The capacity of the volume in bytes. A value of 0 indicates that
  5991                the capacity is unknown.
  5992            VolumeContext:
  5993              type: "object"
  5994              description: |
  5995                A map of strings to strings returned from the storage plugin when
  5996                the volume is created.
  5997              additionalProperties:
  5998                type: "string"
  5999            VolumeID:
  6000              type: "string"
  6001              description: |
  6002                The ID of the volume as returned by the CSI storage plugin. This
  6003                is distinct from the volume's ID as provided by Docker. This ID
  6004                is never used by the user when communicating with Docker to refer
  6005                to this volume. If the ID is blank, then the Volume has not been
  6006                successfully created in the plugin yet.
  6007            AccessibleTopology:
  6008              type: "array"
  6009              description: |
  6010                The topology this volume is actually accessible from.
  6011              items:
  6012                $ref: "#/definitions/Topology"
  6013        PublishStatus:
  6014          type: "array"
  6015          description: |
  6016            The status of the volume as it pertains to its publishing and use on
  6017            specific nodes
  6018          items:
  6019            type: "object"
  6020            properties:
  6021              NodeID:
  6022                type: "string"
  6023                description: |
  6024                  The ID of the Swarm node the volume is published on.
  6025              State:
  6026                type: "string"
  6027                description: |
  6028                  The published state of the volume.
  6029                  * `pending-publish` The volume should be published to this node, but the call to the controller plugin to do so has not yet been successfully completed.
  6030                  * `published` The volume is published successfully to the node.
  6031                  * `pending-node-unpublish` The volume should be unpublished from the node, and the manager is awaiting confirmation from the worker that it has done so.
  6032                  * `pending-controller-unpublish` The volume is successfully unpublished from the node, but has not yet been successfully unpublished on the controller.
  6033                enum:
  6034                  - "pending-publish"
  6035                  - "published"
  6036                  - "pending-node-unpublish"
  6037                  - "pending-controller-unpublish"
  6038              PublishContext:
  6039                type: "object"
  6040                description: |
  6041                  A map of strings to strings returned by the CSI controller
  6042                  plugin when a volume is published.
  6043                additionalProperties:
  6044                  type: "string"
  6045  
  6046    ClusterVolumeSpec:
  6047      type: "object"
  6048      description: |
  6049        Cluster-specific options used to create the volume.
  6050      properties:
  6051        Group:
  6052          type: "string"
  6053          description: |
  6054            Group defines the volume group of this volume. Volumes belonging to
  6055            the same group can be referred to by group name when creating
  6056            Services.  Referring to a volume by group instructs Swarm to treat
  6057            volumes in that group interchangeably for the purpose of scheduling.
  6058            Volumes with an empty string for a group technically all belong to
  6059            the same, emptystring group.
  6060        AccessMode:
  6061          type: "object"
  6062          description: |
  6063            Defines how the volume is used by tasks.
  6064          properties:
  6065            Scope:
  6066              type: "string"
  6067              description: |
  6068                The set of nodes this volume can be used on at one time.
  6069                - `single` The volume may only be scheduled to one node at a time.
  6070                - `multi` the volume may be scheduled to any supported number of nodes at a time.
  6071              default: "single"
  6072              enum: ["single", "multi"]
  6073              x-nullable: false
  6074            Sharing:
  6075              type: "string"
  6076              description: |
  6077                The number and way that different tasks can use this volume
  6078                at one time.
  6079                - `none` The volume may only be used by one task at a time.
  6080                - `readonly` The volume may be used by any number of tasks, but they all must mount the volume as readonly
  6081                - `onewriter` The volume may be used by any number of tasks, but only one may mount it as read/write.
  6082                - `all` The volume may have any number of readers and writers.
  6083              default: "none"
  6084              enum: ["none", "readonly", "onewriter", "all"]
  6085              x-nullable: false
  6086            MountVolume:
  6087              type: "object"
  6088              description: |
  6089                Options for using this volume as a Mount-type volume.
  6090  
  6091                    Either MountVolume or BlockVolume, but not both, must be
  6092                    present.
  6093                  properties:
  6094                    FsType:
  6095                      type: "string"
  6096                      description: |
  6097                        Specifies the filesystem type for the mount volume.
  6098                        Optional.
  6099                    MountFlags:
  6100                      type: "array"
  6101                      description: |
  6102                        Flags to pass when mounting the volume. Optional.
  6103                      items:
  6104                        type: "string"
  6105                BlockVolume:
  6106                  type: "object"
  6107                  description: |
  6108                    Options for using this volume as a Block-type volume.
  6109                    Intentionally empty.
  6110            Secrets:
  6111              type: "array"
  6112              description: |
  6113                Swarm Secrets that are passed to the CSI storage plugin when
  6114                operating on this volume.
  6115              items:
  6116                type: "object"
  6117                description: |
  6118                  One cluster volume secret entry. Defines a key-value pair that
  6119                  is passed to the plugin.
  6120                properties:
  6121                  Key:
  6122                    type: "string"
  6123                    description: |
  6124                      Key is the name of the key of the key-value pair passed to
  6125                      the plugin.
  6126                  Secret:
  6127                    type: "string"
  6128                    description: |
  6129                      Secret is the swarm Secret object from which to read data.
  6130                      This can be a Secret name or ID. The Secret data is
  6131                      retrieved by swarm and used as the value of the key-value
  6132                      pair passed to the plugin.
  6133            AccessibilityRequirements:
  6134              type: "object"
  6135              description: |
  6136                Requirements for the accessible topology of the volume. These
  6137                fields are optional. For an in-depth description of what these
  6138                fields mean, see the CSI specification.
  6139              properties:
  6140                Requisite:
  6141                  type: "array"
  6142                  description: |
  6143                    A list of required topologies, at least one of which the
  6144                    volume must be accessible from.
  6145                  items:
  6146                    $ref: "#/definitions/Topology"
  6147                Preferred:
  6148                  type: "array"
  6149                  description: |
  6150                    A list of topologies that the volume should attempt to be
  6151                    provisioned in.
  6152                  items:
  6153                    $ref: "#/definitions/Topology"
  6154            CapacityRange:
  6155              type: "object"
  6156              description: |
  6157                The desired capacity that the volume should be created with. If
  6158                empty, the plugin will decide the capacity.
  6159              properties:
  6160                RequiredBytes:
  6161                  type: "integer"
  6162                  format: "int64"
  6163                  description: |
  6164                    The volume must be at least this big. The value of 0
  6165                    indicates an unspecified minimum
  6166                LimitBytes:
  6167                  type: "integer"
  6168                  format: "int64"
  6169                  description: |
  6170                    The volume must not be bigger than this. The value of 0
  6171                    indicates an unspecified maximum.
  6172            Availability:
  6173              type: "string"
  6174              description: |
  6175                The availability of the volume for use in tasks.
  6176                - `active` The volume is fully available for scheduling on the cluster
  6177                - `pause` No new workloads should use the volume, but existing workloads are not stopped.
  6178                - `drain` All workloads using this volume should be stopped and rescheduled, and no new ones should be started.
  6179              default: "active"
  6180              x-nullable: false
  6181              enum:
  6182                - "active"
  6183                - "pause"
  6184                - "drain"
  6185  
  6186    Topology:
  6187      description: |
  6188        A map of topological domains to topological segments. For in depth
  6189        details, see documentation for the Topology object in the CSI
  6190        specification.
  6191      type: "object"
  6192      additionalProperties:
  6193        type: "string"
  6194  
  6195  paths:
  6196    /containers/json:
  6197      get:
  6198        summary: "List containers"
  6199        description: |
  6200          Returns a list of containers. For details on the format, see the
  6201          [inspect endpoint](#operation/ContainerInspect).
  6202  
  6203          Note that it uses a different, smaller representation of a container
  6204          than inspecting a single container. For example, the list of linked
  6205          containers is not propagated .
  6206        operationId: "ContainerList"
  6207        produces:
  6208          - "application/json"
  6209        parameters:
  6210          - name: "all"
  6211            in: "query"
  6212            description: |
  6213              Return all containers. By default, only running containers are shown.
  6214            type: "boolean"
  6215            default: false
  6216          - name: "limit"
  6217            in: "query"
  6218            description: |
  6219              Return this number of most recently created containers, including
  6220              non-running ones.
  6221            type: "integer"
  6222          - name: "size"
  6223            in: "query"
  6224            description: |
  6225              Return the size of container as fields `SizeRw` and `SizeRootFs`.
  6226            type: "boolean"
  6227            default: false
  6228          - name: "filters"
  6229            in: "query"
  6230            description: |
  6231              Filters to process on the container list, encoded as JSON (a
  6232              `map[string][]string`). For example, `{"status": ["paused"]}` will
  6233              only return paused containers.
  6234  
  6235              Available filters:
  6236  
  6237              - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
  6238              - `before`=(`<container id>` or `<container name>`)
  6239              - `expose`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
  6240              - `exited=<int>` containers with exit code of `<int>`
  6241              - `health`=(`starting`|`healthy`|`unhealthy`|`none`)
  6242              - `id=<ID>` a container's ID
  6243              - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)
  6244              - `is-task=`(`true`|`false`)
  6245              - `label=key` or `label="key=value"` of a container label
  6246              - `name=<name>` a container's name
  6247              - `network`=(`<network id>` or `<network name>`)
  6248              - `publish`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
  6249              - `since`=(`<container id>` or `<container name>`)
  6250              - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)
  6251              - `volume`=(`<volume name>` or `<mount point destination>`)
  6252            type: "string"
  6253        responses:
  6254          200:
  6255            description: "no error"
  6256            schema:
  6257              type: "array"
  6258              items:
  6259                $ref: "#/definitions/ContainerSummary"
  6260            examples:
  6261              application/json:
  6262                - Id: "8dfafdbc3a40"
  6263                  Names:
  6264                    - "/boring_feynman"
  6265                  Image: "ubuntu:latest"
  6266                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  6267                  Command: "echo 1"
  6268                  Created: 1367854155
  6269                  State: "Exited"
  6270                  Status: "Exit 0"
  6271                  Ports:
  6272                    - PrivatePort: 2222
  6273                      PublicPort: 3333
  6274                      Type: "tcp"
  6275                  Labels:
  6276                    com.example.vendor: "Acme"
  6277                    com.example.license: "GPL"
  6278                    com.example.version: "1.0"
  6279                  SizeRw: 12288
  6280                  SizeRootFs: 0
  6281                  HostConfig:
  6282                    NetworkMode: "default"
  6283                  NetworkSettings:
  6284                    Networks:
  6285                      bridge:
  6286                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  6287                        EndpointID: "2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f"
  6288                        Gateway: "172.17.0.1"
  6289                        IPAddress: "172.17.0.2"
  6290                        IPPrefixLen: 16
  6291                        IPv6Gateway: ""
  6292                        GlobalIPv6Address: ""
  6293                        GlobalIPv6PrefixLen: 0
  6294                        MacAddress: "02:42:ac:11:00:02"
  6295                  Mounts:
  6296                    - Name: "fac362...80535"
  6297                      Source: "/data"
  6298                      Destination: "/data"
  6299                      Driver: "local"
  6300                      Mode: "ro,Z"
  6301                      RW: false
  6302                      Propagation: ""
  6303                - Id: "9cd87474be90"
  6304                  Names:
  6305                    - "/coolName"
  6306                  Image: "ubuntu:latest"
  6307                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  6308                  Command: "echo 222222"
  6309                  Created: 1367854155
  6310                  State: "Exited"
  6311                  Status: "Exit 0"
  6312                  Ports: []
  6313                  Labels: {}
  6314                  SizeRw: 12288
  6315                  SizeRootFs: 0
  6316                  HostConfig:
  6317                    NetworkMode: "default"
  6318                  NetworkSettings:
  6319                    Networks:
  6320                      bridge:
  6321                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  6322                        EndpointID: "88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a"
  6323                        Gateway: "172.17.0.1"
  6324                        IPAddress: "172.17.0.8"
  6325                        IPPrefixLen: 16
  6326                        IPv6Gateway: ""
  6327                        GlobalIPv6Address: ""
  6328                        GlobalIPv6PrefixLen: 0
  6329                        MacAddress: "02:42:ac:11:00:08"
  6330                  Mounts: []
  6331                - Id: "3176a2479c92"
  6332                  Names:
  6333                    - "/sleepy_dog"
  6334                  Image: "ubuntu:latest"
  6335                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  6336                  Command: "echo 3333333333333333"
  6337                  Created: 1367854154
  6338                  State: "Exited"
  6339                  Status: "Exit 0"
  6340                  Ports: []
  6341                  Labels: {}
  6342                  SizeRw: 12288
  6343                  SizeRootFs: 0
  6344                  HostConfig:
  6345                    NetworkMode: "default"
  6346                  NetworkSettings:
  6347                    Networks:
  6348                      bridge:
  6349                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  6350                        EndpointID: "8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d"
  6351                        Gateway: "172.17.0.1"
  6352                        IPAddress: "172.17.0.6"
  6353                        IPPrefixLen: 16
  6354                        IPv6Gateway: ""
  6355                        GlobalIPv6Address: ""
  6356                        GlobalIPv6PrefixLen: 0
  6357                        MacAddress: "02:42:ac:11:00:06"
  6358                  Mounts: []
  6359                - Id: "4cb07b47f9fb"
  6360                  Names:
  6361                    - "/running_cat"
  6362                  Image: "ubuntu:latest"
  6363                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  6364                  Command: "echo 444444444444444444444444444444444"
  6365                  Created: 1367854152
  6366                  State: "Exited"
  6367                  Status: "Exit 0"
  6368                  Ports: []
  6369                  Labels: {}
  6370                  SizeRw: 12288
  6371                  SizeRootFs: 0
  6372                  HostConfig:
  6373                    NetworkMode: "default"
  6374                  NetworkSettings:
  6375                    Networks:
  6376                      bridge:
  6377                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  6378                        EndpointID: "d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9"
  6379                        Gateway: "172.17.0.1"
  6380                        IPAddress: "172.17.0.5"
  6381                        IPPrefixLen: 16
  6382                        IPv6Gateway: ""
  6383                        GlobalIPv6Address: ""
  6384                        GlobalIPv6PrefixLen: 0
  6385                        MacAddress: "02:42:ac:11:00:05"
  6386                  Mounts: []
  6387          400:
  6388            description: "bad parameter"
  6389            schema:
  6390              $ref: "#/definitions/ErrorResponse"
  6391          500:
  6392            description: "server error"
  6393            schema:
  6394              $ref: "#/definitions/ErrorResponse"
  6395        tags: ["Container"]
  6396    /containers/create:
  6397      post:
  6398        summary: "Create a container"
  6399        operationId: "ContainerCreate"
  6400        consumes:
  6401          - "application/json"
  6402          - "application/octet-stream"
  6403        produces:
  6404          - "application/json"
  6405        parameters:
  6406          - name: "name"
  6407            in: "query"
  6408            description: |
  6409              Assign the specified name to the container. Must match
  6410              `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
  6411            type: "string"
  6412            pattern: "^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$"
  6413          - name: "platform"
  6414            in: "query"
  6415            description: |
  6416              Platform in the format `os[/arch[/variant]]` used for image lookup.
  6417  
  6418              When specified, the daemon checks if the requested image is present
  6419              in the local image cache with the given OS and Architecture, and
  6420              otherwise returns a `404` status.
  6421  
  6422              If the option is not set, the host's native OS and Architecture are
  6423              used to look up the image in the image cache. However, if no platform
  6424              is passed and the given image does exist in the local image cache,
  6425              but its OS or architecture does not match, the container is created
  6426              with the available image, and a warning is added to the `Warnings`
  6427              field in the response, for example;
  6428  
  6429                  WARNING: The requested image's platform (linux/arm64/v8) does not
  6430                           match the detected host platform (linux/amd64) and no
  6431                           specific platform was requested
  6432  
  6433            type: "string"
  6434            default: ""
  6435          - name: "body"
  6436            in: "body"
  6437            description: "Container to create"
  6438            schema:
  6439              allOf:
  6440                - $ref: "#/definitions/ContainerConfig"
  6441                - type: "object"
  6442                  properties:
  6443                    HostConfig:
  6444                      $ref: "#/definitions/HostConfig"
  6445                    NetworkingConfig:
  6446                      $ref: "#/definitions/NetworkingConfig"
  6447              example:
  6448                Hostname: ""
  6449                Domainname: ""
  6450                User: ""
  6451                AttachStdin: false
  6452                AttachStdout: true
  6453                AttachStderr: true
  6454                Tty: false
  6455                OpenStdin: false
  6456                StdinOnce: false
  6457                Env:
  6458                  - "FOO=bar"
  6459                  - "BAZ=quux"
  6460                Cmd:
  6461                  - "date"
  6462                Entrypoint: ""
  6463                Image: "ubuntu"
  6464                Labels:
  6465                  com.example.vendor: "Acme"
  6466                  com.example.license: "GPL"
  6467                  com.example.version: "1.0"
  6468                Volumes:
  6469                  /volumes/data: {}
  6470                WorkingDir: ""
  6471                NetworkDisabled: false
  6472                MacAddress: "12:34:56:78:9a:bc"
  6473                ExposedPorts:
  6474                  22/tcp: {}
  6475                StopSignal: "SIGTERM"
  6476                StopTimeout: 10
  6477                HostConfig:
  6478                  Binds:
  6479                    - "/tmp:/tmp"
  6480                  Links:
  6481                    - "redis3:redis"
  6482                  Memory: 0
  6483                  MemorySwap: 0
  6484                  MemoryReservation: 0
  6485                  NanoCpus: 500000
  6486                  CpuPercent: 80
  6487                  CpuShares: 512
  6488                  CpuPeriod: 100000
  6489                  CpuRealtimePeriod: 1000000
  6490                  CpuRealtimeRuntime: 10000
  6491                  CpuQuota: 50000
  6492                  CpusetCpus: "0,1"
  6493                  CpusetMems: "0,1"
  6494                  MaximumIOps: 0
  6495                  MaximumIOBps: 0
  6496                  BlkioWeight: 300
  6497                  BlkioWeightDevice:
  6498                    - {}
  6499                  BlkioDeviceReadBps:
  6500                    - {}
  6501                  BlkioDeviceReadIOps:
  6502                    - {}
  6503                  BlkioDeviceWriteBps:
  6504                    - {}
  6505                  BlkioDeviceWriteIOps:
  6506                    - {}
  6507                  DeviceRequests:
  6508                    - Driver: "nvidia"
  6509                      Count: -1
  6510                      DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
  6511                      Capabilities: [["gpu", "nvidia", "compute"]]
  6512                      Options:
  6513                        property1: "string"
  6514                        property2: "string"
  6515                  MemorySwappiness: 60
  6516                  OomKillDisable: false
  6517                  OomScoreAdj: 500
  6518                  PidMode: ""
  6519                  PidsLimit: 0
  6520                  PortBindings:
  6521                    22/tcp:
  6522                      - HostPort: "11022"
  6523                  PublishAllPorts: false
  6524                  Privileged: false
  6525                  ReadonlyRootfs: false
  6526                  Dns:
  6527                    - "8.8.8.8"
  6528                  DnsOptions:
  6529                    - ""
  6530                  DnsSearch:
  6531                    - ""
  6532                  VolumesFrom:
  6533                    - "parent"
  6534                    - "other:ro"
  6535                  CapAdd:
  6536                    - "NET_ADMIN"
  6537                  CapDrop:
  6538                    - "MKNOD"
  6539                  GroupAdd:
  6540                    - "newgroup"
  6541                  RestartPolicy:
  6542                    Name: ""
  6543                    MaximumRetryCount: 0
  6544                  AutoRemove: true
  6545                  NetworkMode: "bridge"
  6546                  Devices: []
  6547                  Ulimits:
  6548                    - {}
  6549                  LogConfig:
  6550                    Type: "json-file"
  6551                    Config: {}
  6552                  SecurityOpt: []
  6553                  StorageOpt: {}
  6554                  CgroupParent: ""
  6555                  VolumeDriver: ""
  6556                  ShmSize: 67108864
  6557                NetworkingConfig:
  6558                  EndpointsConfig:
  6559                    isolated_nw:
  6560                      IPAMConfig:
  6561                        IPv4Address: "172.20.30.33"
  6562                        IPv6Address: "2001:db8:abcd::3033"
  6563                        LinkLocalIPs:
  6564                          - "169.254.34.68"
  6565                          - "fe80::3468"
  6566                      Links:
  6567                        - "container_1"
  6568                        - "container_2"
  6569                      Aliases:
  6570                        - "server_x"
  6571                        - "server_y"
  6572                    database_nw: {}
  6573  
  6574            required: true
  6575        responses:
  6576          201:
  6577            description: "Container created successfully"
  6578            schema:
  6579              $ref: "#/definitions/ContainerCreateResponse"
  6580          400:
  6581            description: "bad parameter"
  6582            schema:
  6583              $ref: "#/definitions/ErrorResponse"
  6584          404:
  6585            description: "no such image"
  6586            schema:
  6587              $ref: "#/definitions/ErrorResponse"
  6588            examples:
  6589              application/json:
  6590                message: "No such image: c2ada9df5af8"
  6591          409:
  6592            description: "conflict"
  6593            schema:
  6594              $ref: "#/definitions/ErrorResponse"
  6595          500:
  6596            description: "server error"
  6597            schema:
  6598              $ref: "#/definitions/ErrorResponse"
  6599        tags: ["Container"]
  6600    /containers/{id}/json:
  6601      get:
  6602        summary: "Inspect a container"
  6603        description: "Return low-level information about a container."
  6604        operationId: "ContainerInspect"
  6605        produces:
  6606          - "application/json"
  6607        responses:
  6608          200:
  6609            description: "no error"
  6610            schema:
  6611              type: "object"
  6612              title: "ContainerInspectResponse"
  6613              properties:
  6614                Id:
  6615                  description: "The ID of the container"
  6616                  type: "string"
  6617                Created:
  6618                  description: "The time the container was created"
  6619                  type: "string"
  6620                Path:
  6621                  description: "The path to the command being run"
  6622                  type: "string"
  6623                Args:
  6624                  description: "The arguments to the command being run"
  6625                  type: "array"
  6626                  items:
  6627                    type: "string"
  6628                State:
  6629                  $ref: "#/definitions/ContainerState"
  6630                Image:
  6631                  description: "The container's image ID"
  6632                  type: "string"
  6633                ResolvConfPath:
  6634                  type: "string"
  6635                HostnamePath:
  6636                  type: "string"
  6637                HostsPath:
  6638                  type: "string"
  6639                LogPath:
  6640                  type: "string"
  6641                Name:
  6642                  type: "string"
  6643                RestartCount:
  6644                  type: "integer"
  6645                Driver:
  6646                  type: "string"
  6647                Platform:
  6648                  type: "string"
  6649                MountLabel:
  6650                  type: "string"
  6651                ProcessLabel:
  6652                  type: "string"
  6653                AppArmorProfile:
  6654                  type: "string"
  6655                ExecIDs:
  6656                  description: "IDs of exec instances that are running in the container."
  6657                  type: "array"
  6658                  items:
  6659                    type: "string"
  6660                  x-nullable: true
  6661                HostConfig:
  6662                  $ref: "#/definitions/HostConfig"
  6663                GraphDriver:
  6664                  $ref: "#/definitions/GraphDriverData"
  6665                SizeRw:
  6666                  description: |
  6667                    The size of files that have been created or changed by this
  6668                    container.
  6669                  type: "integer"
  6670                  format: "int64"
  6671                SizeRootFs:
  6672                  description: "The total size of all the files in this container."
  6673                  type: "integer"
  6674                  format: "int64"
  6675                Mounts:
  6676                  type: "array"
  6677                  items:
  6678                    $ref: "#/definitions/MountPoint"
  6679                Config:
  6680                  $ref: "#/definitions/ContainerConfig"
  6681                NetworkSettings:
  6682                  $ref: "#/definitions/NetworkSettings"
  6683            examples:
  6684              application/json:
  6685                AppArmorProfile: ""
  6686                Args:
  6687                  - "-c"
  6688                  - "exit 9"
  6689                Config:
  6690                  AttachStderr: true
  6691                  AttachStdin: false
  6692                  AttachStdout: true
  6693                  Cmd:
  6694                    - "/bin/sh"
  6695                    - "-c"
  6696                    - "exit 9"
  6697                  Domainname: ""
  6698                  Env:
  6699                    - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  6700                  Healthcheck:
  6701                    Test: ["CMD-SHELL", "exit 0"]
  6702                  Hostname: "ba033ac44011"
  6703                  Image: "ubuntu"
  6704                  Labels:
  6705                    com.example.vendor: "Acme"
  6706                    com.example.license: "GPL"
  6707                    com.example.version: "1.0"
  6708                  MacAddress: ""
  6709                  NetworkDisabled: false
  6710                  OpenStdin: false
  6711                  StdinOnce: false
  6712                  Tty: false
  6713                  User: ""
  6714                  Volumes:
  6715                    /volumes/data: {}
  6716                  WorkingDir: ""
  6717                  StopSignal: "SIGTERM"
  6718                  StopTimeout: 10
  6719                Created: "2015-01-06T15:47:31.485331387Z"
  6720                Driver: "overlay2"
  6721                ExecIDs:
  6722                  - "b35395de42bc8abd327f9dd65d913b9ba28c74d2f0734eeeae84fa1c616a0fca"
  6723                  - "3fc1232e5cd20c8de182ed81178503dc6437f4e7ef12b52cc5e8de020652f1c4"
  6724                HostConfig:
  6725                  MaximumIOps: 0
  6726                  MaximumIOBps: 0
  6727                  BlkioWeight: 0
  6728                  BlkioWeightDevice:
  6729                    - {}
  6730                  BlkioDeviceReadBps:
  6731                    - {}
  6732                  BlkioDeviceWriteBps:
  6733                    - {}
  6734                  BlkioDeviceReadIOps:
  6735                    - {}
  6736                  BlkioDeviceWriteIOps:
  6737                    - {}
  6738                  ContainerIDFile: ""
  6739                  CpusetCpus: ""
  6740                  CpusetMems: ""
  6741                  CpuPercent: 80
  6742                  CpuShares: 0
  6743                  CpuPeriod: 100000
  6744                  CpuRealtimePeriod: 1000000
  6745                  CpuRealtimeRuntime: 10000
  6746                  Devices: []
  6747                  DeviceRequests:
  6748                    - Driver: "nvidia"
  6749                      Count: -1
  6750                      DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
  6751                      Capabilities: [["gpu", "nvidia", "compute"]]
  6752                      Options:
  6753                        property1: "string"
  6754                        property2: "string"
  6755                  IpcMode: ""
  6756                  Memory: 0
  6757                  MemorySwap: 0
  6758                  MemoryReservation: 0
  6759                  OomKillDisable: false
  6760                  OomScoreAdj: 500
  6761                  NetworkMode: "bridge"
  6762                  PidMode: ""
  6763                  PortBindings: {}
  6764                  Privileged: false
  6765                  ReadonlyRootfs: false
  6766                  PublishAllPorts: false
  6767                  RestartPolicy:
  6768                    MaximumRetryCount: 2
  6769                    Name: "on-failure"
  6770                  LogConfig:
  6771                    Type: "json-file"
  6772                  Sysctls:
  6773                    net.ipv4.ip_forward: "1"
  6774                  Ulimits:
  6775                    - {}
  6776                  VolumeDriver: ""
  6777                  ShmSize: 67108864
  6778                HostnamePath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname"
  6779                HostsPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts"
  6780                LogPath: "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log"
  6781                Id: "ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39"
  6782                Image: "04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2"
  6783                MountLabel: ""
  6784                Name: "/boring_euclid"
  6785                NetworkSettings:
  6786                  Bridge: ""
  6787                  SandboxID: ""
  6788                  HairpinMode: false
  6789                  LinkLocalIPv6Address: ""
  6790                  LinkLocalIPv6PrefixLen: 0
  6791                  SandboxKey: ""
  6792                  EndpointID: ""
  6793                  Gateway: ""
  6794                  GlobalIPv6Address: ""
  6795                  GlobalIPv6PrefixLen: 0
  6796                  IPAddress: ""
  6797                  IPPrefixLen: 0
  6798                  IPv6Gateway: ""
  6799                  MacAddress: ""
  6800                  Networks:
  6801                    bridge:
  6802                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  6803                      EndpointID: "7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d"
  6804                      Gateway: "172.17.0.1"
  6805                      IPAddress: "172.17.0.2"
  6806                      IPPrefixLen: 16
  6807                      IPv6Gateway: ""
  6808                      GlobalIPv6Address: ""
  6809                      GlobalIPv6PrefixLen: 0
  6810                      MacAddress: "02:42:ac:12:00:02"
  6811                Path: "/bin/sh"
  6812                ProcessLabel: ""
  6813                ResolvConfPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf"
  6814                RestartCount: 1
  6815                State:
  6816                  Error: ""
  6817                  ExitCode: 9
  6818                  FinishedAt: "2015-01-06T15:47:32.080254511Z"
  6819                  Health:
  6820                    Status: "healthy"
  6821                    FailingStreak: 0
  6822                    Log:
  6823                      - Start: "2019-12-22T10:59:05.6385933Z"
  6824                        End: "2019-12-22T10:59:05.8078452Z"
  6825                        ExitCode: 0
  6826                        Output: ""
  6827                  OOMKilled: false
  6828                  Dead: false
  6829                  Paused: false
  6830                  Pid: 0
  6831                  Restarting: false
  6832                  Running: true
  6833                  StartedAt: "2015-01-06T15:47:32.072697474Z"
  6834                  Status: "running"
  6835                Mounts:
  6836                  - Name: "fac362...80535"
  6837                    Source: "/data"
  6838                    Destination: "/data"
  6839                    Driver: "local"
  6840                    Mode: "ro,Z"
  6841                    RW: false
  6842                    Propagation: ""
  6843          404:
  6844            description: "no such container"
  6845            schema:
  6846              $ref: "#/definitions/ErrorResponse"
  6847            examples:
  6848              application/json:
  6849                message: "No such container: c2ada9df5af8"
  6850          500:
  6851            description: "server error"
  6852            schema:
  6853              $ref: "#/definitions/ErrorResponse"
  6854        parameters:
  6855          - name: "id"
  6856            in: "path"
  6857            required: true
  6858            description: "ID or name of the container"
  6859            type: "string"
  6860          - name: "size"
  6861            in: "query"
  6862            type: "boolean"
  6863            default: false
  6864            description: "Return the size of container as fields `SizeRw` and `SizeRootFs`"
  6865        tags: ["Container"]
  6866    /containers/{id}/top:
  6867      get:
  6868        summary: "List processes running inside a container"
  6869        description: |
  6870          On Unix systems, this is done by running the `ps` command. This endpoint
  6871          is not supported on Windows.
  6872        operationId: "ContainerTop"
  6873        responses:
  6874          200:
  6875            description: "no error"
  6876            schema:
  6877              type: "object"
  6878              title: "ContainerTopResponse"
  6879              description: "OK response to ContainerTop operation"
  6880              properties:
  6881                Titles:
  6882                  description: "The ps column titles"
  6883                  type: "array"
  6884                  items:
  6885                    type: "string"
  6886                Processes:
  6887                  description: |
  6888                    Each process running in the container, where each is process
  6889                    is an array of values corresponding to the titles.
  6890                  type: "array"
  6891                  items:
  6892                    type: "array"
  6893                    items:
  6894                      type: "string"
  6895            examples:
  6896              application/json:
  6897                Titles:
  6898                  - "UID"
  6899                  - "PID"
  6900                  - "PPID"
  6901                  - "C"
  6902                  - "STIME"
  6903                  - "TTY"
  6904                  - "TIME"
  6905                  - "CMD"
  6906                Processes:
  6907                  -
  6908                    - "root"
  6909                    - "13642"
  6910                    - "882"
  6911                    - "0"
  6912                    - "17:03"
  6913                    - "pts/0"
  6914                    - "00:00:00"
  6915                    - "/bin/bash"
  6916                  -
  6917                    - "root"
  6918                    - "13735"
  6919                    - "13642"
  6920                    - "0"
  6921                    - "17:06"
  6922                    - "pts/0"
  6923                    - "00:00:00"
  6924                    - "sleep 10"
  6925          404:
  6926            description: "no such container"
  6927            schema:
  6928              $ref: "#/definitions/ErrorResponse"
  6929            examples:
  6930              application/json:
  6931                message: "No such container: c2ada9df5af8"
  6932          500:
  6933            description: "server error"
  6934            schema:
  6935              $ref: "#/definitions/ErrorResponse"
  6936        parameters:
  6937          - name: "id"
  6938            in: "path"
  6939            required: true
  6940            description: "ID or name of the container"
  6941            type: "string"
  6942          - name: "ps_args"
  6943            in: "query"
  6944            description: "The arguments to pass to `ps`. For example, `aux`"
  6945            type: "string"
  6946            default: "-ef"
  6947        tags: ["Container"]
  6948    /containers/{id}/logs:
  6949      get:
  6950        summary: "Get container logs"
  6951        description: |
  6952          Get `stdout` and `stderr` logs from a container.
  6953  
  6954          Note: This endpoint works only for containers with the `json-file` or
  6955          `journald` logging driver.
  6956        produces:
  6957          - "application/vnd.docker.raw-stream"
  6958          - "application/vnd.docker.multiplexed-stream"
  6959        operationId: "ContainerLogs"
  6960        responses:
  6961          200:
  6962            description: |
  6963              logs returned as a stream in response body.
  6964              For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
  6965              Note that unlike the attach endpoint, the logs endpoint does not
  6966              upgrade the connection and does not set Content-Type.
  6967            schema:
  6968              type: "string"
  6969              format: "binary"
  6970          404:
  6971            description: "no such container"
  6972            schema:
  6973              $ref: "#/definitions/ErrorResponse"
  6974            examples:
  6975              application/json:
  6976                message: "No such container: c2ada9df5af8"
  6977          500:
  6978            description: "server error"
  6979            schema:
  6980              $ref: "#/definitions/ErrorResponse"
  6981        parameters:
  6982          - name: "id"
  6983            in: "path"
  6984            required: true
  6985            description: "ID or name of the container"
  6986            type: "string"
  6987          - name: "follow"
  6988            in: "query"
  6989            description: "Keep connection after returning logs."
  6990            type: "boolean"
  6991            default: false
  6992          - name: "stdout"
  6993            in: "query"
  6994            description: "Return logs from `stdout`"
  6995            type: "boolean"
  6996            default: false
  6997          - name: "stderr"
  6998            in: "query"
  6999            description: "Return logs from `stderr`"
  7000            type: "boolean"
  7001            default: false
  7002          - name: "since"
  7003            in: "query"
  7004            description: "Only return logs since this time, as a UNIX timestamp"
  7005            type: "integer"
  7006            default: 0
  7007          - name: "until"
  7008            in: "query"
  7009            description: "Only return logs before this time, as a UNIX timestamp"
  7010            type: "integer"
  7011            default: 0
  7012          - name: "timestamps"
  7013            in: "query"
  7014            description: "Add timestamps to every log line"
  7015            type: "boolean"
  7016            default: false
  7017          - name: "tail"
  7018            in: "query"
  7019            description: |
  7020              Only return this number of log lines from the end of the logs.
  7021              Specify as an integer or `all` to output all log lines.
  7022            type: "string"
  7023            default: "all"
  7024        tags: ["Container"]
  7025    /containers/{id}/changes:
  7026      get:
  7027        summary: "Get changes on a container’s filesystem"
  7028        description: |
  7029          Returns which files in a container's filesystem have been added, deleted,
  7030          or modified. The `Kind` of modification can be one of:
  7031  
  7032          - `0`: Modified ("C")
  7033          - `1`: Added ("A")
  7034          - `2`: Deleted ("D")
  7035        operationId: "ContainerChanges"
  7036        produces: ["application/json"]
  7037        responses:
  7038          200:
  7039            description: "The list of changes"
  7040            schema:
  7041              type: "array"
  7042              items:
  7043                $ref: "#/definitions/FilesystemChange"
  7044            examples:
  7045              application/json:
  7046                - Path: "/dev"
  7047                  Kind: 0
  7048                - Path: "/dev/kmsg"
  7049                  Kind: 1
  7050                - Path: "/test"
  7051                  Kind: 1
  7052          404:
  7053            description: "no such container"
  7054            schema:
  7055              $ref: "#/definitions/ErrorResponse"
  7056            examples:
  7057              application/json:
  7058                message: "No such container: c2ada9df5af8"
  7059          500:
  7060            description: "server error"
  7061            schema:
  7062              $ref: "#/definitions/ErrorResponse"
  7063        parameters:
  7064          - name: "id"
  7065            in: "path"
  7066            required: true
  7067            description: "ID or name of the container"
  7068            type: "string"
  7069        tags: ["Container"]
  7070    /containers/{id}/export:
  7071      get:
  7072        summary: "Export a container"
  7073        description: "Export the contents of a container as a tarball."
  7074        operationId: "ContainerExport"
  7075        produces:
  7076          - "application/octet-stream"
  7077        responses:
  7078          200:
  7079            description: "no error"
  7080          404:
  7081            description: "no such container"
  7082            schema:
  7083              $ref: "#/definitions/ErrorResponse"
  7084            examples:
  7085              application/json:
  7086                message: "No such container: c2ada9df5af8"
  7087          500:
  7088            description: "server error"
  7089            schema:
  7090              $ref: "#/definitions/ErrorResponse"
  7091        parameters:
  7092          - name: "id"
  7093            in: "path"
  7094            required: true
  7095            description: "ID or name of the container"
  7096            type: "string"
  7097        tags: ["Container"]
  7098    /containers/{id}/stats:
  7099      get:
  7100        summary: "Get container stats based on resource usage"
  7101        description: |
  7102          This endpoint returns a live stream of a container’s resource usage
  7103          statistics.
  7104  
  7105          The `precpu_stats` is the CPU statistic of the *previous* read, and is
  7106          used to calculate the CPU usage percentage. It is not an exact copy
  7107          of the `cpu_stats` field.
  7108  
  7109          If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
  7110          nil then for compatibility with older daemons the length of the
  7111          corresponding `cpu_usage.percpu_usage` array should be used.
  7112  
  7113          On a cgroup v2 host, the following fields are not set
  7114          * `blkio_stats`: all fields other than `io_service_bytes_recursive`
  7115          * `cpu_stats`: `cpu_usage.percpu_usage`
  7116          * `memory_stats`: `max_usage` and `failcnt`
  7117          Also, `memory_stats.stats` fields are incompatible with cgroup v1.
  7118  
  7119          To calculate the values shown by the `stats` command of the docker cli tool
  7120          the following formulas can be used:
  7121          * used_memory = `memory_stats.usage - memory_stats.stats.cache`
  7122          * available_memory = `memory_stats.limit`
  7123          * Memory usage % = `(used_memory / available_memory) * 100.0`
  7124          * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
  7125          * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
  7126          * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
  7127          * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
  7128        operationId: "ContainerStats"
  7129        produces: ["application/json"]
  7130        responses:
  7131          200:
  7132            description: "no error"
  7133            schema:
  7134              type: "object"
  7135            examples:
  7136              application/json:
  7137                read: "2015-01-08T22:57:31.547920715Z"
  7138                pids_stats:
  7139                  current: 3
  7140                networks:
  7141                  eth0:
  7142                    rx_bytes: 5338
  7143                    rx_dropped: 0
  7144                    rx_errors: 0
  7145                    rx_packets: 36
  7146                    tx_bytes: 648
  7147                    tx_dropped: 0
  7148                    tx_errors: 0
  7149                    tx_packets: 8
  7150                  eth5:
  7151                    rx_bytes: 4641
  7152                    rx_dropped: 0
  7153                    rx_errors: 0
  7154                    rx_packets: 26
  7155                    tx_bytes: 690
  7156                    tx_dropped: 0
  7157                    tx_errors: 0
  7158                    tx_packets: 9
  7159                memory_stats:
  7160                  stats:
  7161                    total_pgmajfault: 0
  7162                    cache: 0
  7163                    mapped_file: 0
  7164                    total_inactive_file: 0
  7165                    pgpgout: 414
  7166                    rss: 6537216
  7167                    total_mapped_file: 0
  7168                    writeback: 0
  7169                    unevictable: 0
  7170                    pgpgin: 477
  7171                    total_unevictable: 0
  7172                    pgmajfault: 0
  7173                    total_rss: 6537216
  7174                    total_rss_huge: 6291456
  7175                    total_writeback: 0
  7176                    total_inactive_anon: 0
  7177                    rss_huge: 6291456
  7178                    hierarchical_memory_limit: 67108864
  7179                    total_pgfault: 964
  7180                    total_active_file: 0
  7181                    active_anon: 6537216
  7182                    total_active_anon: 6537216
  7183                    total_pgpgout: 414
  7184                    total_cache: 0
  7185                    inactive_anon: 0
  7186                    active_file: 0
  7187                    pgfault: 964
  7188                    inactive_file: 0
  7189                    total_pgpgin: 477
  7190                  max_usage: 6651904
  7191                  usage: 6537216
  7192                  failcnt: 0
  7193                  limit: 67108864
  7194                blkio_stats: {}
  7195                cpu_stats:
  7196                  cpu_usage:
  7197                    percpu_usage:
  7198                      - 8646879
  7199                      - 24472255
  7200                      - 36438778
  7201                      - 30657443
  7202                    usage_in_usermode: 50000000
  7203                    total_usage: 100215355
  7204                    usage_in_kernelmode: 30000000
  7205                  system_cpu_usage: 739306590000000
  7206                  online_cpus: 4
  7207                  throttling_data:
  7208                    periods: 0
  7209                    throttled_periods: 0
  7210                    throttled_time: 0
  7211                precpu_stats:
  7212                  cpu_usage:
  7213                    percpu_usage:
  7214                      - 8646879
  7215                      - 24350896
  7216                      - 36438778
  7217                      - 30657443
  7218                    usage_in_usermode: 50000000
  7219                    total_usage: 100093996
  7220                    usage_in_kernelmode: 30000000
  7221                  system_cpu_usage: 9492140000000
  7222                  online_cpus: 4
  7223                  throttling_data:
  7224                    periods: 0
  7225                    throttled_periods: 0
  7226                    throttled_time: 0
  7227          404:
  7228            description: "no such container"
  7229            schema:
  7230              $ref: "#/definitions/ErrorResponse"
  7231            examples:
  7232              application/json:
  7233                message: "No such container: c2ada9df5af8"
  7234          500:
  7235            description: "server error"
  7236            schema:
  7237              $ref: "#/definitions/ErrorResponse"
  7238        parameters:
  7239          - name: "id"
  7240            in: "path"
  7241            required: true
  7242            description: "ID or name of the container"
  7243            type: "string"
  7244          - name: "stream"
  7245            in: "query"
  7246            description: |
  7247              Stream the output. If false, the stats will be output once and then
  7248              it will disconnect.
  7249            type: "boolean"
  7250            default: true
  7251          - name: "one-shot"
  7252            in: "query"
  7253            description: |
  7254              Only get a single stat instead of waiting for 2 cycles. Must be used
  7255              with `stream=false`.
  7256            type: "boolean"
  7257            default: false
  7258        tags: ["Container"]
  7259    /containers/{id}/resize:
  7260      post:
  7261        summary: "Resize a container TTY"
  7262        description: "Resize the TTY for a container."
  7263        operationId: "ContainerResize"
  7264        consumes:
  7265          - "application/octet-stream"
  7266        produces:
  7267          - "text/plain"
  7268        responses:
  7269          200:
  7270            description: "no error"
  7271          404:
  7272            description: "no such container"
  7273            schema:
  7274              $ref: "#/definitions/ErrorResponse"
  7275            examples:
  7276              application/json:
  7277                message: "No such container: c2ada9df5af8"
  7278          500:
  7279            description: "cannot resize container"
  7280            schema:
  7281              $ref: "#/definitions/ErrorResponse"
  7282        parameters:
  7283          - name: "id"
  7284            in: "path"
  7285            required: true
  7286            description: "ID or name of the container"
  7287            type: "string"
  7288          - name: "h"
  7289            in: "query"
  7290            description: "Height of the TTY session in characters"
  7291            type: "integer"
  7292          - name: "w"
  7293            in: "query"
  7294            description: "Width of the TTY session in characters"
  7295            type: "integer"
  7296        tags: ["Container"]
  7297    /containers/{id}/start:
  7298      post:
  7299        summary: "Start a container"
  7300        operationId: "ContainerStart"
  7301        responses:
  7302          204:
  7303            description: "no error"
  7304          304:
  7305            description: "container already started"
  7306          404:
  7307            description: "no such container"
  7308            schema:
  7309              $ref: "#/definitions/ErrorResponse"
  7310            examples:
  7311              application/json:
  7312                message: "No such container: c2ada9df5af8"
  7313          500:
  7314            description: "server error"
  7315            schema:
  7316              $ref: "#/definitions/ErrorResponse"
  7317        parameters:
  7318          - name: "id"
  7319            in: "path"
  7320            required: true
  7321            description: "ID or name of the container"
  7322            type: "string"
  7323          - name: "detachKeys"
  7324            in: "query"
  7325            description: |
  7326              Override the key sequence for detaching a container. Format is a
  7327              single character `[a-Z]` or `ctrl-<value>` where `<value>` is one
  7328              of: `a-z`, `@`, `^`, `[`, `,` or `_`.
  7329            type: "string"
  7330        tags: ["Container"]
  7331    /containers/{id}/stop:
  7332      post:
  7333        summary: "Stop a container"
  7334        operationId: "ContainerStop"
  7335        responses:
  7336          204:
  7337            description: "no error"
  7338          304:
  7339            description: "container already stopped"
  7340          404:
  7341            description: "no such container"
  7342            schema:
  7343              $ref: "#/definitions/ErrorResponse"
  7344            examples:
  7345              application/json:
  7346                message: "No such container: c2ada9df5af8"
  7347          500:
  7348            description: "server error"
  7349            schema:
  7350              $ref: "#/definitions/ErrorResponse"
  7351        parameters:
  7352          - name: "id"
  7353            in: "path"
  7354            required: true
  7355            description: "ID or name of the container"
  7356            type: "string"
  7357          - name: "signal"
  7358            in: "query"
  7359            description: |
  7360              Signal to send to the container as an integer or string (e.g. `SIGINT`).
  7361            type: "string"
  7362          - name: "t"
  7363            in: "query"
  7364            description: "Number of seconds to wait before killing the container"
  7365            type: "integer"
  7366        tags: ["Container"]
  7367    /containers/{id}/restart:
  7368      post:
  7369        summary: "Restart a container"
  7370        operationId: "ContainerRestart"
  7371        responses:
  7372          204:
  7373            description: "no error"
  7374          404:
  7375            description: "no such container"
  7376            schema:
  7377              $ref: "#/definitions/ErrorResponse"
  7378            examples:
  7379              application/json:
  7380                message: "No such container: c2ada9df5af8"
  7381          500:
  7382            description: "server error"
  7383            schema:
  7384              $ref: "#/definitions/ErrorResponse"
  7385        parameters:
  7386          - name: "id"
  7387            in: "path"
  7388            required: true
  7389            description: "ID or name of the container"
  7390            type: "string"
  7391          - name: "signal"
  7392            in: "query"
  7393            description: |
  7394              Signal to send to the container as an integer or string (e.g. `SIGINT`).
  7395            type: "string"
  7396          - name: "t"
  7397            in: "query"
  7398            description: "Number of seconds to wait before killing the container"
  7399            type: "integer"
  7400        tags: ["Container"]
  7401    /containers/{id}/kill:
  7402      post:
  7403        summary: "Kill a container"
  7404        description: |
  7405          Send a POSIX signal to a container, defaulting to killing to the
  7406          container.
  7407        operationId: "ContainerKill"
  7408        responses:
  7409          204:
  7410            description: "no error"
  7411          404:
  7412            description: "no such container"
  7413            schema:
  7414              $ref: "#/definitions/ErrorResponse"
  7415            examples:
  7416              application/json:
  7417                message: "No such container: c2ada9df5af8"
  7418          409:
  7419            description: "container is not running"
  7420            schema:
  7421              $ref: "#/definitions/ErrorResponse"
  7422            examples:
  7423              application/json:
  7424                message: "Container d37cde0fe4ad63c3a7252023b2f9800282894247d145cb5933ddf6e52cc03a28 is not running"
  7425          500:
  7426            description: "server error"
  7427            schema:
  7428              $ref: "#/definitions/ErrorResponse"
  7429        parameters:
  7430          - name: "id"
  7431            in: "path"
  7432            required: true
  7433            description: "ID or name of the container"
  7434            type: "string"
  7435          - name: "signal"
  7436            in: "query"
  7437            description: |
  7438              Signal to send to the container as an integer or string (e.g. `SIGINT`).
  7439            type: "string"
  7440            default: "SIGKILL"
  7441        tags: ["Container"]
  7442    /containers/{id}/update:
  7443      post:
  7444        summary: "Update a container"
  7445        description: |
  7446          Change various configuration options of a container without having to
  7447          recreate it.
  7448        operationId: "ContainerUpdate"
  7449        consumes: ["application/json"]
  7450        produces: ["application/json"]
  7451        responses:
  7452          200:
  7453            description: "The container has been updated."
  7454            schema:
  7455              type: "object"
  7456              title: "ContainerUpdateResponse"
  7457              description: "OK response to ContainerUpdate operation"
  7458              properties:
  7459                Warnings:
  7460                  type: "array"
  7461                  items:
  7462                    type: "string"
  7463          404:
  7464            description: "no such container"
  7465            schema:
  7466              $ref: "#/definitions/ErrorResponse"
  7467            examples:
  7468              application/json:
  7469                message: "No such container: c2ada9df5af8"
  7470          500:
  7471            description: "server error"
  7472            schema:
  7473              $ref: "#/definitions/ErrorResponse"
  7474        parameters:
  7475          - name: "id"
  7476            in: "path"
  7477            required: true
  7478            description: "ID or name of the container"
  7479            type: "string"
  7480          - name: "update"
  7481            in: "body"
  7482            required: true
  7483            schema:
  7484              allOf:
  7485                - $ref: "#/definitions/Resources"
  7486                - type: "object"
  7487                  properties:
  7488                    RestartPolicy:
  7489                      $ref: "#/definitions/RestartPolicy"
  7490              example:
  7491                BlkioWeight: 300
  7492                CpuShares: 512
  7493                CpuPeriod: 100000
  7494                CpuQuota: 50000
  7495                CpuRealtimePeriod: 1000000
  7496                CpuRealtimeRuntime: 10000
  7497                CpusetCpus: "0,1"
  7498                CpusetMems: "0"
  7499                Memory: 314572800
  7500                MemorySwap: 514288000
  7501                MemoryReservation: 209715200
  7502                RestartPolicy:
  7503                  MaximumRetryCount: 4
  7504                  Name: "on-failure"
  7505        tags: ["Container"]
  7506    /containers/{id}/rename:
  7507      post:
  7508        summary: "Rename a container"
  7509        operationId: "ContainerRename"
  7510        responses:
  7511          204:
  7512            description: "no error"
  7513          404:
  7514            description: "no such container"
  7515            schema:
  7516              $ref: "#/definitions/ErrorResponse"
  7517            examples:
  7518              application/json:
  7519                message: "No such container: c2ada9df5af8"
  7520          409:
  7521            description: "name already in use"
  7522            schema:
  7523              $ref: "#/definitions/ErrorResponse"
  7524          500:
  7525            description: "server error"
  7526            schema:
  7527              $ref: "#/definitions/ErrorResponse"
  7528        parameters:
  7529          - name: "id"
  7530            in: "path"
  7531            required: true
  7532            description: "ID or name of the container"
  7533            type: "string"
  7534          - name: "name"
  7535            in: "query"
  7536            required: true
  7537            description: "New name for the container"
  7538            type: "string"
  7539        tags: ["Container"]
  7540    /containers/{id}/pause:
  7541      post:
  7542        summary: "Pause a container"
  7543        description: |
  7544          Use the freezer cgroup to suspend all processes in a container.
  7545  
  7546          Traditionally, when suspending a process the `SIGSTOP` signal is used,
  7547          which is observable by the process being suspended. With the freezer
  7548          cgroup the process is unaware, and unable to capture, that it is being
  7549          suspended, and subsequently resumed.
  7550        operationId: "ContainerPause"
  7551        responses:
  7552          204:
  7553            description: "no error"
  7554          404:
  7555            description: "no such container"
  7556            schema:
  7557              $ref: "#/definitions/ErrorResponse"
  7558            examples:
  7559              application/json:
  7560                message: "No such container: c2ada9df5af8"
  7561          500:
  7562            description: "server error"
  7563            schema:
  7564              $ref: "#/definitions/ErrorResponse"
  7565        parameters:
  7566          - name: "id"
  7567            in: "path"
  7568            required: true
  7569            description: "ID or name of the container"
  7570            type: "string"
  7571        tags: ["Container"]
  7572    /containers/{id}/unpause:
  7573      post:
  7574        summary: "Unpause a container"
  7575        description: "Resume a container which has been paused."
  7576        operationId: "ContainerUnpause"
  7577        responses:
  7578          204:
  7579            description: "no error"
  7580          404:
  7581            description: "no such container"
  7582            schema:
  7583              $ref: "#/definitions/ErrorResponse"
  7584            examples:
  7585              application/json:
  7586                message: "No such container: c2ada9df5af8"
  7587          500:
  7588            description: "server error"
  7589            schema:
  7590              $ref: "#/definitions/ErrorResponse"
  7591        parameters:
  7592          - name: "id"
  7593            in: "path"
  7594            required: true
  7595            description: "ID or name of the container"
  7596            type: "string"
  7597        tags: ["Container"]
  7598    /containers/{id}/attach:
  7599      post:
  7600        summary: "Attach to a container"
  7601        description: |
  7602          Attach to a container to read its output or send it input. You can attach
  7603          to the same container multiple times and you can reattach to containers
  7604          that have been detached.
  7605  
  7606          Either the `stream` or `logs` parameter must be `true` for this endpoint
  7607          to do anything.
  7608  
  7609          See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/)
  7610          for more details.
  7611  
  7612          ### Hijacking
  7613  
  7614          This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`,
  7615          and `stderr` on the same socket.
  7616  
  7617          This is the response from the daemon for an attach request:
  7618  
  7619          ```
  7620          HTTP/1.1 200 OK
  7621          Content-Type: application/vnd.docker.raw-stream
  7622  
  7623          [STREAM]
  7624          ```
  7625  
  7626          After the headers and two new lines, the TCP connection can now be used
  7627          for raw, bidirectional communication between the client and server.
  7628  
  7629          To hint potential proxies about connection hijacking, the Docker client
  7630          can also optionally send connection upgrade headers.
  7631  
  7632          For example, the client sends this request to upgrade the connection:
  7633  
  7634          ```
  7635          POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1
  7636          Upgrade: tcp
  7637          Connection: Upgrade
  7638          ```
  7639  
  7640          The Docker daemon will respond with a `101 UPGRADED` response, and will
  7641          similarly follow with the raw stream:
  7642  
  7643          ```
  7644          HTTP/1.1 101 UPGRADED
  7645          Content-Type: application/vnd.docker.raw-stream
  7646          Connection: Upgrade
  7647          Upgrade: tcp
  7648  
  7649          [STREAM]
  7650          ```
  7651  
  7652          ### Stream format
  7653  
  7654          When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate),
  7655          the HTTP Content-Type header is set to application/vnd.docker.multiplexed-stream
  7656          and the stream over the hijacked connected is multiplexed to separate out
  7657          `stdout` and `stderr`. The stream consists of a series of frames, each
  7658          containing a header and a payload.
  7659  
  7660          The header contains the information which the stream writes (`stdout` or
  7661          `stderr`). It also contains the size of the associated frame encoded in
  7662          the last four bytes (`uint32`).
  7663  
  7664          It is encoded on the first eight bytes like this:
  7665  
  7666          ```go
  7667          header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}
  7668          ```
  7669  
  7670          `STREAM_TYPE` can be:
  7671  
  7672          - 0: `stdin` (is written on `stdout`)
  7673          - 1: `stdout`
  7674          - 2: `stderr`
  7675  
  7676          `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size
  7677          encoded as big endian.
  7678  
  7679          Following the header is the payload, which is the specified number of
  7680          bytes of `STREAM_TYPE`.
  7681  
  7682          The simplest way to implement this protocol is the following:
  7683  
  7684          1. Read 8 bytes.
  7685          2. Choose `stdout` or `stderr` depending on the first byte.
  7686          3. Extract the frame size from the last four bytes.
  7687          4. Read the extracted size and output it on the correct output.
  7688          5. Goto 1.
  7689  
  7690          ### Stream format when using a TTY
  7691  
  7692          When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate),
  7693          the stream is not multiplexed. The data exchanged over the hijacked
  7694          connection is simply the raw data from the process PTY and client's
  7695          `stdin`.
  7696  
  7697        operationId: "ContainerAttach"
  7698        produces:
  7699          - "application/vnd.docker.raw-stream"
  7700          - "application/vnd.docker.multiplexed-stream"
  7701        responses:
  7702          101:
  7703            description: "no error, hints proxy about hijacking"
  7704          200:
  7705            description: "no error, no upgrade header found"
  7706          400:
  7707            description: "bad parameter"
  7708            schema:
  7709              $ref: "#/definitions/ErrorResponse"
  7710          404:
  7711            description: "no such container"
  7712            schema:
  7713              $ref: "#/definitions/ErrorResponse"
  7714            examples:
  7715              application/json:
  7716                message: "No such container: c2ada9df5af8"
  7717          500:
  7718            description: "server error"
  7719            schema:
  7720              $ref: "#/definitions/ErrorResponse"
  7721        parameters:
  7722          - name: "id"
  7723            in: "path"
  7724            required: true
  7725            description: "ID or name of the container"
  7726            type: "string"
  7727          - name: "detachKeys"
  7728            in: "query"
  7729            description: |
  7730              Override the key sequence for detaching a container.Format is a single
  7731              character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
  7732              `@`, `^`, `[`, `,` or `_`.
  7733            type: "string"
  7734          - name: "logs"
  7735            in: "query"
  7736            description: |
  7737              Replay previous logs from the container.
  7738  
  7739              This is useful for attaching to a container that has started and you
  7740              want to output everything since the container started.
  7741  
  7742              If `stream` is also enabled, once all the previous output has been
  7743              returned, it will seamlessly transition into streaming current
  7744              output.
  7745            type: "boolean"
  7746            default: false
  7747          - name: "stream"
  7748            in: "query"
  7749            description: |
  7750              Stream attached streams from the time the request was made onwards.
  7751            type: "boolean"
  7752            default: false
  7753          - name: "stdin"
  7754            in: "query"
  7755            description: "Attach to `stdin`"
  7756            type: "boolean"
  7757            default: false
  7758          - name: "stdout"
  7759            in: "query"
  7760            description: "Attach to `stdout`"
  7761            type: "boolean"
  7762            default: false
  7763          - name: "stderr"
  7764            in: "query"
  7765            description: "Attach to `stderr`"
  7766            type: "boolean"
  7767            default: false
  7768        tags: ["Container"]
  7769    /containers/{id}/attach/ws:
  7770      get:
  7771        summary: "Attach to a container via a websocket"
  7772        operationId: "ContainerAttachWebsocket"
  7773        responses:
  7774          101:
  7775            description: "no error, hints proxy about hijacking"
  7776          200:
  7777            description: "no error, no upgrade header found"
  7778          400:
  7779            description: "bad parameter"
  7780            schema:
  7781              $ref: "#/definitions/ErrorResponse"
  7782          404:
  7783            description: "no such container"
  7784            schema:
  7785              $ref: "#/definitions/ErrorResponse"
  7786            examples:
  7787              application/json:
  7788                message: "No such container: c2ada9df5af8"
  7789          500:
  7790            description: "server error"
  7791            schema:
  7792              $ref: "#/definitions/ErrorResponse"
  7793        parameters:
  7794          - name: "id"
  7795            in: "path"
  7796            required: true
  7797            description: "ID or name of the container"
  7798            type: "string"
  7799          - name: "detachKeys"
  7800            in: "query"
  7801            description: |
  7802              Override the key sequence for detaching a container.Format is a single
  7803              character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
  7804              `@`, `^`, `[`, `,`, or `_`.
  7805            type: "string"
  7806          - name: "logs"
  7807            in: "query"
  7808            description: "Return logs"
  7809            type: "boolean"
  7810            default: false
  7811          - name: "stream"
  7812            in: "query"
  7813            description: "Return stream"
  7814            type: "boolean"
  7815            default: false
  7816          - name: "stdin"
  7817            in: "query"
  7818            description: "Attach to `stdin`"
  7819            type: "boolean"
  7820            default: false
  7821          - name: "stdout"
  7822            in: "query"
  7823            description: "Attach to `stdout`"
  7824            type: "boolean"
  7825            default: false
  7826          - name: "stderr"
  7827            in: "query"
  7828            description: "Attach to `stderr`"
  7829            type: "boolean"
  7830            default: false
  7831        tags: ["Container"]
  7832    /containers/{id}/wait:
  7833      post:
  7834        summary: "Wait for a container"
  7835        description: "Block until a container stops, then returns the exit code."
  7836        operationId: "ContainerWait"
  7837        produces: ["application/json"]
  7838        responses:
  7839          200:
  7840            description: "The container has exit."
  7841            schema:
  7842              $ref: "#/definitions/ContainerWaitResponse"
  7843          400:
  7844            description: "bad parameter"
  7845            schema:
  7846              $ref: "#/definitions/ErrorResponse"
  7847          404:
  7848            description: "no such container"
  7849            schema:
  7850              $ref: "#/definitions/ErrorResponse"
  7851            examples:
  7852              application/json:
  7853                message: "No such container: c2ada9df5af8"
  7854          500:
  7855            description: "server error"
  7856            schema:
  7857              $ref: "#/definitions/ErrorResponse"
  7858        parameters:
  7859          - name: "id"
  7860            in: "path"
  7861            required: true
  7862            description: "ID or name of the container"
  7863            type: "string"
  7864          - name: "condition"
  7865            in: "query"
  7866            description: |
  7867              Wait until a container state reaches the given condition.
  7868  
  7869              Defaults to `not-running` if omitted or empty.
  7870            type: "string"
  7871            enum:
  7872              - "not-running"
  7873              - "next-exit"
  7874              - "removed"
  7875            default: "not-running"
  7876        tags: ["Container"]
  7877    /containers/{id}:
  7878      delete:
  7879        summary: "Remove a container"
  7880        operationId: "ContainerDelete"
  7881        responses:
  7882          204:
  7883            description: "no error"
  7884          400:
  7885            description: "bad parameter"
  7886            schema:
  7887              $ref: "#/definitions/ErrorResponse"
  7888          404:
  7889            description: "no such container"
  7890            schema:
  7891              $ref: "#/definitions/ErrorResponse"
  7892            examples:
  7893              application/json:
  7894                message: "No such container: c2ada9df5af8"
  7895          409:
  7896            description: "conflict"
  7897            schema:
  7898              $ref: "#/definitions/ErrorResponse"
  7899            examples:
  7900              application/json:
  7901                message: |
  7902                  You cannot remove a running container: c2ada9df5af8. Stop the
  7903                  container before attempting removal or force remove
  7904          500:
  7905            description: "server error"
  7906            schema:
  7907              $ref: "#/definitions/ErrorResponse"
  7908        parameters:
  7909          - name: "id"
  7910            in: "path"
  7911            required: true
  7912            description: "ID or name of the container"
  7913            type: "string"
  7914          - name: "v"
  7915            in: "query"
  7916            description: "Remove anonymous volumes associated with the container."
  7917            type: "boolean"
  7918            default: false
  7919          - name: "force"
  7920            in: "query"
  7921            description: "If the container is running, kill it before removing it."
  7922            type: "boolean"
  7923            default: false
  7924          - name: "link"
  7925            in: "query"
  7926            description: "Remove the specified link associated with the container."
  7927            type: "boolean"
  7928            default: false
  7929        tags: ["Container"]
  7930    /containers/{id}/archive:
  7931      head:
  7932        summary: "Get information about files in a container"
  7933        description: |
  7934          A response header `X-Docker-Container-Path-Stat` is returned, containing
  7935          a base64 - encoded JSON object with some filesystem header information
  7936          about the path.
  7937        operationId: "ContainerArchiveInfo"
  7938        responses:
  7939          200:
  7940            description: "no error"
  7941            headers:
  7942              X-Docker-Container-Path-Stat:
  7943                type: "string"
  7944                description: |
  7945                  A base64 - encoded JSON object with some filesystem header
  7946                  information about the path
  7947          400:
  7948            description: "Bad parameter"
  7949            schema:
  7950              $ref: "#/definitions/ErrorResponse"
  7951          404:
  7952            description: "Container or path does not exist"
  7953            schema:
  7954              $ref: "#/definitions/ErrorResponse"
  7955            examples:
  7956              application/json:
  7957                message: "No such container: c2ada9df5af8"
  7958          500:
  7959            description: "Server error"
  7960            schema:
  7961              $ref: "#/definitions/ErrorResponse"
  7962        parameters:
  7963          - name: "id"
  7964            in: "path"
  7965            required: true
  7966            description: "ID or name of the container"
  7967            type: "string"
  7968          - name: "path"
  7969            in: "query"
  7970            required: true
  7971            description: "Resource in the container’s filesystem to archive."
  7972            type: "string"
  7973        tags: ["Container"]
  7974      get:
  7975        summary: "Get an archive of a filesystem resource in a container"
  7976        description: "Get a tar archive of a resource in the filesystem of container id."
  7977        operationId: "ContainerArchive"
  7978        produces: ["application/x-tar"]
  7979        responses:
  7980          200:
  7981            description: "no error"
  7982          400:
  7983            description: "Bad parameter"
  7984            schema:
  7985              $ref: "#/definitions/ErrorResponse"
  7986          404:
  7987            description: "Container or path does not exist"
  7988            schema:
  7989              $ref: "#/definitions/ErrorResponse"
  7990            examples:
  7991              application/json:
  7992                message: "No such container: c2ada9df5af8"
  7993          500:
  7994            description: "server error"
  7995            schema:
  7996              $ref: "#/definitions/ErrorResponse"
  7997        parameters:
  7998          - name: "id"
  7999            in: "path"
  8000            required: true
  8001            description: "ID or name of the container"
  8002            type: "string"
  8003          - name: "path"
  8004            in: "query"
  8005            required: true
  8006            description: "Resource in the container’s filesystem to archive."
  8007            type: "string"
  8008        tags: ["Container"]
  8009      put:
  8010        summary: "Extract an archive of files or folders to a directory in a container"
  8011        description: |
  8012          Upload a tar archive to be extracted to a path in the filesystem of container id.
  8013          `path` parameter is asserted to be a directory. If it exists as a file, 400 error
  8014          will be returned with message "not a directory".
  8015        operationId: "PutContainerArchive"
  8016        consumes: ["application/x-tar", "application/octet-stream"]
  8017        responses:
  8018          200:
  8019            description: "The content was extracted successfully"
  8020          400:
  8021            description: "Bad parameter"
  8022            schema:
  8023              $ref: "#/definitions/ErrorResponse"
  8024            examples:
  8025              application/json:
  8026                message: "not a directory"
  8027          403:
  8028            description: "Permission denied, the volume or container rootfs is marked as read-only."
  8029            schema:
  8030              $ref: "#/definitions/ErrorResponse"
  8031          404:
  8032            description: "No such container or path does not exist inside the container"
  8033            schema:
  8034              $ref: "#/definitions/ErrorResponse"
  8035            examples:
  8036              application/json:
  8037                message: "No such container: c2ada9df5af8"
  8038          500:
  8039            description: "Server error"
  8040            schema:
  8041              $ref: "#/definitions/ErrorResponse"
  8042        parameters:
  8043          - name: "id"
  8044            in: "path"
  8045            required: true
  8046            description: "ID or name of the container"
  8047            type: "string"
  8048          - name: "path"
  8049            in: "query"
  8050            required: true
  8051            description: "Path to a directory in the container to extract the archive’s contents into. "
  8052            type: "string"
  8053          - name: "noOverwriteDirNonDir"
  8054            in: "query"
  8055            description: |
  8056              If `1`, `true`, or `True` then it will be an error if unpacking the
  8057              given content would cause an existing directory to be replaced with
  8058              a non-directory and vice versa.
  8059            type: "string"
  8060          - name: "copyUIDGID"
  8061            in: "query"
  8062            description: |
  8063              If `1`, `true`, then it will copy UID/GID maps to the dest file or
  8064              dir
  8065            type: "string"
  8066          - name: "inputStream"
  8067            in: "body"
  8068            required: true
  8069            description: |
  8070              The input stream must be a tar archive compressed with one of the
  8071              following algorithms: `identity` (no compression), `gzip`, `bzip2`,
  8072              or `xz`.
  8073            schema:
  8074              type: "string"
  8075              format: "binary"
  8076        tags: ["Container"]
  8077    /containers/prune:
  8078      post:
  8079        summary: "Delete stopped containers"
  8080        produces:
  8081          - "application/json"
  8082        operationId: "ContainerPrune"
  8083        parameters:
  8084          - name: "filters"
  8085            in: "query"
  8086            description: |
  8087              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
  8088  
  8089              Available filters:
  8090              - `until=<timestamp>` Prune containers created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
  8091              - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune containers with (or without, in case `label!=...` is used) the specified labels.
  8092            type: "string"
  8093        responses:
  8094          200:
  8095            description: "No error"
  8096            schema:
  8097              type: "object"
  8098              title: "ContainerPruneResponse"
  8099              properties:
  8100                ContainersDeleted:
  8101                  description: "Container IDs that were deleted"
  8102                  type: "array"
  8103                  items:
  8104                    type: "string"
  8105                SpaceReclaimed:
  8106                  description: "Disk space reclaimed in bytes"
  8107                  type: "integer"
  8108                  format: "int64"
  8109          500:
  8110            description: "Server error"
  8111            schema:
  8112              $ref: "#/definitions/ErrorResponse"
  8113        tags: ["Container"]
  8114    /images/json:
  8115      get:
  8116        summary: "List Images"
  8117        description: "Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image."
  8118        operationId: "ImageList"
  8119        produces:
  8120          - "application/json"
  8121        responses:
  8122          200:
  8123            description: "Summary image data for the images matching the query"
  8124            schema:
  8125              type: "array"
  8126              items:
  8127                $ref: "#/definitions/ImageSummary"
  8128          500:
  8129            description: "server error"
  8130            schema:
  8131              $ref: "#/definitions/ErrorResponse"
  8132        parameters:
  8133          - name: "all"
  8134            in: "query"
  8135            description: "Show all images. Only images from a final layer (no children) are shown by default."
  8136            type: "boolean"
  8137            default: false
  8138          - name: "filters"
  8139            in: "query"
  8140            description: |
  8141              A JSON encoded value of the filters (a `map[string][]string`) to
  8142              process on the images list.
  8143  
  8144              Available filters:
  8145  
  8146              - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
  8147              - `dangling=true`
  8148              - `label=key` or `label="key=value"` of an image label
  8149              - `reference`=(`<image-name>[:<tag>]`)
  8150              - `since`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
  8151              - `until=<timestamp>`
  8152            type: "string"
  8153          - name: "shared-size"
  8154            in: "query"
  8155            description: "Compute and show shared size as a `SharedSize` field on each image."
  8156            type: "boolean"
  8157            default: false
  8158          - name: "digests"
  8159            in: "query"
  8160            description: "Show digest information as a `RepoDigests` field on each image."
  8161            type: "boolean"
  8162            default: false
  8163        tags: ["Image"]
  8164    /build:
  8165      post:
  8166        summary: "Build an image"
  8167        description: |
  8168          Build an image from a tar archive with a `Dockerfile` in it.
  8169  
  8170          The `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).
  8171  
  8172          The Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.
  8173  
  8174          The build is canceled if the client drops the connection by quitting or being killed.
  8175        operationId: "ImageBuild"
  8176        consumes:
  8177          - "application/octet-stream"
  8178        produces:
  8179          - "application/json"
  8180        parameters:
  8181          - name: "inputStream"
  8182            in: "body"
  8183            description: "A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
  8184            schema:
  8185              type: "string"
  8186              format: "binary"
  8187          - name: "dockerfile"
  8188            in: "query"
  8189            description: "Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`."
  8190            type: "string"
  8191            default: "Dockerfile"
  8192          - name: "t"
  8193            in: "query"
  8194            description: "A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters."
  8195            type: "string"
  8196          - name: "extrahosts"
  8197            in: "query"
  8198            description: "Extra hosts to add to /etc/hosts"
  8199            type: "string"
  8200          - name: "remote"
  8201            in: "query"
  8202            description: "A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball."
  8203            type: "string"
  8204          - name: "q"
  8205            in: "query"
  8206            description: "Suppress verbose build output."
  8207            type: "boolean"
  8208            default: false
  8209          - name: "nocache"
  8210            in: "query"
  8211            description: "Do not use the cache when building the image."
  8212            type: "boolean"
  8213            default: false
  8214          - name: "cachefrom"
  8215            in: "query"
  8216            description: "JSON array of images used for build cache resolution."
  8217            type: "string"
  8218          - name: "pull"
  8219            in: "query"
  8220            description: "Attempt to pull the image even if an older image exists locally."
  8221            type: "string"
  8222          - name: "rm"
  8223            in: "query"
  8224            description: "Remove intermediate containers after a successful build."
  8225            type: "boolean"
  8226            default: true
  8227          - name: "forcerm"
  8228            in: "query"
  8229            description: "Always remove intermediate containers, even upon failure."
  8230            type: "boolean"
  8231            default: false
  8232          - name: "memory"
  8233            in: "query"
  8234            description: "Set memory limit for build."
  8235            type: "integer"
  8236          - name: "memswap"
  8237            in: "query"
  8238            description: "Total memory (memory + swap). Set as `-1` to disable swap."
  8239            type: "integer"
  8240          - name: "cpushares"
  8241            in: "query"
  8242            description: "CPU shares (relative weight)."
  8243            type: "integer"
  8244          - name: "cpusetcpus"
  8245            in: "query"
  8246            description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)."
  8247            type: "string"
  8248          - name: "cpuperiod"
  8249            in: "query"
  8250            description: "The length of a CPU period in microseconds."
  8251            type: "integer"
  8252          - name: "cpuquota"
  8253            in: "query"
  8254            description: "Microseconds of CPU time that the container can get in a CPU period."
  8255            type: "integer"
  8256          - name: "buildargs"
  8257            in: "query"
  8258            description: >
  8259              JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker
  8260              uses the buildargs as the environment context for commands run via the `Dockerfile` RUN
  8261              instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for
  8262              passing secret values.
  8263  
  8264  
  8265              For example, the build arg `FOO=bar` would become `{"FOO":"bar"}` in JSON. This would result in the
  8266              query parameter `buildargs={"FOO":"bar"}`. Note that `{"FOO":"bar"}` should be URI component encoded.
  8267  
  8268  
  8269              [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)
  8270            type: "string"
  8271          - name: "shmsize"
  8272            in: "query"
  8273            description: "Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB."
  8274            type: "integer"
  8275          - name: "squash"
  8276            in: "query"
  8277            description: "Squash the resulting images layers into a single layer. *(Experimental release only.)*"
  8278            type: "boolean"
  8279          - name: "labels"
  8280            in: "query"
  8281            description: "Arbitrary key/value labels to set on the image, as a JSON map of string pairs."
  8282            type: "string"
  8283          - name: "networkmode"
  8284            in: "query"
  8285            description: |
  8286              Sets the networking mode for the run commands during build. Supported
  8287              standard values are: `bridge`, `host`, `none`, and `container:<name|id>`.
  8288              Any other value is taken as a custom network's name or ID to which this
  8289              container should connect to.
  8290            type: "string"
  8291          - name: "Content-type"
  8292            in: "header"
  8293            type: "string"
  8294            enum:
  8295              - "application/x-tar"
  8296            default: "application/x-tar"
  8297          - name: "X-Registry-Config"
  8298            in: "header"
  8299            description: |
  8300              This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.
  8301  
  8302              The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:
  8303  
  8304              ```
  8305              {
  8306                "docker.example.com": {
  8307                  "username": "janedoe",
  8308                  "password": "hunter2"
  8309                },
  8310                "https://index.docker.io/v1/": {
  8311                  "username": "mobydock",
  8312                  "password": "conta1n3rize14"
  8313                }
  8314              }
  8315              ```
  8316  
  8317              Only the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.
  8318            type: "string"
  8319          - name: "platform"
  8320            in: "query"
  8321            description: "Platform in the format os[/arch[/variant]]"
  8322            type: "string"
  8323            default: ""
  8324          - name: "target"
  8325            in: "query"
  8326            description: "Target build stage"
  8327            type: "string"
  8328            default: ""
  8329          - name: "outputs"
  8330            in: "query"
  8331            description: "BuildKit output configuration"
  8332            type: "string"
  8333            default: ""
  8334          - name: "version"
  8335            in: "query"
  8336            type: "string"
  8337            default: "1"
  8338            enum: ["1", "2"]
  8339            description: |
  8340              Version of the builder backend to use.
  8341  
  8342              - `1` is the first generation classic (deprecated) builder in the Docker daemon (default)
  8343              - `2` is [BuildKit](https://github.com/moby/buildkit)
  8344        responses:
  8345          200:
  8346            description: "no error"
  8347          400:
  8348            description: "Bad parameter"
  8349            schema:
  8350              $ref: "#/definitions/ErrorResponse"
  8351          500:
  8352            description: "server error"
  8353            schema:
  8354              $ref: "#/definitions/ErrorResponse"
  8355        tags: ["Image"]
  8356    /build/prune:
  8357      post:
  8358        summary: "Delete builder cache"
  8359        produces:
  8360          - "application/json"
  8361        operationId: "BuildPrune"
  8362        parameters:
  8363          - name: "keep-storage"
  8364            in: "query"
  8365            description: "Amount of disk space in bytes to keep for cache"
  8366            type: "integer"
  8367            format: "int64"
  8368          - name: "all"
  8369            in: "query"
  8370            type: "boolean"
  8371            description: "Remove all types of build cache"
  8372          - name: "filters"
  8373            in: "query"
  8374            type: "string"
  8375            description: |
  8376              A JSON encoded value of the filters (a `map[string][]string`) to
  8377              process on the list of build cache objects.
  8378  
  8379              Available filters:
  8380  
  8381              - `until=<timestamp>` remove cache older than `<timestamp>`. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon's local time.
  8382              - `id=<id>`
  8383              - `parent=<id>`
  8384              - `type=<string>`
  8385              - `description=<string>`
  8386              - `inuse`
  8387              - `shared`
  8388              - `private`
  8389        responses:
  8390          200:
  8391            description: "No error"
  8392            schema:
  8393              type: "object"
  8394              title: "BuildPruneResponse"
  8395              properties:
  8396                CachesDeleted:
  8397                  type: "array"
  8398                  items:
  8399                    description: "ID of build cache object"
  8400                    type: "string"
  8401                SpaceReclaimed:
  8402                  description: "Disk space reclaimed in bytes"
  8403                  type: "integer"
  8404                  format: "int64"
  8405          500:
  8406            description: "Server error"
  8407            schema:
  8408              $ref: "#/definitions/ErrorResponse"
  8409        tags: ["Image"]
  8410    /images/create:
  8411      post:
  8412        summary: "Create an image"
  8413        description: "Pull or import an image."
  8414        operationId: "ImageCreate"
  8415        consumes:
  8416          - "text/plain"
  8417          - "application/octet-stream"
  8418        produces:
  8419          - "application/json"
  8420        responses:
  8421          200:
  8422            description: "no error"
  8423          404:
  8424            description: "repository does not exist or no read access"
  8425            schema:
  8426              $ref: "#/definitions/ErrorResponse"
  8427          500:
  8428            description: "server error"
  8429            schema:
  8430              $ref: "#/definitions/ErrorResponse"
  8431        parameters:
  8432          - name: "fromImage"
  8433            in: "query"
  8434            description: "Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed."
  8435            type: "string"
  8436          - name: "fromSrc"
  8437            in: "query"
  8438            description: "Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image."
  8439            type: "string"
  8440          - name: "repo"
  8441            in: "query"
  8442            description: "Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image."
  8443            type: "string"
  8444          - name: "tag"
  8445            in: "query"
  8446            description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled."
  8447            type: "string"
  8448          - name: "message"
  8449            in: "query"
  8450            description: "Set commit message for imported image."
  8451            type: "string"
  8452          - name: "inputImage"
  8453            in: "body"
  8454            description: "Image content if the value `-` has been specified in fromSrc query parameter"
  8455            schema:
  8456              type: "string"
  8457            required: false
  8458          - name: "X-Registry-Auth"
  8459            in: "header"
  8460            description: |
  8461              A base64url-encoded auth configuration.
  8462  
  8463              Refer to the [authentication section](#section/Authentication) for
  8464              details.
  8465            type: "string"
  8466          - name: "changes"
  8467            in: "query"
  8468            description: |
  8469              Apply `Dockerfile` instructions to the image that is created,
  8470              for example: `changes=ENV DEBUG=true`.
  8471              Note that `ENV DEBUG=true` should be URI component encoded.
  8472  
  8473              Supported `Dockerfile` instructions:
  8474              `CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR`
  8475            type: "array"
  8476            items:
  8477              type: "string"
  8478          - name: "platform"
  8479            in: "query"
  8480            description: |
  8481              Platform in the format os[/arch[/variant]].
  8482  
  8483              When used in combination with the `fromImage` option, the daemon checks
  8484              if the given image is present in the local image cache with the given
  8485              OS and Architecture, and otherwise attempts to pull the image. If the
  8486              option is not set, the host's native OS and Architecture are used.
  8487              If the given image does not exist in the local image cache, the daemon
  8488              attempts to pull the image with the host's native OS and Architecture.
  8489              If the given image does exists in the local image cache, but its OS or
  8490              architecture does not match, a warning is produced.
  8491  
  8492              When used with the `fromSrc` option to import an image from an archive,
  8493              this option sets the platform information for the imported image. If
  8494              the option is not set, the host's native OS and Architecture are used
  8495              for the imported image.
  8496            type: "string"
  8497            default: ""
  8498        tags: ["Image"]
  8499    /images/{name}/json:
  8500      get:
  8501        summary: "Inspect an image"
  8502        description: "Return low-level information about an image."
  8503        operationId: "ImageInspect"
  8504        produces:
  8505          - "application/json"
  8506        responses:
  8507          200:
  8508            description: "No error"
  8509            schema:
  8510              $ref: "#/definitions/ImageInspect"
  8511          404:
  8512            description: "No such image"
  8513            schema:
  8514              $ref: "#/definitions/ErrorResponse"
  8515            examples:
  8516              application/json:
  8517                message: "No such image: someimage (tag: latest)"
  8518          500:
  8519            description: "Server error"
  8520            schema:
  8521              $ref: "#/definitions/ErrorResponse"
  8522        parameters:
  8523          - name: "name"
  8524            in: "path"
  8525            description: "Image name or id"
  8526            type: "string"
  8527            required: true
  8528        tags: ["Image"]
  8529    /images/{name}/history:
  8530      get:
  8531        summary: "Get the history of an image"
  8532        description: "Return parent layers of an image."
  8533        operationId: "ImageHistory"
  8534        produces: ["application/json"]
  8535        responses:
  8536          200:
  8537            description: "List of image layers"
  8538            schema:
  8539              type: "array"
  8540              items:
  8541                type: "object"
  8542                x-go-name: HistoryResponseItem
  8543                title: "HistoryResponseItem"
  8544                description: "individual image layer information in response to ImageHistory operation"
  8545                required: [Id, Created, CreatedBy, Tags, Size, Comment]
  8546                properties:
  8547                  Id:
  8548                    type: "string"
  8549                    x-nullable: false
  8550                  Created:
  8551                    type: "integer"
  8552                    format: "int64"
  8553                    x-nullable: false
  8554                  CreatedBy:
  8555                    type: "string"
  8556                    x-nullable: false
  8557                  Tags:
  8558                    type: "array"
  8559                    items:
  8560                      type: "string"
  8561                  Size:
  8562                    type: "integer"
  8563                    format: "int64"
  8564                    x-nullable: false
  8565                  Comment:
  8566                    type: "string"
  8567                    x-nullable: false
  8568            examples:
  8569              application/json:
  8570                - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710"
  8571                  Created: 1398108230
  8572                  CreatedBy: "/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /"
  8573                  Tags:
  8574                    - "ubuntu:lucid"
  8575                    - "ubuntu:10.04"
  8576                  Size: 182964289
  8577                  Comment: ""
  8578                - Id: "6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8"
  8579                  Created: 1398108222
  8580                  CreatedBy: "/bin/sh -c #(nop) MAINTAINER Tianon Gravi <admwiggin@gmail.com> - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/"
  8581                  Tags: []
  8582                  Size: 0
  8583                  Comment: ""
  8584                - Id: "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"
  8585                  Created: 1371157430
  8586                  CreatedBy: ""
  8587                  Tags:
  8588                    - "scratch12:latest"
  8589                    - "scratch:latest"
  8590                  Size: 0
  8591                  Comment: "Imported from -"
  8592          404:
  8593            description: "No such image"
  8594            schema:
  8595              $ref: "#/definitions/ErrorResponse"
  8596          500:
  8597            description: "Server error"
  8598            schema:
  8599              $ref: "#/definitions/ErrorResponse"
  8600        parameters:
  8601          - name: "name"
  8602            in: "path"
  8603            description: "Image name or ID"
  8604            type: "string"
  8605            required: true
  8606        tags: ["Image"]
  8607    /images/{name}/push:
  8608      post:
  8609        summary: "Push an image"
  8610        description: |
  8611          Push an image to a registry.
  8612  
  8613          If you wish to push an image on to a private registry, that image must
  8614          already have a tag which references the registry. For example,
  8615          `registry.example.com/myimage:latest`.
  8616  
  8617          The push is cancelled if the HTTP connection is closed.
  8618        operationId: "ImagePush"
  8619        consumes:
  8620          - "application/octet-stream"
  8621        responses:
  8622          200:
  8623            description: "No error"
  8624          404:
  8625            description: "No such image"
  8626            schema:
  8627              $ref: "#/definitions/ErrorResponse"
  8628          500:
  8629            description: "Server error"
  8630            schema:
  8631              $ref: "#/definitions/ErrorResponse"
  8632        parameters:
  8633          - name: "name"
  8634            in: "path"
  8635            description: "Image name or ID."
  8636            type: "string"
  8637            required: true
  8638          - name: "tag"
  8639            in: "query"
  8640            description: "The tag to associate with the image on the registry."
  8641            type: "string"
  8642          - name: "X-Registry-Auth"
  8643            in: "header"
  8644            description: |
  8645              A base64url-encoded auth configuration.
  8646  
  8647              Refer to the [authentication section](#section/Authentication) for
  8648              details.
  8649            type: "string"
  8650            required: true
  8651        tags: ["Image"]
  8652    /images/{name}/tag:
  8653      post:
  8654        summary: "Tag an image"
  8655        description: "Tag an image so that it becomes part of a repository."
  8656        operationId: "ImageTag"
  8657        responses:
  8658          201:
  8659            description: "No error"
  8660          400:
  8661            description: "Bad parameter"
  8662            schema:
  8663              $ref: "#/definitions/ErrorResponse"
  8664          404:
  8665            description: "No such image"
  8666            schema:
  8667              $ref: "#/definitions/ErrorResponse"
  8668          409:
  8669            description: "Conflict"
  8670            schema:
  8671              $ref: "#/definitions/ErrorResponse"
  8672          500:
  8673            description: "Server error"
  8674            schema:
  8675              $ref: "#/definitions/ErrorResponse"
  8676        parameters:
  8677          - name: "name"
  8678            in: "path"
  8679            description: "Image name or ID to tag."
  8680            type: "string"
  8681            required: true
  8682          - name: "repo"
  8683            in: "query"
  8684            description: "The repository to tag in. For example, `someuser/someimage`."
  8685            type: "string"
  8686          - name: "tag"
  8687            in: "query"
  8688            description: "The name of the new tag."
  8689            type: "string"
  8690        tags: ["Image"]
  8691    /images/{name}:
  8692      delete:
  8693        summary: "Remove an image"
  8694        description: |
  8695          Remove an image, along with any untagged parent images that were
  8696          referenced by that image.
  8697  
  8698          Images can't be removed if they have descendant images, are being
  8699          used by a running container or are being used by a build.
  8700        operationId: "ImageDelete"
  8701        produces: ["application/json"]
  8702        responses:
  8703          200:
  8704            description: "The image was deleted successfully"
  8705            schema:
  8706              type: "array"
  8707              items:
  8708                $ref: "#/definitions/ImageDeleteResponseItem"
  8709            examples:
  8710              application/json:
  8711                - Untagged: "3e2f21a89f"
  8712                - Deleted: "3e2f21a89f"
  8713                - Deleted: "53b4f83ac9"
  8714          404:
  8715            description: "No such image"
  8716            schema:
  8717              $ref: "#/definitions/ErrorResponse"
  8718          409:
  8719            description: "Conflict"
  8720            schema:
  8721              $ref: "#/definitions/ErrorResponse"
  8722          500:
  8723            description: "Server error"
  8724            schema:
  8725              $ref: "#/definitions/ErrorResponse"
  8726        parameters:
  8727          - name: "name"
  8728            in: "path"
  8729            description: "Image name or ID"
  8730            type: "string"
  8731            required: true
  8732          - name: "force"
  8733            in: "query"
  8734            description: "Remove the image even if it is being used by stopped containers or has other tags"
  8735            type: "boolean"
  8736            default: false
  8737          - name: "noprune"
  8738            in: "query"
  8739            description: "Do not delete untagged parent images"
  8740            type: "boolean"
  8741            default: false
  8742        tags: ["Image"]
  8743    /images/search:
  8744      get:
  8745        summary: "Search images"
  8746        description: "Search for an image on Docker Hub."
  8747        operationId: "ImageSearch"
  8748        produces:
  8749          - "application/json"
  8750        responses:
  8751          200:
  8752            description: "No error"
  8753            schema:
  8754              type: "array"
  8755              items:
  8756                type: "object"
  8757                title: "ImageSearchResponseItem"
  8758                properties:
  8759                  description:
  8760                    type: "string"
  8761                  is_official:
  8762                    type: "boolean"
  8763                  is_automated:
  8764                    description: |
  8765                      Whether this repository has automated builds enabled.
  8766  
  8767                      <p><br /></p>
  8768  
  8769                      > **Deprecated**: This field is deprecated and will always
  8770                      > be "false" in future.
  8771                    type: "boolean"
  8772                    example: false
  8773                  name:
  8774                    type: "string"
  8775                  star_count:
  8776                    type: "integer"
  8777            examples:
  8778              application/json:
  8779                - description: "A minimal Docker image based on Alpine Linux with a complete package index and only 5 MB in size!"
  8780                  is_official: true
  8781                  is_automated: false
  8782                  name: "alpine"
  8783                  star_count: 10093
  8784                - description: "Busybox base image."
  8785                  is_official: true
  8786                  is_automated: false
  8787                  name: "Busybox base image."
  8788                  star_count: 3037
  8789                - description: "The PostgreSQL object-relational database system provides reliability and data integrity."
  8790                  is_official: true
  8791                  is_automated: false
  8792                  name: "postgres"
  8793                  star_count: 12408
  8794          500:
  8795            description: "Server error"
  8796            schema:
  8797              $ref: "#/definitions/ErrorResponse"
  8798        parameters:
  8799          - name: "term"
  8800            in: "query"
  8801            description: "Term to search"
  8802            type: "string"
  8803            required: true
  8804          - name: "limit"
  8805            in: "query"
  8806            description: "Maximum number of results to return"
  8807            type: "integer"
  8808          - name: "filters"
  8809            in: "query"
  8810            description: |
  8811              A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
  8812  
  8813              - `is-automated=(true|false)` (deprecated, see below)
  8814              - `is-official=(true|false)`
  8815              - `stars=<number>` Matches images that has at least 'number' stars.
  8816  
  8817              The `is-automated` filter is deprecated. The `is_automated` field has
  8818              been deprecated by Docker Hub's search API. Consequently, searching
  8819              for `is-automated=true` will yield no results.
  8820            type: "string"
  8821        tags: ["Image"]
  8822    /images/prune:
  8823      post:
  8824        summary: "Delete unused images"
  8825        produces:
  8826          - "application/json"
  8827        operationId: "ImagePrune"
  8828        parameters:
  8829          - name: "filters"
  8830            in: "query"
  8831            description: |
  8832              Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:
  8833  
  8834              - `dangling=<boolean>` When set to `true` (or `1`), prune only
  8835                 unused *and* untagged images. When set to `false`
  8836                 (or `0`), all unused images are pruned.
  8837              - `until=<string>` Prune images created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
  8838              - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune images with (or without, in case `label!=...` is used) the specified labels.
  8839            type: "string"
  8840        responses:
  8841          200:
  8842            description: "No error"
  8843            schema:
  8844              type: "object"
  8845              title: "ImagePruneResponse"
  8846              properties:
  8847                ImagesDeleted:
  8848                  description: "Images that were deleted"
  8849                  type: "array"
  8850                  items:
  8851                    $ref: "#/definitions/ImageDeleteResponseItem"
  8852                SpaceReclaimed:
  8853                  description: "Disk space reclaimed in bytes"
  8854                  type: "integer"
  8855                  format: "int64"
  8856          500:
  8857            description: "Server error"
  8858            schema:
  8859              $ref: "#/definitions/ErrorResponse"
  8860        tags: ["Image"]
  8861    /auth:
  8862      post:
  8863        summary: "Check auth configuration"
  8864        description: |
  8865          Validate credentials for a registry and, if available, get an identity
  8866          token for accessing the registry without password.
  8867        operationId: "SystemAuth"
  8868        consumes: ["application/json"]
  8869        produces: ["application/json"]
  8870        responses:
  8871          200:
  8872            description: "An identity token was generated successfully."
  8873            schema:
  8874              type: "object"
  8875              title: "SystemAuthResponse"
  8876              required: [Status]
  8877              properties:
  8878                Status:
  8879                  description: "The status of the authentication"
  8880                  type: "string"
  8881                  x-nullable: false
  8882                IdentityToken:
  8883                  description: "An opaque token used to authenticate a user after a successful login"
  8884                  type: "string"
  8885                  x-nullable: false
  8886            examples:
  8887              application/json:
  8888                Status: "Login Succeeded"
  8889                IdentityToken: "9cbaf023786cd7..."
  8890          204:
  8891            description: "No error"
  8892          401:
  8893            description: "Auth error"
  8894            schema:
  8895              $ref: "#/definitions/ErrorResponse"
  8896          500:
  8897            description: "Server error"
  8898            schema:
  8899              $ref: "#/definitions/ErrorResponse"
  8900        parameters:
  8901          - name: "authConfig"
  8902            in: "body"
  8903            description: "Authentication to check"
  8904            schema:
  8905              $ref: "#/definitions/AuthConfig"
  8906        tags: ["System"]
  8907    /info:
  8908      get:
  8909        summary: "Get system information"
  8910        operationId: "SystemInfo"
  8911        produces:
  8912          - "application/json"
  8913        responses:
  8914          200:
  8915            description: "No error"
  8916            schema:
  8917              $ref: "#/definitions/SystemInfo"
  8918          500:
  8919            description: "Server error"
  8920            schema:
  8921              $ref: "#/definitions/ErrorResponse"
  8922        tags: ["System"]
  8923    /version:
  8924      get:
  8925        summary: "Get version"
  8926        description: "Returns the version of Docker that is running and various information about the system that Docker is running on."
  8927        operationId: "SystemVersion"
  8928        produces: ["application/json"]
  8929        responses:
  8930          200:
  8931            description: "no error"
  8932            schema:
  8933              $ref: "#/definitions/SystemVersion"
  8934          500:
  8935            description: "server error"
  8936            schema:
  8937              $ref: "#/definitions/ErrorResponse"
  8938        tags: ["System"]
  8939    /_ping:
  8940      get:
  8941        summary: "Ping"
  8942        description: "This is a dummy endpoint you can use to test if the server is accessible."
  8943        operationId: "SystemPing"
  8944        produces: ["text/plain"]
  8945        responses:
  8946          200:
  8947            description: "no error"
  8948            schema:
  8949              type: "string"
  8950              example: "OK"
  8951            headers:
  8952              API-Version:
  8953                type: "string"
  8954                description: "Max API Version the server supports"
  8955              Builder-Version:
  8956                type: "string"
  8957                description: |
  8958                  Default version of docker image builder
  8959  
  8960                  The default on Linux is version "2" (BuildKit), but the daemon
  8961                  can be configured to recommend version "1" (classic Builder).
  8962                  Windows does not yet support BuildKit for native Windows images,
  8963                  and uses "1" (classic builder) as a default.
  8964  
  8965                  This value is a recommendation as advertised by the daemon, and
  8966                  it is up to the client to choose which builder to use.
  8967                default: "2"
  8968              Docker-Experimental:
  8969                type: "boolean"
  8970                description: "If the server is running with experimental mode enabled"
  8971              Swarm:
  8972                type: "string"
  8973                enum: ["inactive", "pending", "error", "locked", "active/worker", "active/manager"]
  8974                description: |
  8975                  Contains information about Swarm status of the daemon,
  8976                  and if the daemon is acting as a manager or worker node.
  8977                default: "inactive"
  8978              Cache-Control:
  8979                type: "string"
  8980                default: "no-cache, no-store, must-revalidate"
  8981              Pragma:
  8982                type: "string"
  8983                default: "no-cache"
  8984          500:
  8985            description: "server error"
  8986            schema:
  8987              $ref: "#/definitions/ErrorResponse"
  8988            headers:
  8989              Cache-Control:
  8990                type: "string"
  8991                default: "no-cache, no-store, must-revalidate"
  8992              Pragma:
  8993                type: "string"
  8994                default: "no-cache"
  8995        tags: ["System"]
  8996      head:
  8997        summary: "Ping"
  8998        description: "This is a dummy endpoint you can use to test if the server is accessible."
  8999        operationId: "SystemPingHead"
  9000        produces: ["text/plain"]
  9001        responses:
  9002          200:
  9003            description: "no error"
  9004            schema:
  9005              type: "string"
  9006              example: "(empty)"
  9007            headers:
  9008              API-Version:
  9009                type: "string"
  9010                description: "Max API Version the server supports"
  9011              Builder-Version:
  9012                type: "string"
  9013                description: "Default version of docker image builder"
  9014              Docker-Experimental:
  9015                type: "boolean"
  9016                description: "If the server is running with experimental mode enabled"
  9017              Swarm:
  9018                type: "string"
  9019                enum: ["inactive", "pending", "error", "locked", "active/worker", "active/manager"]
  9020                description: |
  9021                  Contains information about Swarm status of the daemon,
  9022                  and if the daemon is acting as a manager or worker node.
  9023                default: "inactive"
  9024              Cache-Control:
  9025                type: "string"
  9026                default: "no-cache, no-store, must-revalidate"
  9027              Pragma:
  9028                type: "string"
  9029                default: "no-cache"
  9030          500:
  9031            description: "server error"
  9032            schema:
  9033              $ref: "#/definitions/ErrorResponse"
  9034        tags: ["System"]
  9035    /commit:
  9036      post:
  9037        summary: "Create a new image from a container"
  9038        operationId: "ImageCommit"
  9039        consumes:
  9040          - "application/json"
  9041        produces:
  9042          - "application/json"
  9043        responses:
  9044          201:
  9045            description: "no error"
  9046            schema:
  9047              $ref: "#/definitions/IdResponse"
  9048          404:
  9049            description: "no such container"
  9050            schema:
  9051              $ref: "#/definitions/ErrorResponse"
  9052            examples:
  9053              application/json:
  9054                message: "No such container: c2ada9df5af8"
  9055          500:
  9056            description: "server error"
  9057            schema:
  9058              $ref: "#/definitions/ErrorResponse"
  9059        parameters:
  9060          - name: "containerConfig"
  9061            in: "body"
  9062            description: "The container configuration"
  9063            schema:
  9064              $ref: "#/definitions/ContainerConfig"
  9065          - name: "container"
  9066            in: "query"
  9067            description: "The ID or name of the container to commit"
  9068            type: "string"
  9069          - name: "repo"
  9070            in: "query"
  9071            description: "Repository name for the created image"
  9072            type: "string"
  9073          - name: "tag"
  9074            in: "query"
  9075            description: "Tag name for the create image"
  9076            type: "string"
  9077          - name: "comment"
  9078            in: "query"
  9079            description: "Commit message"
  9080            type: "string"
  9081          - name: "author"
  9082            in: "query"
  9083            description: "Author of the image (e.g., `John Hannibal Smith <hannibal@a-team.com>`)"
  9084            type: "string"
  9085          - name: "pause"
  9086            in: "query"
  9087            description: "Whether to pause the container before committing"
  9088            type: "boolean"
  9089            default: true
  9090          - name: "changes"
  9091            in: "query"
  9092            description: "`Dockerfile` instructions to apply while committing"
  9093            type: "string"
  9094        tags: ["Image"]
  9095    /events:
  9096      get:
  9097        summary: "Monitor events"
  9098        description: |
  9099          Stream real-time events from the server.
  9100  
  9101          Various objects within Docker report events when something happens to them.
  9102  
  9103          Containers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `exec_die`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, `update`, and `prune`
  9104  
  9105          Images report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, `untag`, and `prune`
  9106  
  9107          Volumes report these events: `create`, `mount`, `unmount`, `destroy`, and `prune`
  9108  
  9109          Networks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, `remove`, and `prune`
  9110  
  9111          The Docker daemon reports these events: `reload`
  9112  
  9113          Services report these events: `create`, `update`, and `remove`
  9114  
  9115          Nodes report these events: `create`, `update`, and `remove`
  9116  
  9117          Secrets report these events: `create`, `update`, and `remove`
  9118  
  9119          Configs report these events: `create`, `update`, and `remove`
  9120  
  9121          The Builder reports `prune` events
  9122  
  9123        operationId: "SystemEvents"
  9124        produces:
  9125          - "application/json"
  9126        responses:
  9127          200:
  9128            description: "no error"
  9129            schema:
  9130              $ref: "#/definitions/EventMessage"
  9131          400:
  9132            description: "bad parameter"
  9133            schema:
  9134              $ref: "#/definitions/ErrorResponse"
  9135          500:
  9136            description: "server error"
  9137            schema:
  9138              $ref: "#/definitions/ErrorResponse"
  9139        parameters:
  9140          - name: "since"
  9141            in: "query"
  9142            description: "Show events created since this timestamp then stream new events."
  9143            type: "string"
  9144          - name: "until"
  9145            in: "query"
  9146            description: "Show events created until this timestamp then stop streaming."
  9147            type: "string"
  9148          - name: "filters"
  9149            in: "query"
  9150            description: |
  9151              A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:
  9152  
  9153              - `config=<string>` config name or ID
  9154              - `container=<string>` container name or ID
  9155              - `daemon=<string>` daemon name or ID
  9156              - `event=<string>` event type
  9157              - `image=<string>` image name or ID
  9158              - `label=<string>` image or container label
  9159              - `network=<string>` network name or ID
  9160              - `node=<string>` node ID
  9161              - `plugin`=<string> plugin name or ID
  9162              - `scope`=<string> local or swarm
  9163              - `secret=<string>` secret name or ID
  9164              - `service=<string>` service name or ID
  9165              - `type=<string>` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service`, `secret` or `config`
  9166              - `volume=<string>` volume name
  9167            type: "string"
  9168        tags: ["System"]
  9169    /system/df:
  9170      get:
  9171        summary: "Get data usage information"
  9172        operationId: "SystemDataUsage"
  9173        responses:
  9174          200:
  9175            description: "no error"
  9176            schema:
  9177              type: "object"
  9178              title: "SystemDataUsageResponse"
  9179              properties:
  9180                LayersSize:
  9181                  type: "integer"
  9182                  format: "int64"
  9183                Images:
  9184                  type: "array"
  9185                  items:
  9186                    $ref: "#/definitions/ImageSummary"
  9187                Containers:
  9188                  type: "array"
  9189                  items:
  9190                    $ref: "#/definitions/ContainerSummary"
  9191                Volumes:
  9192                  type: "array"
  9193                  items:
  9194                    $ref: "#/definitions/Volume"
  9195                BuildCache:
  9196                  type: "array"
  9197                  items:
  9198                    $ref: "#/definitions/BuildCache"
  9199              example:
  9200                LayersSize: 1092588
  9201                Images:
  9202                  -
  9203                    Id: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
  9204                    ParentId: ""
  9205                    RepoTags:
  9206                      - "busybox:latest"
  9207                    RepoDigests:
  9208                      - "busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6"
  9209                    Created: 1466724217
  9210                    Size: 1092588
  9211                    SharedSize: 0
  9212                    Labels: {}
  9213                    Containers: 1
  9214                Containers:
  9215                  -
  9216                    Id: "e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148"
  9217                    Names:
  9218                      - "/top"
  9219                    Image: "busybox"
  9220                    ImageID: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
  9221                    Command: "top"
  9222                    Created: 1472592424
  9223                    Ports: []
  9224                    SizeRootFs: 1092588
  9225                    Labels: {}
  9226                    State: "exited"
  9227                    Status: "Exited (0) 56 minutes ago"
  9228                    HostConfig:
  9229                      NetworkMode: "default"
  9230                    NetworkSettings:
  9231                      Networks:
  9232                        bridge:
  9233                          IPAMConfig: null
  9234                          Links: null
  9235                          Aliases: null
  9236                          NetworkID: "d687bc59335f0e5c9ee8193e5612e8aee000c8c62ea170cfb99c098f95899d92"
  9237                          EndpointID: "8ed5115aeaad9abb174f68dcf135b49f11daf597678315231a32ca28441dec6a"
  9238                          Gateway: "172.18.0.1"
  9239                          IPAddress: "172.18.0.2"
  9240                          IPPrefixLen: 16
  9241                          IPv6Gateway: ""
  9242                          GlobalIPv6Address: ""
  9243                          GlobalIPv6PrefixLen: 0
  9244                          MacAddress: "02:42:ac:12:00:02"
  9245                    Mounts: []
  9246                Volumes:
  9247                  -
  9248                    Name: "my-volume"
  9249                    Driver: "local"
  9250                    Mountpoint: "/var/lib/docker/volumes/my-volume/_data"
  9251                    Labels: null
  9252                    Scope: "local"
  9253                    Options: null
  9254                    UsageData:
  9255                      Size: 10920104
  9256                      RefCount: 2
  9257                BuildCache:
  9258                  -
  9259                    ID: "hw53o5aio51xtltp5xjp8v7fx"
  9260                    Parents: []
  9261                    Type: "regular"
  9262                    Description: "pulled from docker.io/library/debian@sha256:234cb88d3020898631af0ccbbcca9a66ae7306ecd30c9720690858c1b007d2a0"
  9263                    InUse: false
  9264                    Shared: true
  9265                    Size: 0
  9266                    CreatedAt: "2021-06-28T13:31:01.474619385Z"
  9267                    LastUsedAt: "2021-07-07T22:02:32.738075951Z"
  9268                    UsageCount: 26
  9269                  -
  9270                    ID: "ndlpt0hhvkqcdfkputsk4cq9c"
  9271                    Parents: ["ndlpt0hhvkqcdfkputsk4cq9c"]
  9272                    Type: "regular"
  9273                    Description: "mount / from exec /bin/sh -c echo 'Binary::apt::APT::Keep-Downloaded-Packages \"true\";' > /etc/apt/apt.conf.d/keep-cache"
  9274                    InUse: false
  9275                    Shared: true
  9276                    Size: 51
  9277                    CreatedAt: "2021-06-28T13:31:03.002625487Z"
  9278                    LastUsedAt: "2021-07-07T22:02:32.773909517Z"
  9279                    UsageCount: 26
  9280          500:
  9281            description: "server error"
  9282            schema:
  9283              $ref: "#/definitions/ErrorResponse"
  9284        parameters:
  9285          - name: "type"
  9286            in: "query"
  9287            description: |
  9288              Object types, for which to compute and return data.
  9289            type: "array"
  9290            collectionFormat: multi
  9291            items:
  9292              type: "string"
  9293              enum: ["container", "image", "volume", "build-cache"]
  9294        tags: ["System"]
  9295    /images/{name}/get:
  9296      get:
  9297        summary: "Export an image"
  9298        description: |
  9299          Get a tarball containing all images and metadata for a repository.
  9300  
  9301          If `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.
  9302  
  9303          ### Image tarball format
  9304  
  9305          An image tarball contains one directory per image layer (named using its long ID), each containing these files:
  9306  
  9307          - `VERSION`: currently `1.0` - the file format version
  9308          - `json`: detailed layer information, similar to `docker inspect layer_id`
  9309          - `layer.tar`: A tarfile containing the filesystem changes in this layer
  9310  
  9311          The `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.
  9312  
  9313          If the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.
  9314  
  9315          ```json
  9316          {
  9317            "hello-world": {
  9318              "latest": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1"
  9319            }
  9320          }
  9321          ```
  9322        operationId: "ImageGet"
  9323        produces:
  9324          - "application/x-tar"
  9325        responses:
  9326          200:
  9327            description: "no error"
  9328            schema:
  9329              type: "string"
  9330              format: "binary"
  9331          500:
  9332            description: "server error"
  9333            schema:
  9334              $ref: "#/definitions/ErrorResponse"
  9335        parameters:
  9336          - name: "name"
  9337            in: "path"
  9338            description: "Image name or ID"
  9339            type: "string"
  9340            required: true
  9341        tags: ["Image"]
  9342    /images/get:
  9343      get:
  9344        summary: "Export several images"
  9345        description: |
  9346          Get a tarball containing all images and metadata for several image
  9347          repositories.
  9348  
  9349          For each value of the `names` parameter: if it is a specific name and
  9350          tag (e.g. `ubuntu:latest`), then only that image (and its parents) are
  9351          returned; if it is an image ID, similarly only that image (and its parents)
  9352          are returned and there would be no names referenced in the 'repositories'
  9353          file for this image ID.
  9354  
  9355          For details on the format, see the [export image endpoint](#operation/ImageGet).
  9356        operationId: "ImageGetAll"
  9357        produces:
  9358          - "application/x-tar"
  9359        responses:
  9360          200:
  9361            description: "no error"
  9362            schema:
  9363              type: "string"
  9364              format: "binary"
  9365          500:
  9366            description: "server error"
  9367            schema:
  9368              $ref: "#/definitions/ErrorResponse"
  9369        parameters:
  9370          - name: "names"
  9371            in: "query"
  9372            description: "Image names to filter by"
  9373            type: "array"
  9374            items:
  9375              type: "string"
  9376        tags: ["Image"]
  9377    /images/load:
  9378      post:
  9379        summary: "Import images"
  9380        description: |
  9381          Load a set of images and tags into a repository.
  9382  
  9383          For details on the format, see the [export image endpoint](#operation/ImageGet).
  9384        operationId: "ImageLoad"
  9385        consumes:
  9386          - "application/x-tar"
  9387        produces:
  9388          - "application/json"
  9389        responses:
  9390          200:
  9391            description: "no error"
  9392          500:
  9393            description: "server error"
  9394            schema:
  9395              $ref: "#/definitions/ErrorResponse"
  9396        parameters:
  9397          - name: "imagesTarball"
  9398            in: "body"
  9399            description: "Tar archive containing images"
  9400            schema:
  9401              type: "string"
  9402              format: "binary"
  9403          - name: "quiet"
  9404            in: "query"
  9405            description: "Suppress progress details during load."
  9406            type: "boolean"
  9407            default: false
  9408        tags: ["Image"]
  9409    /containers/{id}/exec:
  9410      post:
  9411        summary: "Create an exec instance"
  9412        description: "Run a command inside a running container."
  9413        operationId: "ContainerExec"
  9414        consumes:
  9415          - "application/json"
  9416        produces:
  9417          - "application/json"
  9418        responses:
  9419          201:
  9420            description: "no error"
  9421            schema:
  9422              $ref: "#/definitions/IdResponse"
  9423          404:
  9424            description: "no such container"
  9425            schema:
  9426              $ref: "#/definitions/ErrorResponse"
  9427            examples:
  9428              application/json:
  9429                message: "No such container: c2ada9df5af8"
  9430          409:
  9431            description: "container is paused"
  9432            schema:
  9433              $ref: "#/definitions/ErrorResponse"
  9434          500:
  9435            description: "Server error"
  9436            schema:
  9437              $ref: "#/definitions/ErrorResponse"
  9438        parameters:
  9439          - name: "execConfig"
  9440            in: "body"
  9441            description: "Exec configuration"
  9442            schema:
  9443              type: "object"
  9444              title: "ExecConfig"
  9445              properties:
  9446                AttachStdin:
  9447                  type: "boolean"
  9448                  description: "Attach to `stdin` of the exec command."
  9449                AttachStdout:
  9450                  type: "boolean"
  9451                  description: "Attach to `stdout` of the exec command."
  9452                AttachStderr:
  9453                  type: "boolean"
  9454                  description: "Attach to `stderr` of the exec command."
  9455                ConsoleSize:
  9456                  type: "array"
  9457                  description: "Initial console size, as an `[height, width]` array."
  9458                  x-nullable: true
  9459                  minItems: 2
  9460                  maxItems: 2
  9461                  items:
  9462                    type: "integer"
  9463                    minimum: 0
  9464                DetachKeys:
  9465                  type: "string"
  9466                  description: |
  9467                    Override the key sequence for detaching a container. Format is
  9468                    a single character `[a-Z]` or `ctrl-<value>` where `<value>`
  9469                    is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.
  9470                Tty:
  9471                  type: "boolean"
  9472                  description: "Allocate a pseudo-TTY."
  9473                Env:
  9474                  description: |
  9475                    A list of environment variables in the form `["VAR=value", ...]`.
  9476                  type: "array"
  9477                  items:
  9478                    type: "string"
  9479                Cmd:
  9480                  type: "array"
  9481                  description: "Command to run, as a string or array of strings."
  9482                  items:
  9483                    type: "string"
  9484                Privileged:
  9485                  type: "boolean"
  9486                  description: "Runs the exec process with extended privileges."
  9487                  default: false
  9488                User:
  9489                  type: "string"
  9490                  description: |
  9491                    The user, and optionally, group to run the exec process inside
  9492                    the container. Format is one of: `user`, `user:group`, `uid`,
  9493                    or `uid:gid`.
  9494                WorkingDir:
  9495                  type: "string"
  9496                  description: |
  9497                    The working directory for the exec process inside the container.
  9498              example:
  9499                AttachStdin: false
  9500                AttachStdout: true
  9501                AttachStderr: true
  9502                DetachKeys: "ctrl-p,ctrl-q"
  9503                Tty: false
  9504                Cmd:
  9505                  - "date"
  9506                Env:
  9507                  - "FOO=bar"
  9508                  - "BAZ=quux"
  9509            required: true
  9510          - name: "id"
  9511            in: "path"
  9512            description: "ID or name of container"
  9513            type: "string"
  9514            required: true
  9515        tags: ["Exec"]
  9516    /exec/{id}/start:
  9517      post:
  9518        summary: "Start an exec instance"
  9519        description: |
  9520          Starts a previously set up exec instance. If detach is true, this endpoint
  9521          returns immediately after starting the command. Otherwise, it sets up an
  9522          interactive session with the command.
  9523        operationId: "ExecStart"
  9524        consumes:
  9525          - "application/json"
  9526        produces:
  9527          - "application/vnd.docker.raw-stream"
  9528          - "application/vnd.docker.multiplexed-stream"
  9529        responses:
  9530          200:
  9531            description: "No error"
  9532          404:
  9533            description: "No such exec instance"
  9534            schema:
  9535              $ref: "#/definitions/ErrorResponse"
  9536          409:
  9537            description: "Container is stopped or paused"
  9538            schema:
  9539              $ref: "#/definitions/ErrorResponse"
  9540        parameters:
  9541          - name: "execStartConfig"
  9542            in: "body"
  9543            schema:
  9544              type: "object"
  9545              title: "ExecStartConfig"
  9546              properties:
  9547                Detach:
  9548                  type: "boolean"
  9549                  description: "Detach from the command."
  9550                Tty:
  9551                  type: "boolean"
  9552                  description: "Allocate a pseudo-TTY."
  9553                ConsoleSize:
  9554                  type: "array"
  9555                  description: "Initial console size, as an `[height, width]` array."
  9556                  x-nullable: true
  9557                  minItems: 2
  9558                  maxItems: 2
  9559                  items:
  9560                    type: "integer"
  9561                    minimum: 0
  9562              example:
  9563                Detach: false
  9564                Tty: true
  9565                ConsoleSize: [80, 64]
  9566          - name: "id"
  9567            in: "path"
  9568            description: "Exec instance ID"
  9569            required: true
  9570            type: "string"
  9571        tags: ["Exec"]
  9572    /exec/{id}/resize:
  9573      post:
  9574        summary: "Resize an exec instance"
  9575        description: |
  9576          Resize the TTY session used by an exec instance. This endpoint only works
  9577          if `tty` was specified as part of creating and starting the exec instance.
  9578        operationId: "ExecResize"
  9579        responses:
  9580          200:
  9581            description: "No error"
  9582          400:
  9583            description: "bad parameter"
  9584            schema:
  9585              $ref: "#/definitions/ErrorResponse"
  9586          404:
  9587            description: "No such exec instance"
  9588            schema:
  9589              $ref: "#/definitions/ErrorResponse"
  9590          500:
  9591            description: "Server error"
  9592            schema:
  9593              $ref: "#/definitions/ErrorResponse"
  9594        parameters:
  9595          - name: "id"
  9596            in: "path"
  9597            description: "Exec instance ID"
  9598            required: true
  9599            type: "string"
  9600          - name: "h"
  9601            in: "query"
  9602            description: "Height of the TTY session in characters"
  9603            type: "integer"
  9604          - name: "w"
  9605            in: "query"
  9606            description: "Width of the TTY session in characters"
  9607            type: "integer"
  9608        tags: ["Exec"]
  9609    /exec/{id}/json:
  9610      get:
  9611        summary: "Inspect an exec instance"
  9612        description: "Return low-level information about an exec instance."
  9613        operationId: "ExecInspect"
  9614        produces:
  9615          - "application/json"
  9616        responses:
  9617          200:
  9618            description: "No error"
  9619            schema:
  9620              type: "object"
  9621              title: "ExecInspectResponse"
  9622              properties:
  9623                CanRemove:
  9624                  type: "boolean"
  9625                DetachKeys:
  9626                  type: "string"
  9627                ID:
  9628                  type: "string"
  9629                Running:
  9630                  type: "boolean"
  9631                ExitCode:
  9632                  type: "integer"
  9633                ProcessConfig:
  9634                  $ref: "#/definitions/ProcessConfig"
  9635                OpenStdin:
  9636                  type: "boolean"
  9637                OpenStderr:
  9638                  type: "boolean"
  9639                OpenStdout:
  9640                  type: "boolean"
  9641                ContainerID:
  9642                  type: "string"
  9643                Pid:
  9644                  type: "integer"
  9645                  description: "The system process ID for the exec process."
  9646            examples:
  9647              application/json:
  9648                CanRemove: false
  9649                ContainerID: "b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126"
  9650                DetachKeys: ""
  9651                ExitCode: 2
  9652                ID: "f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b"
  9653                OpenStderr: true
  9654                OpenStdin: true
  9655                OpenStdout: true
  9656                ProcessConfig:
  9657                  arguments:
  9658                    - "-c"
  9659                    - "exit 2"
  9660                  entrypoint: "sh"
  9661                  privileged: false
  9662                  tty: true
  9663                  user: "1000"
  9664                Running: false
  9665                Pid: 42000
  9666          404:
  9667            description: "No such exec instance"
  9668            schema:
  9669              $ref: "#/definitions/ErrorResponse"
  9670          500:
  9671            description: "Server error"
  9672            schema:
  9673              $ref: "#/definitions/ErrorResponse"
  9674        parameters:
  9675          - name: "id"
  9676            in: "path"
  9677            description: "Exec instance ID"
  9678            required: true
  9679            type: "string"
  9680        tags: ["Exec"]
  9681  
  9682    /volumes:
  9683      get:
  9684        summary: "List volumes"
  9685        operationId: "VolumeList"
  9686        produces: ["application/json"]
  9687        responses:
  9688          200:
  9689            description: "Summary volume data that matches the query"
  9690            schema:
  9691              $ref: "#/definitions/VolumeListResponse"
  9692          500:
  9693            description: "Server error"
  9694            schema:
  9695              $ref: "#/definitions/ErrorResponse"
  9696        parameters:
  9697          - name: "filters"
  9698            in: "query"
  9699            description: |
  9700              JSON encoded value of the filters (a `map[string][]string`) to
  9701              process on the volumes list. Available filters:
  9702  
  9703              - `dangling=<boolean>` When set to `true` (or `1`), returns all
  9704                 volumes that are not in use by a container. When set to `false`
  9705                 (or `0`), only volumes that are in use by one or more
  9706                 containers are returned.
  9707              - `driver=<volume-driver-name>` Matches volumes based on their driver.
  9708              - `label=<key>` or `label=<key>:<value>` Matches volumes based on
  9709                 the presence of a `label` alone or a `label` and a value.
  9710              - `name=<volume-name>` Matches all or part of a volume name.
  9711            type: "string"
  9712            format: "json"
  9713        tags: ["Volume"]
  9714  
  9715    /volumes/create:
  9716      post:
  9717        summary: "Create a volume"
  9718        operationId: "VolumeCreate"
  9719        consumes: ["application/json"]
  9720        produces: ["application/json"]
  9721        responses:
  9722          201:
  9723            description: "The volume was created successfully"
  9724            schema:
  9725              $ref: "#/definitions/Volume"
  9726          500:
  9727            description: "Server error"
  9728            schema:
  9729              $ref: "#/definitions/ErrorResponse"
  9730        parameters:
  9731          - name: "volumeConfig"
  9732            in: "body"
  9733            required: true
  9734            description: "Volume configuration"
  9735            schema:
  9736              $ref: "#/definitions/VolumeCreateOptions"
  9737        tags: ["Volume"]
  9738  
  9739    /volumes/{name}:
  9740      get:
  9741        summary: "Inspect a volume"
  9742        operationId: "VolumeInspect"
  9743        produces: ["application/json"]
  9744        responses:
  9745          200:
  9746            description: "No error"
  9747            schema:
  9748              $ref: "#/definitions/Volume"
  9749          404:
  9750            description: "No such volume"
  9751            schema:
  9752              $ref: "#/definitions/ErrorResponse"
  9753          500:
  9754            description: "Server error"
  9755            schema:
  9756              $ref: "#/definitions/ErrorResponse"
  9757        parameters:
  9758          - name: "name"
  9759            in: "path"
  9760            required: true
  9761            description: "Volume name or ID"
  9762            type: "string"
  9763        tags: ["Volume"]
  9764  
  9765      put:
  9766        summary: |
  9767          "Update a volume. Valid only for Swarm cluster volumes"
  9768        operationId: "VolumeUpdate"
  9769        consumes: ["application/json"]
  9770        produces: ["application/json"]
  9771        responses:
  9772          200:
  9773            description: "no error"
  9774          400:
  9775            description: "bad parameter"
  9776            schema:
  9777              $ref: "#/definitions/ErrorResponse"
  9778          404:
  9779            description: "no such volume"
  9780            schema:
  9781              $ref: "#/definitions/ErrorResponse"
  9782          500:
  9783            description: "server error"
  9784            schema:
  9785              $ref: "#/definitions/ErrorResponse"
  9786          503:
  9787            description: "node is not part of a swarm"
  9788            schema:
  9789              $ref: "#/definitions/ErrorResponse"
  9790        parameters:
  9791          - name: "name"
  9792            in: "path"
  9793            description: "The name or ID of the volume"
  9794            type: "string"
  9795            required: true
  9796          - name: "body"
  9797            in: "body"
  9798            schema:
  9799              # though the schema for is an object that contains only a
  9800              # ClusterVolumeSpec, wrapping the ClusterVolumeSpec in this object
  9801              # means that if, later on, we support things like changing the
  9802              # labels, we can do so without duplicating that information to the
  9803              # ClusterVolumeSpec.
  9804              type: "object"
  9805              description: "Volume configuration"
  9806              properties:
  9807                Spec:
  9808                  $ref: "#/definitions/ClusterVolumeSpec"
  9809            description: |
  9810              The spec of the volume to update. Currently, only Availability may
  9811              change. All other fields must remain unchanged.
  9812          - name: "version"
  9813            in: "query"
  9814            description: |
  9815              The version number of the volume being updated. This is required to
  9816              avoid conflicting writes. Found in the volume's `ClusterVolume`
  9817              field.
  9818            type: "integer"
  9819            format: "int64"
  9820            required: true
  9821        tags: ["Volume"]
  9822  
  9823      delete:
  9824        summary: "Remove a volume"
  9825        description: "Instruct the driver to remove the volume."
  9826        operationId: "VolumeDelete"
  9827        responses:
  9828          204:
  9829            description: "The volume was removed"
  9830          404:
  9831            description: "No such volume or volume driver"
  9832            schema:
  9833              $ref: "#/definitions/ErrorResponse"
  9834          409:
  9835            description: "Volume is in use and cannot be removed"
  9836            schema:
  9837              $ref: "#/definitions/ErrorResponse"
  9838          500:
  9839            description: "Server error"
  9840            schema:
  9841              $ref: "#/definitions/ErrorResponse"
  9842        parameters:
  9843          - name: "name"
  9844            in: "path"
  9845            required: true
  9846            description: "Volume name or ID"
  9847            type: "string"
  9848          - name: "force"
  9849            in: "query"
  9850            description: "Force the removal of the volume"
  9851            type: "boolean"
  9852            default: false
  9853        tags: ["Volume"]
  9854  
  9855    /volumes/prune:
  9856      post:
  9857        summary: "Delete unused volumes"
  9858        produces:
  9859          - "application/json"
  9860        operationId: "VolumePrune"
  9861        parameters:
  9862          - name: "filters"
  9863            in: "query"
  9864            description: |
  9865              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
  9866  
  9867              Available filters:
  9868              - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.
  9869              - `all` (`all=true`) - Consider all (local) volumes for pruning and not just anonymous volumes.
  9870            type: "string"
  9871        responses:
  9872          200:
  9873            description: "No error"
  9874            schema:
  9875              type: "object"
  9876              title: "VolumePruneResponse"
  9877              properties:
  9878                VolumesDeleted:
  9879                  description: "Volumes that were deleted"
  9880                  type: "array"
  9881                  items:
  9882                    type: "string"
  9883                SpaceReclaimed:
  9884                  description: "Disk space reclaimed in bytes"
  9885                  type: "integer"
  9886                  format: "int64"
  9887          500:
  9888            description: "Server error"
  9889            schema:
  9890              $ref: "#/definitions/ErrorResponse"
  9891        tags: ["Volume"]
  9892    /networks:
  9893      get:
  9894        summary: "List networks"
  9895        description: |
  9896          Returns a list of networks. For details on the format, see the
  9897          [network inspect endpoint](#operation/NetworkInspect).
  9898  
  9899          Note that it uses a different, smaller representation of a network than
  9900          inspecting a single network. For example, the list of containers attached
  9901          to the network is not propagated in API versions 1.28 and up.
  9902        operationId: "NetworkList"
  9903        produces:
  9904          - "application/json"
  9905        responses:
  9906          200:
  9907            description: "No error"
  9908            schema:
  9909              type: "array"
  9910              items:
  9911                $ref: "#/definitions/Network"
  9912            examples:
  9913              application/json:
  9914                - Name: "bridge"
  9915                  Id: "f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566"
  9916                  Created: "2016-10-19T06:21:00.416543526Z"
  9917                  Scope: "local"
  9918                  Driver: "bridge"
  9919                  EnableIPv6: false
  9920                  Internal: false
  9921                  Attachable: false
  9922                  Ingress: false
  9923                  IPAM:
  9924                    Driver: "default"
  9925                    Config:
  9926                      -
  9927                        Subnet: "172.17.0.0/16"
  9928                  Options:
  9929                    com.docker.network.bridge.default_bridge: "true"
  9930                    com.docker.network.bridge.enable_icc: "true"
  9931                    com.docker.network.bridge.enable_ip_masquerade: "true"
  9932                    com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
  9933                    com.docker.network.bridge.name: "docker0"
  9934                    com.docker.network.driver.mtu: "1500"
  9935                - Name: "none"
  9936                  Id: "e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794"
  9937                  Created: "0001-01-01T00:00:00Z"
  9938                  Scope: "local"
  9939                  Driver: "null"
  9940                  EnableIPv6: false
  9941                  Internal: false
  9942                  Attachable: false
  9943                  Ingress: false
  9944                  IPAM:
  9945                    Driver: "default"
  9946                    Config: []
  9947                  Containers: {}
  9948                  Options: {}
  9949                - Name: "host"
  9950                  Id: "13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e"
  9951                  Created: "0001-01-01T00:00:00Z"
  9952                  Scope: "local"
  9953                  Driver: "host"
  9954                  EnableIPv6: false
  9955                  Internal: false
  9956                  Attachable: false
  9957                  Ingress: false
  9958                  IPAM:
  9959                    Driver: "default"
  9960                    Config: []
  9961                  Containers: {}
  9962                  Options: {}
  9963          500:
  9964            description: "Server error"
  9965            schema:
  9966              $ref: "#/definitions/ErrorResponse"
  9967        parameters:
  9968          - name: "filters"
  9969            in: "query"
  9970            description: |
  9971              JSON encoded value of the filters (a `map[string][]string`) to process
  9972              on the networks list.
  9973  
  9974              Available filters:
  9975  
  9976              - `dangling=<boolean>` When set to `true` (or `1`), returns all
  9977                 networks that are not in use by a container. When set to `false`
  9978                 (or `0`), only networks that are in use by one or more
  9979                 containers are returned.
  9980              - `driver=<driver-name>` Matches a network's driver.
  9981              - `id=<network-id>` Matches all or part of a network ID.
  9982              - `label=<key>` or `label=<key>=<value>` of a network label.
  9983              - `name=<network-name>` Matches all or part of a network name.
  9984              - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`, `global`, or `local`).
  9985              - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks.
  9986            type: "string"
  9987        tags: ["Network"]
  9988  
  9989    /networks/{id}:
  9990      get:
  9991        summary: "Inspect a network"
  9992        operationId: "NetworkInspect"
  9993        produces:
  9994          - "application/json"
  9995        responses:
  9996          200:
  9997            description: "No error"
  9998            schema:
  9999              $ref: "#/definitions/Network"
 10000          404:
 10001            description: "Network not found"
 10002            schema:
 10003              $ref: "#/definitions/ErrorResponse"
 10004          500:
 10005            description: "Server error"
 10006            schema:
 10007              $ref: "#/definitions/ErrorResponse"
 10008        parameters:
 10009          - name: "id"
 10010            in: "path"
 10011            description: "Network ID or name"
 10012            required: true
 10013            type: "string"
 10014          - name: "verbose"
 10015            in: "query"
 10016            description: "Detailed inspect output for troubleshooting"
 10017            type: "boolean"
 10018            default: false
 10019          - name: "scope"
 10020            in: "query"
 10021            description: "Filter the network by scope (swarm, global, or local)"
 10022            type: "string"
 10023        tags: ["Network"]
 10024  
 10025      delete:
 10026        summary: "Remove a network"
 10027        operationId: "NetworkDelete"
 10028        responses:
 10029          204:
 10030            description: "No error"
 10031          403:
 10032            description: "operation not supported for pre-defined networks"
 10033            schema:
 10034              $ref: "#/definitions/ErrorResponse"
 10035          404:
 10036            description: "no such network"
 10037            schema:
 10038              $ref: "#/definitions/ErrorResponse"
 10039          500:
 10040            description: "Server error"
 10041            schema:
 10042              $ref: "#/definitions/ErrorResponse"
 10043        parameters:
 10044          - name: "id"
 10045            in: "path"
 10046            description: "Network ID or name"
 10047            required: true
 10048            type: "string"
 10049        tags: ["Network"]
 10050  
 10051    /networks/create:
 10052      post:
 10053        summary: "Create a network"
 10054        operationId: "NetworkCreate"
 10055        consumes:
 10056          - "application/json"
 10057        produces:
 10058          - "application/json"
 10059        responses:
 10060          201:
 10061            description: "No error"
 10062            schema:
 10063              type: "object"
 10064              title: "NetworkCreateResponse"
 10065              properties:
 10066                Id:
 10067                  description: "The ID of the created network."
 10068                  type: "string"
 10069                Warning:
 10070                  type: "string"
 10071              example:
 10072                Id: "22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30"
 10073                Warning: ""
 10074          400:
 10075            description: "bad parameter"
 10076            schema:
 10077              $ref: "#/definitions/ErrorResponse"
 10078          403:
 10079            description: |
 10080              Forbidden operation. This happens when trying to create a network named after a pre-defined network,
 10081              or when trying to create an overlay network on a daemon which is not part of a Swarm cluster.
 10082            schema:
 10083              $ref: "#/definitions/ErrorResponse"
 10084          404:
 10085            description: "plugin not found"
 10086            schema:
 10087              $ref: "#/definitions/ErrorResponse"
 10088          500:
 10089            description: "Server error"
 10090            schema:
 10091              $ref: "#/definitions/ErrorResponse"
 10092        parameters:
 10093          - name: "networkConfig"
 10094            in: "body"
 10095            description: "Network configuration"
 10096            required: true
 10097            schema:
 10098              type: "object"
 10099              title: "NetworkCreateRequest"
 10100              required: ["Name"]
 10101              properties:
 10102                Name:
 10103                  description: "The network's name."
 10104                  type: "string"
 10105                CheckDuplicate:
 10106                  description: |
 10107                    Deprecated: CheckDuplicate is now always enabled.
 10108                  type: "boolean"
 10109                Driver:
 10110                  description: "Name of the network driver plugin to use."
 10111                  type: "string"
 10112                  default: "bridge"
 10113                Internal:
 10114                  description: "Restrict external access to the network."
 10115                  type: "boolean"
 10116                Attachable:
 10117                  description: |
 10118                    Globally scoped network is manually attachable by regular
 10119                    containers from workers in swarm mode.
 10120                  type: "boolean"
 10121                Ingress:
 10122                  description: |
 10123                    Ingress network is the network which provides the routing-mesh
 10124                    in swarm mode.
 10125                  type: "boolean"
 10126                IPAM:
 10127                  description: "Optional custom IP scheme for the network."
 10128                  $ref: "#/definitions/IPAM"
 10129                EnableIPv6:
 10130                  description: "Enable IPv6 on the network."
 10131                  type: "boolean"
 10132                Options:
 10133                  description: "Network specific options to be used by the drivers."
 10134                  type: "object"
 10135                  additionalProperties:
 10136                    type: "string"
 10137                Labels:
 10138                  description: "User-defined key/value metadata."
 10139                  type: "object"
 10140                  additionalProperties:
 10141                    type: "string"
 10142              example:
 10143                Name: "isolated_nw"
 10144                CheckDuplicate: false
 10145                Driver: "bridge"
 10146                EnableIPv6: true
 10147                IPAM:
 10148                  Driver: "default"
 10149                  Config:
 10150                    - Subnet: "172.20.0.0/16"
 10151                      IPRange: "172.20.10.0/24"
 10152                      Gateway: "172.20.10.11"
 10153                    - Subnet: "2001:db8:abcd::/64"
 10154                      Gateway: "2001:db8:abcd::1011"
 10155                  Options:
 10156                    foo: "bar"
 10157                Internal: true
 10158                Attachable: false
 10159                Ingress: false
 10160                Options:
 10161                  com.docker.network.bridge.default_bridge: "true"
 10162                  com.docker.network.bridge.enable_icc: "true"
 10163                  com.docker.network.bridge.enable_ip_masquerade: "true"
 10164                  com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
 10165                  com.docker.network.bridge.name: "docker0"
 10166                  com.docker.network.driver.mtu: "1500"
 10167                Labels:
 10168                  com.example.some-label: "some-value"
 10169                  com.example.some-other-label: "some-other-value"
 10170        tags: ["Network"]
 10171  
 10172    /networks/{id}/connect:
 10173      post:
 10174        summary: "Connect a container to a network"
 10175        description: "The network must be either a local-scoped network or a swarm-scoped network with the `attachable` option set. A network cannot be re-attached to a running container"
 10176        operationId: "NetworkConnect"
 10177        consumes:
 10178          - "application/json"
 10179        responses:
 10180          200:
 10181            description: "No error"
 10182          400:
 10183            description: "bad parameter"
 10184            schema:
 10185              $ref: "#/definitions/ErrorResponse"
 10186          403:
 10187            description: "Operation forbidden"
 10188            schema:
 10189              $ref: "#/definitions/ErrorResponse"
 10190          404:
 10191            description: "Network or container not found"
 10192            schema:
 10193              $ref: "#/definitions/ErrorResponse"
 10194          500:
 10195            description: "Server error"
 10196            schema:
 10197              $ref: "#/definitions/ErrorResponse"
 10198        parameters:
 10199          - name: "id"
 10200            in: "path"
 10201            description: "Network ID or name"
 10202            required: true
 10203            type: "string"
 10204          - name: "container"
 10205            in: "body"
 10206            required: true
 10207            schema:
 10208              type: "object"
 10209              title: "NetworkConnectRequest"
 10210              properties:
 10211                Container:
 10212                  type: "string"
 10213                  description: "The ID or name of the container to connect to the network."
 10214                EndpointConfig:
 10215                  $ref: "#/definitions/EndpointSettings"
 10216              example:
 10217                Container: "3613f73ba0e4"
 10218                EndpointConfig:
 10219                  IPAMConfig:
 10220                    IPv4Address: "172.24.56.89"
 10221                    IPv6Address: "2001:db8::5689"
 10222                  MacAddress: "02:42:ac:12:05:02"
 10223        tags: ["Network"]
 10224  
 10225    /networks/{id}/disconnect:
 10226      post:
 10227        summary: "Disconnect a container from a network"
 10228        operationId: "NetworkDisconnect"
 10229        consumes:
 10230          - "application/json"
 10231        responses:
 10232          200:
 10233            description: "No error"
 10234          403:
 10235            description: "Operation not supported for swarm scoped networks"
 10236            schema:
 10237              $ref: "#/definitions/ErrorResponse"
 10238          404:
 10239            description: "Network or container not found"
 10240            schema:
 10241              $ref: "#/definitions/ErrorResponse"
 10242          500:
 10243            description: "Server error"
 10244            schema:
 10245              $ref: "#/definitions/ErrorResponse"
 10246        parameters:
 10247          - name: "id"
 10248            in: "path"
 10249            description: "Network ID or name"
 10250            required: true
 10251            type: "string"
 10252          - name: "container"
 10253            in: "body"
 10254            required: true
 10255            schema:
 10256              type: "object"
 10257              title: "NetworkDisconnectRequest"
 10258              properties:
 10259                Container:
 10260                  type: "string"
 10261                  description: |
 10262                    The ID or name of the container to disconnect from the network.
 10263                Force:
 10264                  type: "boolean"
 10265                  description: |
 10266                    Force the container to disconnect from the network.
 10267        tags: ["Network"]
 10268    /networks/prune:
 10269      post:
 10270        summary: "Delete unused networks"
 10271        produces:
 10272          - "application/json"
 10273        operationId: "NetworkPrune"
 10274        parameters:
 10275          - name: "filters"
 10276            in: "query"
 10277            description: |
 10278              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
 10279  
 10280              Available filters:
 10281              - `until=<timestamp>` Prune networks created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
 10282              - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune networks with (or without, in case `label!=...` is used) the specified labels.
 10283            type: "string"
 10284        responses:
 10285          200:
 10286            description: "No error"
 10287            schema:
 10288              type: "object"
 10289              title: "NetworkPruneResponse"
 10290              properties:
 10291                NetworksDeleted:
 10292                  description: "Networks that were deleted"
 10293                  type: "array"
 10294                  items:
 10295                    type: "string"
 10296          500:
 10297            description: "Server error"
 10298            schema:
 10299              $ref: "#/definitions/ErrorResponse"
 10300        tags: ["Network"]
 10301    /plugins:
 10302      get:
 10303        summary: "List plugins"
 10304        operationId: "PluginList"
 10305        description: "Returns information about installed plugins."
 10306        produces: ["application/json"]
 10307        responses:
 10308          200:
 10309            description: "No error"
 10310            schema:
 10311              type: "array"
 10312              items:
 10313                $ref: "#/definitions/Plugin"
 10314          500:
 10315            description: "Server error"
 10316            schema:
 10317              $ref: "#/definitions/ErrorResponse"
 10318        parameters:
 10319          - name: "filters"
 10320            in: "query"
 10321            type: "string"
 10322            description: |
 10323              A JSON encoded value of the filters (a `map[string][]string`) to
 10324              process on the plugin list.
 10325  
 10326              Available filters:
 10327  
 10328              - `capability=<capability name>`
 10329              - `enable=<true>|<false>`
 10330        tags: ["Plugin"]
 10331  
 10332    /plugins/privileges:
 10333      get:
 10334        summary: "Get plugin privileges"
 10335        operationId: "GetPluginPrivileges"
 10336        responses:
 10337          200:
 10338            description: "no error"
 10339            schema:
 10340              type: "array"
 10341              items:
 10342                $ref: "#/definitions/PluginPrivilege"
 10343              example:
 10344                - Name: "network"
 10345                  Description: ""
 10346                  Value:
 10347                    - "host"
 10348                - Name: "mount"
 10349                  Description: ""
 10350                  Value:
 10351                    - "/data"
 10352                - Name: "device"
 10353                  Description: ""
 10354                  Value:
 10355                    - "/dev/cpu_dma_latency"
 10356          500:
 10357            description: "server error"
 10358            schema:
 10359              $ref: "#/definitions/ErrorResponse"
 10360        parameters:
 10361          - name: "remote"
 10362            in: "query"
 10363            description: |
 10364              The name of the plugin. The `:latest` tag is optional, and is the
 10365              default if omitted.
 10366            required: true
 10367            type: "string"
 10368        tags:
 10369          - "Plugin"
 10370  
 10371    /plugins/pull:
 10372      post:
 10373        summary: "Install a plugin"
 10374        operationId: "PluginPull"
 10375        description: |
 10376          Pulls and installs a plugin. After the plugin is installed, it can be
 10377          enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
 10378        produces:
 10379          - "application/json"
 10380        responses:
 10381          204:
 10382            description: "no error"
 10383          500:
 10384            description: "server error"
 10385            schema:
 10386              $ref: "#/definitions/ErrorResponse"
 10387        parameters:
 10388          - name: "remote"
 10389            in: "query"
 10390            description: |
 10391              Remote reference for plugin to install.
 10392  
 10393              The `:latest` tag is optional, and is used as the default if omitted.
 10394            required: true
 10395            type: "string"
 10396          - name: "name"
 10397            in: "query"
 10398            description: |
 10399              Local name for the pulled plugin.
 10400  
 10401              The `:latest` tag is optional, and is used as the default if omitted.
 10402            required: false
 10403            type: "string"
 10404          - name: "X-Registry-Auth"
 10405            in: "header"
 10406            description: |
 10407              A base64url-encoded auth configuration to use when pulling a plugin
 10408              from a registry.
 10409  
 10410              Refer to the [authentication section](#section/Authentication) for
 10411              details.
 10412            type: "string"
 10413          - name: "body"
 10414            in: "body"
 10415            schema:
 10416              type: "array"
 10417              items:
 10418                $ref: "#/definitions/PluginPrivilege"
 10419              example:
 10420                - Name: "network"
 10421                  Description: ""
 10422                  Value:
 10423                    - "host"
 10424                - Name: "mount"
 10425                  Description: ""
 10426                  Value:
 10427                    - "/data"
 10428                - Name: "device"
 10429                  Description: ""
 10430                  Value:
 10431                    - "/dev/cpu_dma_latency"
 10432        tags: ["Plugin"]
 10433    /plugins/{name}/json:
 10434      get:
 10435        summary: "Inspect a plugin"
 10436        operationId: "PluginInspect"
 10437        responses:
 10438          200:
 10439            description: "no error"
 10440            schema:
 10441              $ref: "#/definitions/Plugin"
 10442          404:
 10443            description: "plugin is not installed"
 10444            schema:
 10445              $ref: "#/definitions/ErrorResponse"
 10446          500:
 10447            description: "server error"
 10448            schema:
 10449              $ref: "#/definitions/ErrorResponse"
 10450        parameters:
 10451          - name: "name"
 10452            in: "path"
 10453            description: |
 10454              The name of the plugin. The `:latest` tag is optional, and is the
 10455              default if omitted.
 10456            required: true
 10457            type: "string"
 10458        tags: ["Plugin"]
 10459    /plugins/{name}:
 10460      delete:
 10461        summary: "Remove a plugin"
 10462        operationId: "PluginDelete"
 10463        responses:
 10464          200:
 10465            description: "no error"
 10466            schema:
 10467              $ref: "#/definitions/Plugin"
 10468          404:
 10469            description: "plugin is not installed"
 10470            schema:
 10471              $ref: "#/definitions/ErrorResponse"
 10472          500:
 10473            description: "server error"
 10474            schema:
 10475              $ref: "#/definitions/ErrorResponse"
 10476        parameters:
 10477          - name: "name"
 10478            in: "path"
 10479            description: |
 10480              The name of the plugin. The `:latest` tag is optional, and is the
 10481              default if omitted.
 10482            required: true
 10483            type: "string"
 10484          - name: "force"
 10485            in: "query"
 10486            description: |
 10487              Disable the plugin before removing. This may result in issues if the
 10488              plugin is in use by a container.
 10489            type: "boolean"
 10490            default: false
 10491        tags: ["Plugin"]
 10492    /plugins/{name}/enable:
 10493      post:
 10494        summary: "Enable a plugin"
 10495        operationId: "PluginEnable"
 10496        responses:
 10497          200:
 10498            description: "no error"
 10499          404:
 10500            description: "plugin is not installed"
 10501            schema:
 10502              $ref: "#/definitions/ErrorResponse"
 10503          500:
 10504            description: "server error"
 10505            schema:
 10506              $ref: "#/definitions/ErrorResponse"
 10507        parameters:
 10508          - name: "name"
 10509            in: "path"
 10510            description: |
 10511              The name of the plugin. The `:latest` tag is optional, and is the
 10512              default if omitted.
 10513            required: true
 10514            type: "string"
 10515          - name: "timeout"
 10516            in: "query"
 10517            description: "Set the HTTP client timeout (in seconds)"
 10518            type: "integer"
 10519            default: 0
 10520        tags: ["Plugin"]
 10521    /plugins/{name}/disable:
 10522      post:
 10523        summary: "Disable a plugin"
 10524        operationId: "PluginDisable"
 10525        responses:
 10526          200:
 10527            description: "no error"
 10528          404:
 10529            description: "plugin is not installed"
 10530            schema:
 10531              $ref: "#/definitions/ErrorResponse"
 10532          500:
 10533            description: "server error"
 10534            schema:
 10535              $ref: "#/definitions/ErrorResponse"
 10536        parameters:
 10537          - name: "name"
 10538            in: "path"
 10539            description: |
 10540              The name of the plugin. The `:latest` tag is optional, and is the
 10541              default if omitted.
 10542            required: true
 10543            type: "string"
 10544          - name: "force"
 10545            in: "query"
 10546            description: |
 10547              Force disable a plugin even if still in use.
 10548            required: false
 10549            type: "boolean"
 10550        tags: ["Plugin"]
 10551    /plugins/{name}/upgrade:
 10552      post:
 10553        summary: "Upgrade a plugin"
 10554        operationId: "PluginUpgrade"
 10555        responses:
 10556          204:
 10557            description: "no error"
 10558          404:
 10559            description: "plugin not installed"
 10560            schema:
 10561              $ref: "#/definitions/ErrorResponse"
 10562          500:
 10563            description: "server error"
 10564            schema:
 10565              $ref: "#/definitions/ErrorResponse"
 10566        parameters:
 10567          - name: "name"
 10568            in: "path"
 10569            description: |
 10570              The name of the plugin. The `:latest` tag is optional, and is the
 10571              default if omitted.
 10572            required: true
 10573            type: "string"
 10574          - name: "remote"
 10575            in: "query"
 10576            description: |
 10577              Remote reference to upgrade to.
 10578  
 10579              The `:latest` tag is optional, and is used as the default if omitted.
 10580            required: true
 10581            type: "string"
 10582          - name: "X-Registry-Auth"
 10583            in: "header"
 10584            description: |
 10585              A base64url-encoded auth configuration to use when pulling a plugin
 10586              from a registry.
 10587  
 10588              Refer to the [authentication section](#section/Authentication) for
 10589              details.
 10590            type: "string"
 10591          - name: "body"
 10592            in: "body"
 10593            schema:
 10594              type: "array"
 10595              items:
 10596                $ref: "#/definitions/PluginPrivilege"
 10597              example:
 10598                - Name: "network"
 10599                  Description: ""
 10600                  Value:
 10601                    - "host"
 10602                - Name: "mount"
 10603                  Description: ""
 10604                  Value:
 10605                    - "/data"
 10606                - Name: "device"
 10607                  Description: ""
 10608                  Value:
 10609                    - "/dev/cpu_dma_latency"
 10610        tags: ["Plugin"]
 10611    /plugins/create:
 10612      post:
 10613        summary: "Create a plugin"
 10614        operationId: "PluginCreate"
 10615        consumes:
 10616          - "application/x-tar"
 10617        responses:
 10618          204:
 10619            description: "no error"
 10620          500:
 10621            description: "server error"
 10622            schema:
 10623              $ref: "#/definitions/ErrorResponse"
 10624        parameters:
 10625          - name: "name"
 10626            in: "query"
 10627            description: |
 10628              The name of the plugin. The `:latest` tag is optional, and is the
 10629              default if omitted.
 10630            required: true
 10631            type: "string"
 10632          - name: "tarContext"
 10633            in: "body"
 10634            description: "Path to tar containing plugin rootfs and manifest"
 10635            schema:
 10636              type: "string"
 10637              format: "binary"
 10638        tags: ["Plugin"]
 10639    /plugins/{name}/push:
 10640      post:
 10641        summary: "Push a plugin"
 10642        operationId: "PluginPush"
 10643        description: |
 10644          Push a plugin to the registry.
 10645        parameters:
 10646          - name: "name"
 10647            in: "path"
 10648            description: |
 10649              The name of the plugin. The `:latest` tag is optional, and is the
 10650              default if omitted.
 10651            required: true
 10652            type: "string"
 10653        responses:
 10654          200:
 10655            description: "no error"
 10656          404:
 10657            description: "plugin not installed"
 10658            schema:
 10659              $ref: "#/definitions/ErrorResponse"
 10660          500:
 10661            description: "server error"
 10662            schema:
 10663              $ref: "#/definitions/ErrorResponse"
 10664        tags: ["Plugin"]
 10665    /plugins/{name}/set:
 10666      post:
 10667        summary: "Configure a plugin"
 10668        operationId: "PluginSet"
 10669        consumes:
 10670          - "application/json"
 10671        parameters:
 10672          - name: "name"
 10673            in: "path"
 10674            description: |
 10675              The name of the plugin. The `:latest` tag is optional, and is the
 10676              default if omitted.
 10677            required: true
 10678            type: "string"
 10679          - name: "body"
 10680            in: "body"
 10681            schema:
 10682              type: "array"
 10683              items:
 10684                type: "string"
 10685              example: ["DEBUG=1"]
 10686        responses:
 10687          204:
 10688            description: "No error"
 10689          404:
 10690            description: "Plugin not installed"
 10691            schema:
 10692              $ref: "#/definitions/ErrorResponse"
 10693          500:
 10694            description: "Server error"
 10695            schema:
 10696              $ref: "#/definitions/ErrorResponse"
 10697        tags: ["Plugin"]
 10698    /nodes:
 10699      get:
 10700        summary: "List nodes"
 10701        operationId: "NodeList"
 10702        responses:
 10703          200:
 10704            description: "no error"
 10705            schema:
 10706              type: "array"
 10707              items:
 10708                $ref: "#/definitions/Node"
 10709          500:
 10710            description: "server error"
 10711            schema:
 10712              $ref: "#/definitions/ErrorResponse"
 10713          503:
 10714            description: "node is not part of a swarm"
 10715            schema:
 10716              $ref: "#/definitions/ErrorResponse"
 10717        parameters:
 10718          - name: "filters"
 10719            in: "query"
 10720            description: |
 10721              Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).
 10722  
 10723              Available filters:
 10724              - `id=<node id>`
 10725              - `label=<engine label>`
 10726              - `membership=`(`accepted`|`pending`)`
 10727              - `name=<node name>`
 10728              - `node.label=<node label>`
 10729              - `role=`(`manager`|`worker`)`
 10730            type: "string"
 10731        tags: ["Node"]
 10732    /nodes/{id}:
 10733      get:
 10734        summary: "Inspect a node"
 10735        operationId: "NodeInspect"
 10736        responses:
 10737          200:
 10738            description: "no error"
 10739            schema:
 10740              $ref: "#/definitions/Node"
 10741          404:
 10742            description: "no such node"
 10743            schema:
 10744              $ref: "#/definitions/ErrorResponse"
 10745          500:
 10746            description: "server error"
 10747            schema:
 10748              $ref: "#/definitions/ErrorResponse"
 10749          503:
 10750            description: "node is not part of a swarm"
 10751            schema:
 10752              $ref: "#/definitions/ErrorResponse"
 10753        parameters:
 10754          - name: "id"
 10755            in: "path"
 10756            description: "The ID or name of the node"
 10757            type: "string"
 10758            required: true
 10759        tags: ["Node"]
 10760      delete:
 10761        summary: "Delete a node"
 10762        operationId: "NodeDelete"
 10763        responses:
 10764          200:
 10765            description: "no error"
 10766          404:
 10767            description: "no such node"
 10768            schema:
 10769              $ref: "#/definitions/ErrorResponse"
 10770          500:
 10771            description: "server error"
 10772            schema:
 10773              $ref: "#/definitions/ErrorResponse"
 10774          503:
 10775            description: "node is not part of a swarm"
 10776            schema:
 10777              $ref: "#/definitions/ErrorResponse"
 10778        parameters:
 10779          - name: "id"
 10780            in: "path"
 10781            description: "The ID or name of the node"
 10782            type: "string"
 10783            required: true
 10784          - name: "force"
 10785            in: "query"
 10786            description: "Force remove a node from the swarm"
 10787            default: false
 10788            type: "boolean"
 10789        tags: ["Node"]
 10790    /nodes/{id}/update:
 10791      post:
 10792        summary: "Update a node"
 10793        operationId: "NodeUpdate"
 10794        responses:
 10795          200:
 10796            description: "no error"
 10797          400:
 10798            description: "bad parameter"
 10799            schema:
 10800              $ref: "#/definitions/ErrorResponse"
 10801          404:
 10802            description: "no such node"
 10803            schema:
 10804              $ref: "#/definitions/ErrorResponse"
 10805          500:
 10806            description: "server error"
 10807            schema:
 10808              $ref: "#/definitions/ErrorResponse"
 10809          503:
 10810            description: "node is not part of a swarm"
 10811            schema:
 10812              $ref: "#/definitions/ErrorResponse"
 10813        parameters:
 10814          - name: "id"
 10815            in: "path"
 10816            description: "The ID of the node"
 10817            type: "string"
 10818            required: true
 10819          - name: "body"
 10820            in: "body"
 10821            schema:
 10822              $ref: "#/definitions/NodeSpec"
 10823          - name: "version"
 10824            in: "query"
 10825            description: |
 10826              The version number of the node object being updated. This is required
 10827              to avoid conflicting writes.
 10828            type: "integer"
 10829            format: "int64"
 10830            required: true
 10831        tags: ["Node"]
 10832    /swarm:
 10833      get:
 10834        summary: "Inspect swarm"
 10835        operationId: "SwarmInspect"
 10836        responses:
 10837          200:
 10838            description: "no error"
 10839            schema:
 10840              $ref: "#/definitions/Swarm"
 10841          404:
 10842            description: "no such swarm"
 10843            schema:
 10844              $ref: "#/definitions/ErrorResponse"
 10845          500:
 10846            description: "server error"
 10847            schema:
 10848              $ref: "#/definitions/ErrorResponse"
 10849          503:
 10850            description: "node is not part of a swarm"
 10851            schema:
 10852              $ref: "#/definitions/ErrorResponse"
 10853        tags: ["Swarm"]
 10854    /swarm/init:
 10855      post:
 10856        summary: "Initialize a new swarm"
 10857        operationId: "SwarmInit"
 10858        produces:
 10859          - "application/json"
 10860          - "text/plain"
 10861        responses:
 10862          200:
 10863            description: "no error"
 10864            schema:
 10865              description: "The node ID"
 10866              type: "string"
 10867              example: "7v2t30z9blmxuhnyo6s4cpenp"
 10868          400:
 10869            description: "bad parameter"
 10870            schema:
 10871              $ref: "#/definitions/ErrorResponse"
 10872          500:
 10873            description: "server error"
 10874            schema:
 10875              $ref: "#/definitions/ErrorResponse"
 10876          503:
 10877            description: "node is already part of a swarm"
 10878            schema:
 10879              $ref: "#/definitions/ErrorResponse"
 10880        parameters:
 10881          - name: "body"
 10882            in: "body"
 10883            required: true
 10884            schema:
 10885              type: "object"
 10886              title: "SwarmInitRequest"
 10887              properties:
 10888                ListenAddr:
 10889                  description: |
 10890                    Listen address used for inter-manager communication, as well
 10891                    as determining the networking interface used for the VXLAN
 10892                    Tunnel Endpoint (VTEP). This can either be an address/port
 10893                    combination in the form `192.168.1.1:4567`, or an interface
 10894                    followed by a port number, like `eth0:4567`. If the port number
 10895                    is omitted, the default swarm listening port is used.
 10896                  type: "string"
 10897                AdvertiseAddr:
 10898                  description: |
 10899                    Externally reachable address advertised to other nodes. This
 10900                    can either be an address/port combination in the form
 10901                    `192.168.1.1:4567`, or an interface followed by a port number,
 10902                    like `eth0:4567`. If the port number is omitted, the port
 10903                    number from the listen address is used. If `AdvertiseAddr` is
 10904                    not specified, it will be automatically detected when possible.
 10905                  type: "string"
 10906                DataPathAddr:
 10907                  description: |
 10908                    Address or interface to use for data path traffic (format:
 10909                    `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
 10910                    like `eth0`. If `DataPathAddr` is unspecified, the same address
 10911                    as `AdvertiseAddr` is used.
 10912  
 10913                    The `DataPathAddr` specifies the address that global scope
 10914                    network drivers will publish towards other  nodes in order to
 10915                    reach the containers running on this node. Using this parameter
 10916                    it is possible to separate the container data traffic from the
 10917                    management traffic of the cluster.
 10918                  type: "string"
 10919                DataPathPort:
 10920                  description: |
 10921                    DataPathPort specifies the data path port number for data traffic.
 10922                    Acceptable port range is 1024 to 49151.
 10923                    if no port is set or is set to 0, default port 4789 will be used.
 10924                  type: "integer"
 10925                  format: "uint32"
 10926                DefaultAddrPool:
 10927                  description: |
 10928                    Default Address Pool specifies default subnet pools for global
 10929                    scope networks.
 10930                  type: "array"
 10931                  items:
 10932                    type: "string"
 10933                    example: ["10.10.0.0/16", "20.20.0.0/16"]
 10934                ForceNewCluster:
 10935                  description: "Force creation of a new swarm."
 10936                  type: "boolean"
 10937                SubnetSize:
 10938                  description: |
 10939                    SubnetSize specifies the subnet size of the networks created
 10940                    from the default subnet pool.
 10941                  type: "integer"
 10942                  format: "uint32"
 10943                Spec:
 10944                  $ref: "#/definitions/SwarmSpec"
 10945              example:
 10946                ListenAddr: "0.0.0.0:2377"
 10947                AdvertiseAddr: "192.168.1.1:2377"
 10948                DataPathPort: 4789
 10949                DefaultAddrPool: ["10.10.0.0/8", "20.20.0.0/8"]
 10950                SubnetSize: 24
 10951                ForceNewCluster: false
 10952                Spec:
 10953                  Orchestration: {}
 10954                  Raft: {}
 10955                  Dispatcher: {}
 10956                  CAConfig: {}
 10957                  EncryptionConfig:
 10958                    AutoLockManagers: false
 10959        tags: ["Swarm"]
 10960    /swarm/join:
 10961      post:
 10962        summary: "Join an existing swarm"
 10963        operationId: "SwarmJoin"
 10964        responses:
 10965          200:
 10966            description: "no error"
 10967          400:
 10968            description: "bad parameter"
 10969            schema:
 10970              $ref: "#/definitions/ErrorResponse"
 10971          500:
 10972            description: "server error"
 10973            schema:
 10974              $ref: "#/definitions/ErrorResponse"
 10975          503:
 10976            description: "node is already part of a swarm"
 10977            schema:
 10978              $ref: "#/definitions/ErrorResponse"
 10979        parameters:
 10980          - name: "body"
 10981            in: "body"
 10982            required: true
 10983            schema:
 10984              type: "object"
 10985              title: "SwarmJoinRequest"
 10986              properties:
 10987                ListenAddr:
 10988                  description: |
 10989                    Listen address used for inter-manager communication if the node
 10990                    gets promoted to manager, as well as determining the networking
 10991                    interface used for the VXLAN Tunnel Endpoint (VTEP).
 10992                  type: "string"
 10993                AdvertiseAddr:
 10994                  description: |
 10995                    Externally reachable address advertised to other nodes. This
 10996                    can either be an address/port combination in the form
 10997                    `192.168.1.1:4567`, or an interface followed by a port number,
 10998                    like `eth0:4567`. If the port number is omitted, the port
 10999                    number from the listen address is used. If `AdvertiseAddr` is
 11000                    not specified, it will be automatically detected when possible.
 11001                  type: "string"
 11002                DataPathAddr:
 11003                  description: |
 11004                    Address or interface to use for data path traffic (format:
 11005                    `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
 11006                    like `eth0`. If `DataPathAddr` is unspecified, the same address
 11007                    as `AdvertiseAddr` is used.
 11008  
 11009                    The `DataPathAddr` specifies the address that global scope
 11010                    network drivers will publish towards other nodes in order to
 11011                    reach the containers running on this node. Using this parameter
 11012                    it is possible to separate the container data traffic from the
 11013                    management traffic of the cluster.
 11014  
 11015                  type: "string"
 11016                RemoteAddrs:
 11017                  description: |
 11018                    Addresses of manager nodes already participating in the swarm.
 11019                  type: "array"
 11020                  items:
 11021                    type: "string"
 11022                JoinToken:
 11023                  description: "Secret token for joining this swarm."
 11024                  type: "string"
 11025              example:
 11026                ListenAddr: "0.0.0.0:2377"
 11027                AdvertiseAddr: "192.168.1.1:2377"
 11028                RemoteAddrs:
 11029                  - "node1:2377"
 11030                JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
 11031        tags: ["Swarm"]
 11032    /swarm/leave:
 11033      post:
 11034        summary: "Leave a swarm"
 11035        operationId: "SwarmLeave"
 11036        responses:
 11037          200:
 11038            description: "no error"
 11039          500:
 11040            description: "server error"
 11041            schema:
 11042              $ref: "#/definitions/ErrorResponse"
 11043          503:
 11044            description: "node is not part of a swarm"
 11045            schema:
 11046              $ref: "#/definitions/ErrorResponse"
 11047        parameters:
 11048          - name: "force"
 11049            description: |
 11050              Force leave swarm, even if this is the last manager or that it will
 11051              break the cluster.
 11052            in: "query"
 11053            type: "boolean"
 11054            default: false
 11055        tags: ["Swarm"]
 11056    /swarm/update:
 11057      post:
 11058        summary: "Update a swarm"
 11059        operationId: "SwarmUpdate"
 11060        responses:
 11061          200:
 11062            description: "no error"
 11063          400:
 11064            description: "bad parameter"
 11065            schema:
 11066              $ref: "#/definitions/ErrorResponse"
 11067          500:
 11068            description: "server error"
 11069            schema:
 11070              $ref: "#/definitions/ErrorResponse"
 11071          503:
 11072            description: "node is not part of a swarm"
 11073            schema:
 11074              $ref: "#/definitions/ErrorResponse"
 11075        parameters:
 11076          - name: "body"
 11077            in: "body"
 11078            required: true
 11079            schema:
 11080              $ref: "#/definitions/SwarmSpec"
 11081          - name: "version"
 11082            in: "query"
 11083            description: |
 11084              The version number of the swarm object being updated. This is
 11085              required to avoid conflicting writes.
 11086            type: "integer"
 11087            format: "int64"
 11088            required: true
 11089          - name: "rotateWorkerToken"
 11090            in: "query"
 11091            description: "Rotate the worker join token."
 11092            type: "boolean"
 11093            default: false
 11094          - name: "rotateManagerToken"
 11095            in: "query"
 11096            description: "Rotate the manager join token."
 11097            type: "boolean"
 11098            default: false
 11099          - name: "rotateManagerUnlockKey"
 11100            in: "query"
 11101            description: "Rotate the manager unlock key."
 11102            type: "boolean"
 11103            default: false
 11104        tags: ["Swarm"]
 11105    /swarm/unlockkey:
 11106      get:
 11107        summary: "Get the unlock key"
 11108        operationId: "SwarmUnlockkey"
 11109        consumes:
 11110          - "application/json"
 11111        responses:
 11112          200:
 11113            description: "no error"
 11114            schema:
 11115              type: "object"
 11116              title: "UnlockKeyResponse"
 11117              properties:
 11118                UnlockKey:
 11119                  description: "The swarm's unlock key."
 11120                  type: "string"
 11121              example:
 11122                UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
 11123          500:
 11124            description: "server error"
 11125            schema:
 11126              $ref: "#/definitions/ErrorResponse"
 11127          503:
 11128            description: "node is not part of a swarm"
 11129            schema:
 11130              $ref: "#/definitions/ErrorResponse"
 11131        tags: ["Swarm"]
 11132    /swarm/unlock:
 11133      post:
 11134        summary: "Unlock a locked manager"
 11135        operationId: "SwarmUnlock"
 11136        consumes:
 11137          - "application/json"
 11138        produces:
 11139          - "application/json"
 11140        parameters:
 11141          - name: "body"
 11142            in: "body"
 11143            required: true
 11144            schema:
 11145              type: "object"
 11146              title: "SwarmUnlockRequest"
 11147              properties:
 11148                UnlockKey:
 11149                  description: "The swarm's unlock key."
 11150                  type: "string"
 11151              example:
 11152                UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
 11153        responses:
 11154          200:
 11155            description: "no error"
 11156          500:
 11157            description: "server error"
 11158            schema:
 11159              $ref: "#/definitions/ErrorResponse"
 11160          503:
 11161            description: "node is not part of a swarm"
 11162            schema:
 11163              $ref: "#/definitions/ErrorResponse"
 11164        tags: ["Swarm"]
 11165    /services:
 11166      get:
 11167        summary: "List services"
 11168        operationId: "ServiceList"
 11169        responses:
 11170          200:
 11171            description: "no error"
 11172            schema:
 11173              type: "array"
 11174              items:
 11175                $ref: "#/definitions/Service"
 11176          500:
 11177            description: "server error"
 11178            schema:
 11179              $ref: "#/definitions/ErrorResponse"
 11180          503:
 11181            description: "node is not part of a swarm"
 11182            schema:
 11183              $ref: "#/definitions/ErrorResponse"
 11184        parameters:
 11185          - name: "filters"
 11186            in: "query"
 11187            type: "string"
 11188            description: |
 11189              A JSON encoded value of the filters (a `map[string][]string`) to
 11190              process on the services list.
 11191  
 11192              Available filters:
 11193  
 11194              - `id=<service id>`
 11195              - `label=<service label>`
 11196              - `mode=["replicated"|"global"]`
 11197              - `name=<service name>`
 11198          - name: "status"
 11199            in: "query"
 11200            type: "boolean"
 11201            description: |
 11202              Include service status, with count of running and desired tasks.
 11203        tags: ["Service"]
 11204    /services/create:
 11205      post:
 11206        summary: "Create a service"
 11207        operationId: "ServiceCreate"
 11208        consumes:
 11209          - "application/json"
 11210        produces:
 11211          - "application/json"
 11212        responses:
 11213          201:
 11214            description: "no error"
 11215            schema:
 11216              $ref: "#/definitions/ServiceCreateResponse"
 11217          400:
 11218            description: "bad parameter"
 11219            schema:
 11220              $ref: "#/definitions/ErrorResponse"
 11221          403:
 11222            description: "network is not eligible for services"
 11223            schema:
 11224              $ref: "#/definitions/ErrorResponse"
 11225          409:
 11226            description: "name conflicts with an existing service"
 11227            schema:
 11228              $ref: "#/definitions/ErrorResponse"
 11229          500:
 11230            description: "server error"
 11231            schema:
 11232              $ref: "#/definitions/ErrorResponse"
 11233          503:
 11234            description: "node is not part of a swarm"
 11235            schema:
 11236              $ref: "#/definitions/ErrorResponse"
 11237        parameters:
 11238          - name: "body"
 11239            in: "body"
 11240            required: true
 11241            schema:
 11242              allOf:
 11243                - $ref: "#/definitions/ServiceSpec"
 11244                - type: "object"
 11245                  example:
 11246                    Name: "web"
 11247                    TaskTemplate:
 11248                      ContainerSpec:
 11249                        Image: "nginx:alpine"
 11250                        Mounts:
 11251                          -
 11252                            ReadOnly: true
 11253                            Source: "web-data"
 11254                            Target: "/usr/share/nginx/html"
 11255                            Type: "volume"
 11256                            VolumeOptions:
 11257                              DriverConfig: {}
 11258                              Labels:
 11259                                com.example.something: "something-value"
 11260                        Hosts: ["10.10.10.10 host1", "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"]
 11261                        User: "33"
 11262                        DNSConfig:
 11263                          Nameservers: ["8.8.8.8"]
 11264                          Search: ["example.org"]
 11265                          Options: ["timeout:3"]
 11266                        Secrets:
 11267                          -
 11268                            File:
 11269                              Name: "www.example.org.key"
 11270                              UID: "33"
 11271                              GID: "33"
 11272                              Mode: 384
 11273                            SecretID: "fpjqlhnwb19zds35k8wn80lq9"
 11274                            SecretName: "example_org_domain_key"
 11275                      LogDriver:
 11276                        Name: "json-file"
 11277                        Options:
 11278                          max-file: "3"
 11279                          max-size: "10M"
 11280                      Placement: {}
 11281                      Resources:
 11282                        Limits:
 11283                          MemoryBytes: 104857600
 11284                        Reservations: {}
 11285                      RestartPolicy:
 11286                        Condition: "on-failure"
 11287                        Delay: 10000000000
 11288                        MaxAttempts: 10
 11289                    Mode:
 11290                      Replicated:
 11291                        Replicas: 4
 11292                    UpdateConfig:
 11293                      Parallelism: 2
 11294                      Delay: 1000000000
 11295                      FailureAction: "pause"
 11296                      Monitor: 15000000000
 11297                      MaxFailureRatio: 0.15
 11298                    RollbackConfig:
 11299                      Parallelism: 1
 11300                      Delay: 1000000000
 11301                      FailureAction: "pause"
 11302                      Monitor: 15000000000
 11303                      MaxFailureRatio: 0.15
 11304                    EndpointSpec:
 11305                      Ports:
 11306                        -
 11307                          Protocol: "tcp"
 11308                          PublishedPort: 8080
 11309                          TargetPort: 80
 11310                    Labels:
 11311                      foo: "bar"
 11312          - name: "X-Registry-Auth"
 11313            in: "header"
 11314            description: |
 11315              A base64url-encoded auth configuration for pulling from private
 11316              registries.
 11317  
 11318              Refer to the [authentication section](#section/Authentication) for
 11319              details.
 11320            type: "string"
 11321        tags: ["Service"]
 11322    /services/{id}:
 11323      get:
 11324        summary: "Inspect a service"
 11325        operationId: "ServiceInspect"
 11326        responses:
 11327          200:
 11328            description: "no error"
 11329            schema:
 11330              $ref: "#/definitions/Service"
 11331          404:
 11332            description: "no such service"
 11333            schema:
 11334              $ref: "#/definitions/ErrorResponse"
 11335          500:
 11336            description: "server error"
 11337            schema:
 11338              $ref: "#/definitions/ErrorResponse"
 11339          503:
 11340            description: "node is not part of a swarm"
 11341            schema:
 11342              $ref: "#/definitions/ErrorResponse"
 11343        parameters:
 11344          - name: "id"
 11345            in: "path"
 11346            description: "ID or name of service."
 11347            required: true
 11348            type: "string"
 11349          - name: "insertDefaults"
 11350            in: "query"
 11351            description: "Fill empty fields with default values."
 11352            type: "boolean"
 11353            default: false
 11354        tags: ["Service"]
 11355      delete:
 11356        summary: "Delete a service"
 11357        operationId: "ServiceDelete"
 11358        responses:
 11359          200:
 11360            description: "no error"
 11361          404:
 11362            description: "no such service"
 11363            schema:
 11364              $ref: "#/definitions/ErrorResponse"
 11365          500:
 11366            description: "server error"
 11367            schema:
 11368              $ref: "#/definitions/ErrorResponse"
 11369          503:
 11370            description: "node is not part of a swarm"
 11371            schema:
 11372              $ref: "#/definitions/ErrorResponse"
 11373        parameters:
 11374          - name: "id"
 11375            in: "path"
 11376            description: "ID or name of service."
 11377            required: true
 11378            type: "string"
 11379        tags: ["Service"]
 11380    /services/{id}/update:
 11381      post:
 11382        summary: "Update a service"
 11383        operationId: "ServiceUpdate"
 11384        consumes: ["application/json"]
 11385        produces: ["application/json"]
 11386        responses:
 11387          200:
 11388            description: "no error"
 11389            schema:
 11390              $ref: "#/definitions/ServiceUpdateResponse"
 11391          400:
 11392            description: "bad parameter"
 11393            schema:
 11394              $ref: "#/definitions/ErrorResponse"
 11395          404:
 11396            description: "no such service"
 11397            schema:
 11398              $ref: "#/definitions/ErrorResponse"
 11399          500:
 11400            description: "server error"
 11401            schema:
 11402              $ref: "#/definitions/ErrorResponse"
 11403          503:
 11404            description: "node is not part of a swarm"
 11405            schema:
 11406              $ref: "#/definitions/ErrorResponse"
 11407        parameters:
 11408          - name: "id"
 11409            in: "path"
 11410            description: "ID or name of service."
 11411            required: true
 11412            type: "string"
 11413          - name: "body"
 11414            in: "body"
 11415            required: true
 11416            schema:
 11417              allOf:
 11418                - $ref: "#/definitions/ServiceSpec"
 11419                - type: "object"
 11420                  example:
 11421                    Name: "top"
 11422                    TaskTemplate:
 11423                      ContainerSpec:
 11424                        Image: "busybox"
 11425                        Args:
 11426                          - "top"
 11427                      Resources:
 11428                        Limits: {}
 11429                        Reservations: {}
 11430                      RestartPolicy:
 11431                        Condition: "any"
 11432                        MaxAttempts: 0
 11433                      Placement: {}
 11434                      ForceUpdate: 0
 11435                    Mode:
 11436                      Replicated:
 11437                        Replicas: 1
 11438                    UpdateConfig:
 11439                      Parallelism: 2
 11440                      Delay: 1000000000
 11441                      FailureAction: "pause"
 11442                      Monitor: 15000000000
 11443                      MaxFailureRatio: 0.15
 11444                    RollbackConfig:
 11445                      Parallelism: 1
 11446                      Delay: 1000000000
 11447                      FailureAction: "pause"
 11448                      Monitor: 15000000000
 11449                      MaxFailureRatio: 0.15
 11450                    EndpointSpec:
 11451                      Mode: "vip"
 11452  
 11453          - name: "version"
 11454            in: "query"
 11455            description: |
 11456              The version number of the service object being updated. This is
 11457              required to avoid conflicting writes.
 11458              This version number should be the value as currently set on the
 11459              service *before* the update. You can find the current version by
 11460              calling `GET /services/{id}`
 11461            required: true
 11462            type: "integer"
 11463          - name: "registryAuthFrom"
 11464            in: "query"
 11465            description: |
 11466              If the `X-Registry-Auth` header is not specified, this parameter
 11467              indicates where to find registry authorization credentials.
 11468            type: "string"
 11469            enum: ["spec", "previous-spec"]
 11470            default: "spec"
 11471          - name: "rollback"
 11472            in: "query"
 11473            description: |
 11474              Set to this parameter to `previous` to cause a server-side rollback
 11475              to the previous service spec. The supplied spec will be ignored in
 11476              this case.
 11477            type: "string"
 11478          - name: "X-Registry-Auth"
 11479            in: "header"
 11480            description: |
 11481              A base64url-encoded auth configuration for pulling from private
 11482              registries.
 11483  
 11484              Refer to the [authentication section](#section/Authentication) for
 11485              details.
 11486            type: "string"
 11487  
 11488        tags: ["Service"]
 11489    /services/{id}/logs:
 11490      get:
 11491        summary: "Get service logs"
 11492        description: |
 11493          Get `stdout` and `stderr` logs from a service. See also
 11494          [`/containers/{id}/logs`](#operation/ContainerLogs).
 11495  
 11496          **Note**: This endpoint works only for services with the `local`,
 11497          `json-file` or `journald` logging drivers.
 11498        produces:
 11499          - "application/vnd.docker.raw-stream"
 11500          - "application/vnd.docker.multiplexed-stream"
 11501        operationId: "ServiceLogs"
 11502        responses:
 11503          200:
 11504            description: "logs returned as a stream in response body"
 11505            schema:
 11506              type: "string"
 11507              format: "binary"
 11508          404:
 11509            description: "no such service"
 11510            schema:
 11511              $ref: "#/definitions/ErrorResponse"
 11512            examples:
 11513              application/json:
 11514                message: "No such service: c2ada9df5af8"
 11515          500:
 11516            description: "server error"
 11517            schema:
 11518              $ref: "#/definitions/ErrorResponse"
 11519          503:
 11520            description: "node is not part of a swarm"
 11521            schema:
 11522              $ref: "#/definitions/ErrorResponse"
 11523        parameters:
 11524          - name: "id"
 11525            in: "path"
 11526            required: true
 11527            description: "ID or name of the service"
 11528            type: "string"
 11529          - name: "details"
 11530            in: "query"
 11531            description: "Show service context and extra details provided to logs."
 11532            type: "boolean"
 11533            default: false
 11534          - name: "follow"
 11535            in: "query"
 11536            description: "Keep connection after returning logs."
 11537            type: "boolean"
 11538            default: false
 11539          - name: "stdout"
 11540            in: "query"
 11541            description: "Return logs from `stdout`"
 11542            type: "boolean"
 11543            default: false
 11544          - name: "stderr"
 11545            in: "query"
 11546            description: "Return logs from `stderr`"
 11547            type: "boolean"
 11548            default: false
 11549          - name: "since"
 11550            in: "query"
 11551            description: "Only return logs since this time, as a UNIX timestamp"
 11552            type: "integer"
 11553            default: 0
 11554          - name: "timestamps"
 11555            in: "query"
 11556            description: "Add timestamps to every log line"
 11557            type: "boolean"
 11558            default: false
 11559          - name: "tail"
 11560            in: "query"
 11561            description: |
 11562              Only return this number of log lines from the end of the logs.
 11563              Specify as an integer or `all` to output all log lines.
 11564            type: "string"
 11565            default: "all"
 11566        tags: ["Service"]
 11567    /tasks:
 11568      get:
 11569        summary: "List tasks"
 11570        operationId: "TaskList"
 11571        produces:
 11572          - "application/json"
 11573        responses:
 11574          200:
 11575            description: "no error"
 11576            schema:
 11577              type: "array"
 11578              items:
 11579                $ref: "#/definitions/Task"
 11580              example:
 11581                - ID: "0kzzo1i0y4jz6027t0k7aezc7"
 11582                  Version:
 11583                    Index: 71
 11584                  CreatedAt: "2016-06-07T21:07:31.171892745Z"
 11585                  UpdatedAt: "2016-06-07T21:07:31.376370513Z"
 11586                  Spec:
 11587                    ContainerSpec:
 11588                      Image: "redis"
 11589                    Resources:
 11590                      Limits: {}
 11591                      Reservations: {}
 11592                    RestartPolicy:
 11593                      Condition: "any"
 11594                      MaxAttempts: 0
 11595                    Placement: {}
 11596                  ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
 11597                  Slot: 1
 11598                  NodeID: "60gvrl6tm78dmak4yl7srz94v"
 11599                  Status:
 11600                    Timestamp: "2016-06-07T21:07:31.290032978Z"
 11601                    State: "running"
 11602                    Message: "started"
 11603                    ContainerStatus:
 11604                      ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
 11605                      PID: 677
 11606                  DesiredState: "running"
 11607                  NetworksAttachments:
 11608                    - Network:
 11609                        ID: "4qvuz4ko70xaltuqbt8956gd1"
 11610                        Version:
 11611                          Index: 18
 11612                        CreatedAt: "2016-06-07T20:31:11.912919752Z"
 11613                        UpdatedAt: "2016-06-07T21:07:29.955277358Z"
 11614                        Spec:
 11615                          Name: "ingress"
 11616                          Labels:
 11617                            com.docker.swarm.internal: "true"
 11618                          DriverConfiguration: {}
 11619                          IPAMOptions:
 11620                            Driver: {}
 11621                            Configs:
 11622                              - Subnet: "10.255.0.0/16"
 11623                                Gateway: "10.255.0.1"
 11624                        DriverState:
 11625                          Name: "overlay"
 11626                          Options:
 11627                            com.docker.network.driver.overlay.vxlanid_list: "256"
 11628                        IPAMOptions:
 11629                          Driver:
 11630                            Name: "default"
 11631                          Configs:
 11632                            - Subnet: "10.255.0.0/16"
 11633                              Gateway: "10.255.0.1"
 11634                      Addresses:
 11635                        - "10.255.0.10/16"
 11636                - ID: "1yljwbmlr8er2waf8orvqpwms"
 11637                  Version:
 11638                    Index: 30
 11639                  CreatedAt: "2016-06-07T21:07:30.019104782Z"
 11640                  UpdatedAt: "2016-06-07T21:07:30.231958098Z"
 11641                  Name: "hopeful_cori"
 11642                  Spec:
 11643                    ContainerSpec:
 11644                      Image: "redis"
 11645                    Resources:
 11646                      Limits: {}
 11647                      Reservations: {}
 11648                    RestartPolicy:
 11649                      Condition: "any"
 11650                      MaxAttempts: 0
 11651                    Placement: {}
 11652                  ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
 11653                  Slot: 1
 11654                  NodeID: "60gvrl6tm78dmak4yl7srz94v"
 11655                  Status:
 11656                    Timestamp: "2016-06-07T21:07:30.202183143Z"
 11657                    State: "shutdown"
 11658                    Message: "shutdown"
 11659                    ContainerStatus:
 11660                      ContainerID: "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"
 11661                  DesiredState: "shutdown"
 11662                  NetworksAttachments:
 11663                    - Network:
 11664                        ID: "4qvuz4ko70xaltuqbt8956gd1"
 11665                        Version:
 11666                          Index: 18
 11667                        CreatedAt: "2016-06-07T20:31:11.912919752Z"
 11668                        UpdatedAt: "2016-06-07T21:07:29.955277358Z"
 11669                        Spec:
 11670                          Name: "ingress"
 11671                          Labels:
 11672                            com.docker.swarm.internal: "true"
 11673                          DriverConfiguration: {}
 11674                          IPAMOptions:
 11675                            Driver: {}
 11676                            Configs:
 11677                              - Subnet: "10.255.0.0/16"
 11678                                Gateway: "10.255.0.1"
 11679                        DriverState:
 11680                          Name: "overlay"
 11681                          Options:
 11682                            com.docker.network.driver.overlay.vxlanid_list: "256"
 11683                        IPAMOptions:
 11684                          Driver:
 11685                            Name: "default"
 11686                          Configs:
 11687                            - Subnet: "10.255.0.0/16"
 11688                              Gateway: "10.255.0.1"
 11689                      Addresses:
 11690                        - "10.255.0.5/16"
 11691          500:
 11692            description: "server error"
 11693            schema:
 11694              $ref: "#/definitions/ErrorResponse"
 11695          503:
 11696            description: "node is not part of a swarm"
 11697            schema:
 11698              $ref: "#/definitions/ErrorResponse"
 11699        parameters:
 11700          - name: "filters"
 11701            in: "query"
 11702            type: "string"
 11703            description: |
 11704              A JSON encoded value of the filters (a `map[string][]string`) to
 11705              process on the tasks list.
 11706  
 11707              Available filters:
 11708  
 11709              - `desired-state=(running | shutdown | accepted)`
 11710              - `id=<task id>`
 11711              - `label=key` or `label="key=value"`
 11712              - `name=<task name>`
 11713              - `node=<node id or name>`
 11714              - `service=<service name>`
 11715        tags: ["Task"]
 11716    /tasks/{id}:
 11717      get:
 11718        summary: "Inspect a task"
 11719        operationId: "TaskInspect"
 11720        produces:
 11721          - "application/json"
 11722        responses:
 11723          200:
 11724            description: "no error"
 11725            schema:
 11726              $ref: "#/definitions/Task"
 11727          404:
 11728            description: "no such task"
 11729            schema:
 11730              $ref: "#/definitions/ErrorResponse"
 11731          500:
 11732            description: "server error"
 11733            schema:
 11734              $ref: "#/definitions/ErrorResponse"
 11735          503:
 11736            description: "node is not part of a swarm"
 11737            schema:
 11738              $ref: "#/definitions/ErrorResponse"
 11739        parameters:
 11740          - name: "id"
 11741            in: "path"
 11742            description: "ID of the task"
 11743            required: true
 11744            type: "string"
 11745        tags: ["Task"]
 11746    /tasks/{id}/logs:
 11747      get:
 11748        summary: "Get task logs"
 11749        description: |
 11750          Get `stdout` and `stderr` logs from a task.
 11751          See also [`/containers/{id}/logs`](#operation/ContainerLogs).
 11752  
 11753          **Note**: This endpoint works only for services with the `local`,
 11754          `json-file` or `journald` logging drivers.
 11755        operationId: "TaskLogs"
 11756        produces:
 11757          - "application/vnd.docker.raw-stream"
 11758          - "application/vnd.docker.multiplexed-stream"
 11759        responses:
 11760          200:
 11761            description: "logs returned as a stream in response body"
 11762            schema:
 11763              type: "string"
 11764              format: "binary"
 11765          404:
 11766            description: "no such task"
 11767            schema:
 11768              $ref: "#/definitions/ErrorResponse"
 11769            examples:
 11770              application/json:
 11771                message: "No such task: c2ada9df5af8"
 11772          500:
 11773            description: "server error"
 11774            schema:
 11775              $ref: "#/definitions/ErrorResponse"
 11776          503:
 11777            description: "node is not part of a swarm"
 11778            schema:
 11779              $ref: "#/definitions/ErrorResponse"
 11780        parameters:
 11781          - name: "id"
 11782            in: "path"
 11783            required: true
 11784            description: "ID of the task"
 11785            type: "string"
 11786          - name: "details"
 11787            in: "query"
 11788            description: "Show task context and extra details provided to logs."
 11789            type: "boolean"
 11790            default: false
 11791          - name: "follow"
 11792            in: "query"
 11793            description: "Keep connection after returning logs."
 11794            type: "boolean"
 11795            default: false
 11796          - name: "stdout"
 11797            in: "query"
 11798            description: "Return logs from `stdout`"
 11799            type: "boolean"
 11800            default: false
 11801          - name: "stderr"
 11802            in: "query"
 11803            description: "Return logs from `stderr`"
 11804            type: "boolean"
 11805            default: false
 11806          - name: "since"
 11807            in: "query"
 11808            description: "Only return logs since this time, as a UNIX timestamp"
 11809            type: "integer"
 11810            default: 0
 11811          - name: "timestamps"
 11812            in: "query"
 11813            description: "Add timestamps to every log line"
 11814            type: "boolean"
 11815            default: false
 11816          - name: "tail"
 11817            in: "query"
 11818            description: |
 11819              Only return this number of log lines from the end of the logs.
 11820              Specify as an integer or `all` to output all log lines.
 11821            type: "string"
 11822            default: "all"
 11823        tags: ["Task"]
 11824    /secrets:
 11825      get:
 11826        summary: "List secrets"
 11827        operationId: "SecretList"
 11828        produces:
 11829          - "application/json"
 11830        responses:
 11831          200:
 11832            description: "no error"
 11833            schema:
 11834              type: "array"
 11835              items:
 11836                $ref: "#/definitions/Secret"
 11837              example:
 11838                - ID: "blt1owaxmitz71s9v5zh81zun"
 11839                  Version:
 11840                    Index: 85
 11841                  CreatedAt: "2017-07-20T13:55:28.678958722Z"
 11842                  UpdatedAt: "2017-07-20T13:55:28.678958722Z"
 11843                  Spec:
 11844                    Name: "mysql-passwd"
 11845                    Labels:
 11846                      some.label: "some.value"
 11847                    Driver:
 11848                      Name: "secret-bucket"
 11849                      Options:
 11850                        OptionA: "value for driver option A"
 11851                        OptionB: "value for driver option B"
 11852                - ID: "ktnbjxoalbkvbvedmg1urrz8h"
 11853                  Version:
 11854                    Index: 11
 11855                  CreatedAt: "2016-11-05T01:20:17.327670065Z"
 11856                  UpdatedAt: "2016-11-05T01:20:17.327670065Z"
 11857                  Spec:
 11858                    Name: "app-dev.crt"
 11859                    Labels:
 11860                      foo: "bar"
 11861          500:
 11862            description: "server error"
 11863            schema:
 11864              $ref: "#/definitions/ErrorResponse"
 11865          503:
 11866            description: "node is not part of a swarm"
 11867            schema:
 11868              $ref: "#/definitions/ErrorResponse"
 11869        parameters:
 11870          - name: "filters"
 11871            in: "query"
 11872            type: "string"
 11873            description: |
 11874              A JSON encoded value of the filters (a `map[string][]string`) to
 11875              process on the secrets list.
 11876  
 11877              Available filters:
 11878  
 11879              - `id=<secret id>`
 11880              - `label=<key> or label=<key>=value`
 11881              - `name=<secret name>`
 11882              - `names=<secret name>`
 11883        tags: ["Secret"]
 11884    /secrets/create:
 11885      post:
 11886        summary: "Create a secret"
 11887        operationId: "SecretCreate"
 11888        consumes:
 11889          - "application/json"
 11890        produces:
 11891          - "application/json"
 11892        responses:
 11893          201:
 11894            description: "no error"
 11895            schema:
 11896              $ref: "#/definitions/IdResponse"
 11897          409:
 11898            description: "name conflicts with an existing object"
 11899            schema:
 11900              $ref: "#/definitions/ErrorResponse"
 11901          500:
 11902            description: "server error"
 11903            schema:
 11904              $ref: "#/definitions/ErrorResponse"
 11905          503:
 11906            description: "node is not part of a swarm"
 11907            schema:
 11908              $ref: "#/definitions/ErrorResponse"
 11909        parameters:
 11910          - name: "body"
 11911            in: "body"
 11912            schema:
 11913              allOf:
 11914                - $ref: "#/definitions/SecretSpec"
 11915                - type: "object"
 11916                  example:
 11917                    Name: "app-key.crt"
 11918                    Labels:
 11919                      foo: "bar"
 11920                    Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
 11921                    Driver:
 11922                      Name: "secret-bucket"
 11923                      Options:
 11924                        OptionA: "value for driver option A"
 11925                        OptionB: "value for driver option B"
 11926        tags: ["Secret"]
 11927    /secrets/{id}:
 11928      get:
 11929        summary: "Inspect a secret"
 11930        operationId: "SecretInspect"
 11931        produces:
 11932          - "application/json"
 11933        responses:
 11934          200:
 11935            description: "no error"
 11936            schema:
 11937              $ref: "#/definitions/Secret"
 11938            examples:
 11939              application/json:
 11940                ID: "ktnbjxoalbkvbvedmg1urrz8h"
 11941                Version:
 11942                  Index: 11
 11943                CreatedAt: "2016-11-05T01:20:17.327670065Z"
 11944                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
 11945                Spec:
 11946                  Name: "app-dev.crt"
 11947                  Labels:
 11948                    foo: "bar"
 11949                  Driver:
 11950                    Name: "secret-bucket"
 11951                    Options:
 11952                      OptionA: "value for driver option A"
 11953                      OptionB: "value for driver option B"
 11954  
 11955          404:
 11956            description: "secret not found"
 11957            schema:
 11958              $ref: "#/definitions/ErrorResponse"
 11959          500:
 11960            description: "server error"
 11961            schema:
 11962              $ref: "#/definitions/ErrorResponse"
 11963          503:
 11964            description: "node is not part of a swarm"
 11965            schema:
 11966              $ref: "#/definitions/ErrorResponse"
 11967        parameters:
 11968          - name: "id"
 11969            in: "path"
 11970            required: true
 11971            type: "string"
 11972            description: "ID of the secret"
 11973        tags: ["Secret"]
 11974      delete:
 11975        summary: "Delete a secret"
 11976        operationId: "SecretDelete"
 11977        produces:
 11978          - "application/json"
 11979        responses:
 11980          204:
 11981            description: "no error"
 11982          404:
 11983            description: "secret not found"
 11984            schema:
 11985              $ref: "#/definitions/ErrorResponse"
 11986          500:
 11987            description: "server error"
 11988            schema:
 11989              $ref: "#/definitions/ErrorResponse"
 11990          503:
 11991            description: "node is not part of a swarm"
 11992            schema:
 11993              $ref: "#/definitions/ErrorResponse"
 11994        parameters:
 11995          - name: "id"
 11996            in: "path"
 11997            required: true
 11998            type: "string"
 11999            description: "ID of the secret"
 12000        tags: ["Secret"]
 12001    /secrets/{id}/update:
 12002      post:
 12003        summary: "Update a Secret"
 12004        operationId: "SecretUpdate"
 12005        responses:
 12006          200:
 12007            description: "no error"
 12008          400:
 12009            description: "bad parameter"
 12010            schema:
 12011              $ref: "#/definitions/ErrorResponse"
 12012          404:
 12013            description: "no such secret"
 12014            schema:
 12015              $ref: "#/definitions/ErrorResponse"
 12016          500:
 12017            description: "server error"
 12018            schema:
 12019              $ref: "#/definitions/ErrorResponse"
 12020          503:
 12021            description: "node is not part of a swarm"
 12022            schema:
 12023              $ref: "#/definitions/ErrorResponse"
 12024        parameters:
 12025          - name: "id"
 12026            in: "path"
 12027            description: "The ID or name of the secret"
 12028            type: "string"
 12029            required: true
 12030          - name: "body"
 12031            in: "body"
 12032            schema:
 12033              $ref: "#/definitions/SecretSpec"
 12034            description: |
 12035              The spec of the secret to update. Currently, only the Labels field
 12036              can be updated. All other fields must remain unchanged from the
 12037              [SecretInspect endpoint](#operation/SecretInspect) response values.
 12038          - name: "version"
 12039            in: "query"
 12040            description: |
 12041              The version number of the secret object being updated. This is
 12042              required to avoid conflicting writes.
 12043            type: "integer"
 12044            format: "int64"
 12045            required: true
 12046        tags: ["Secret"]
 12047    /configs:
 12048      get:
 12049        summary: "List configs"
 12050        operationId: "ConfigList"
 12051        produces:
 12052          - "application/json"
 12053        responses:
 12054          200:
 12055            description: "no error"
 12056            schema:
 12057              type: "array"
 12058              items:
 12059                $ref: "#/definitions/Config"
 12060              example:
 12061                - ID: "ktnbjxoalbkvbvedmg1urrz8h"
 12062                  Version:
 12063                    Index: 11
 12064                  CreatedAt: "2016-11-05T01:20:17.327670065Z"
 12065                  UpdatedAt: "2016-11-05T01:20:17.327670065Z"
 12066                  Spec:
 12067                    Name: "server.conf"
 12068          500:
 12069            description: "server error"
 12070            schema:
 12071              $ref: "#/definitions/ErrorResponse"
 12072          503:
 12073            description: "node is not part of a swarm"
 12074            schema:
 12075              $ref: "#/definitions/ErrorResponse"
 12076        parameters:
 12077          - name: "filters"
 12078            in: "query"
 12079            type: "string"
 12080            description: |
 12081              A JSON encoded value of the filters (a `map[string][]string`) to
 12082              process on the configs list.
 12083  
 12084              Available filters:
 12085  
 12086              - `id=<config id>`
 12087              - `label=<key> or label=<key>=value`
 12088              - `name=<config name>`
 12089              - `names=<config name>`
 12090        tags: ["Config"]
 12091    /configs/create:
 12092      post:
 12093        summary: "Create a config"
 12094        operationId: "ConfigCreate"
 12095        consumes:
 12096          - "application/json"
 12097        produces:
 12098          - "application/json"
 12099        responses:
 12100          201:
 12101            description: "no error"
 12102            schema:
 12103              $ref: "#/definitions/IdResponse"
 12104          409:
 12105            description: "name conflicts with an existing object"
 12106            schema:
 12107              $ref: "#/definitions/ErrorResponse"
 12108          500:
 12109            description: "server error"
 12110            schema:
 12111              $ref: "#/definitions/ErrorResponse"
 12112          503:
 12113            description: "node is not part of a swarm"
 12114            schema:
 12115              $ref: "#/definitions/ErrorResponse"
 12116        parameters:
 12117          - name: "body"
 12118            in: "body"
 12119            schema:
 12120              allOf:
 12121                - $ref: "#/definitions/ConfigSpec"
 12122                - type: "object"
 12123                  example:
 12124                    Name: "server.conf"
 12125                    Labels:
 12126                      foo: "bar"
 12127                    Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
 12128        tags: ["Config"]
 12129    /configs/{id}:
 12130      get:
 12131        summary: "Inspect a config"
 12132        operationId: "ConfigInspect"
 12133        produces:
 12134          - "application/json"
 12135        responses:
 12136          200:
 12137            description: "no error"
 12138            schema:
 12139              $ref: "#/definitions/Config"
 12140            examples:
 12141              application/json:
 12142                ID: "ktnbjxoalbkvbvedmg1urrz8h"
 12143                Version:
 12144                  Index: 11
 12145                CreatedAt: "2016-11-05T01:20:17.327670065Z"
 12146                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
 12147                Spec:
 12148                  Name: "app-dev.crt"
 12149          404:
 12150            description: "config not found"
 12151            schema:
 12152              $ref: "#/definitions/ErrorResponse"
 12153          500:
 12154            description: "server error"
 12155            schema:
 12156              $ref: "#/definitions/ErrorResponse"
 12157          503:
 12158            description: "node is not part of a swarm"
 12159            schema:
 12160              $ref: "#/definitions/ErrorResponse"
 12161        parameters:
 12162          - name: "id"
 12163            in: "path"
 12164            required: true
 12165            type: "string"
 12166            description: "ID of the config"
 12167        tags: ["Config"]
 12168      delete:
 12169        summary: "Delete a config"
 12170        operationId: "ConfigDelete"
 12171        produces:
 12172          - "application/json"
 12173        responses:
 12174          204:
 12175            description: "no error"
 12176          404:
 12177            description: "config not found"
 12178            schema:
 12179              $ref: "#/definitions/ErrorResponse"
 12180          500:
 12181            description: "server error"
 12182            schema:
 12183              $ref: "#/definitions/ErrorResponse"
 12184          503:
 12185            description: "node is not part of a swarm"
 12186            schema:
 12187              $ref: "#/definitions/ErrorResponse"
 12188        parameters:
 12189          - name: "id"
 12190            in: "path"
 12191            required: true
 12192            type: "string"
 12193            description: "ID of the config"
 12194        tags: ["Config"]
 12195    /configs/{id}/update:
 12196      post:
 12197        summary: "Update a Config"
 12198        operationId: "ConfigUpdate"
 12199        responses:
 12200          200:
 12201            description: "no error"
 12202          400:
 12203            description: "bad parameter"
 12204            schema:
 12205              $ref: "#/definitions/ErrorResponse"
 12206          404:
 12207            description: "no such config"
 12208            schema:
 12209              $ref: "#/definitions/ErrorResponse"
 12210          500:
 12211            description: "server error"
 12212            schema:
 12213              $ref: "#/definitions/ErrorResponse"
 12214          503:
 12215            description: "node is not part of a swarm"
 12216            schema:
 12217              $ref: "#/definitions/ErrorResponse"
 12218        parameters:
 12219          - name: "id"
 12220            in: "path"
 12221            description: "The ID or name of the config"
 12222            type: "string"
 12223            required: true
 12224          - name: "body"
 12225            in: "body"
 12226            schema:
 12227              $ref: "#/definitions/ConfigSpec"
 12228            description: |
 12229              The spec of the config to update. Currently, only the Labels field
 12230              can be updated. All other fields must remain unchanged from the
 12231              [ConfigInspect endpoint](#operation/ConfigInspect) response values.
 12232          - name: "version"
 12233            in: "query"
 12234            description: |
 12235              The version number of the config object being updated. This is
 12236              required to avoid conflicting writes.
 12237            type: "integer"
 12238            format: "int64"
 12239            required: true
 12240        tags: ["Config"]
 12241    /distribution/{name}/json:
 12242      get:
 12243        summary: "Get image information from the registry"
 12244        description: |
 12245          Return image digest and platform information by contacting the registry.
 12246        operationId: "DistributionInspect"
 12247        produces:
 12248          - "application/json"
 12249        responses:
 12250          200:
 12251            description: "descriptor and platform information"
 12252            schema:
 12253              $ref: "#/definitions/DistributionInspect"
 12254          401:
 12255            description: "Failed authentication or no image found"
 12256            schema:
 12257              $ref: "#/definitions/ErrorResponse"
 12258            examples:
 12259              application/json:
 12260                message: "No such image: someimage (tag: latest)"
 12261          500:
 12262            description: "Server error"
 12263            schema:
 12264              $ref: "#/definitions/ErrorResponse"
 12265        parameters:
 12266          - name: "name"
 12267            in: "path"
 12268            description: "Image name or id"
 12269            type: "string"
 12270            required: true
 12271        tags: ["Distribution"]
 12272    /session:
 12273      post:
 12274        summary: "Initialize interactive session"
 12275        description: |
 12276          Start a new interactive session with a server. Session allows server to
 12277          call back to the client for advanced capabilities.
 12278  
 12279          ### Hijacking
 12280  
 12281          This endpoint hijacks the HTTP connection to HTTP2 transport that allows
 12282          the client to expose gPRC services on that connection.
 12283  
 12284          For example, the client sends this request to upgrade the connection:
 12285  
 12286          ```
 12287          POST /session HTTP/1.1
 12288          Upgrade: h2c
 12289          Connection: Upgrade
 12290          ```
 12291  
 12292          The Docker daemon responds with a `101 UPGRADED` response follow with
 12293          the raw stream:
 12294  
 12295          ```
 12296          HTTP/1.1 101 UPGRADED
 12297          Connection: Upgrade
 12298          Upgrade: h2c
 12299          ```
 12300        operationId: "Session"
 12301        produces:
 12302          - "application/vnd.docker.raw-stream"
 12303        responses:
 12304          101:
 12305            description: "no error, hijacking successful"
 12306          400:
 12307            description: "bad parameter"
 12308            schema:
 12309              $ref: "#/definitions/ErrorResponse"
 12310          500:
 12311            description: "server error"
 12312            schema:
 12313              $ref: "#/definitions/ErrorResponse"
 12314        tags: ["Session"]