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