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