github.com/demonoid81/moby@v0.0.0-20200517203328-62dd8e17c460/docs/api/v1.31.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.31"
    23  info:
    24    title: "Docker Engine API"
    25    version: "1.31"
    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 Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.
    30  
    31      Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls.
    32  
    33      # Errors
    34  
    35      The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:
    36  
    37      ```
    38      {
    39        "message": "page not found"
    40      }
    41      ```
    42  
    43      # Versioning
    44  
    45      The API is usually changed in each release of Docker, so API calls are versioned to ensure that clients don't break.
    46  
    47      For Docker Engine 17.06, the API version is 1.30. To lock to this version, you prefix the URL with `/v1.30`. For example, calling `/info` is the same as calling `/v1.30/info`.
    48  
    49      Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine.
    50  
    51      In previous versions of Docker, it was possible to access the API without providing a version. This behaviour is now deprecated will be removed in a future version of Docker.
    52  
    53      The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer Docker daemons.
    54  
    55      This documentation is for version 1.31 of the API. Use this table to find documentation for previous versions of the API:
    56  
    57      Docker version  | API version | Changes
    58      ----------------|-------------|---------
    59      17.06.x | [1.30](https://docs.docker.com/engine/api/v1.30/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-30-api-changes)
    60      17.05.x | [1.29](https://docs.docker.com/engine/api/v1.29/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-29-api-changes)
    61      17.04.x | [1.28](https://docs.docker.com/engine/api/v1.28/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-28-api-changes)
    62      17.03.1 | [1.27](https://docs.docker.com/engine/api/v1.27/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-27-api-changes)
    63      1.13.1 & 17.03.0 | [1.26](https://docs.docker.com/engine/api/v1.26/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-26-api-changes)
    64      1.13.0 | [1.25](https://docs.docker.com/engine/api/v1.25/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-25-api-changes)
    65      1.12.x | [1.24](https://docs.docker.com/engine/api/v1.24/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-24-api-changes)
    66      1.11.x | [1.23](https://docs.docker.com/engine/api/v1.23/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-23-api-changes)
    67      1.10.x | [1.22](https://docs.docker.com/engine/api/v1.22/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-22-api-changes)
    68      1.9.x | [1.21](https://docs.docker.com/engine/api/v1.21/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-21-api-changes)
    69      1.8.x | [1.20](https://docs.docker.com/engine/api/v1.20/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-20-api-changes)
    70      1.7.x | [1.19](https://docs.docker.com/engine/api/v1.19/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-19-api-changes)
    71      1.6.x | [1.18](https://docs.docker.com/engine/api/v1.18/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-18-api-changes)
    72  
    73      # Authentication
    74  
    75      Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a Base64 encoded (JSON) string with the following structure:
    76  
    77      ```
    78      {
    79        "username": "string",
    80        "password": "string",
    81        "email": "string",
    82        "serveraddress": "string"
    83      }
    84      ```
    85  
    86      The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required.
    87  
    88      If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials:
    89  
    90      ```
    91      {
    92        "identitytoken": "9cbaf023786cd7..."
    93      }
    94      ```
    95  
    96  # The tags on paths define the menu sections in the ReDoc documentation, so
    97  # the usage of tags must make sense for that:
    98  # - They should be singular, not plural.
    99  # - There should not be too many tags, or the menu becomes unwieldy. For
   100  #   example, it is preferable to add a path to the "System" tag instead of
   101  #   creating a tag with a single path in it.
   102  # - The order of tags in this list defines the order in the menu.
   103  tags:
   104    # Primary objects
   105    - name: "Container"
   106      x-displayName: "Containers"
   107      description: |
   108        Create and manage containers.
   109    - name: "Image"
   110      x-displayName: "Images"
   111    - name: "Network"
   112      x-displayName: "Networks"
   113      description: |
   114        Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.
   115    - name: "Volume"
   116      x-displayName: "Volumes"
   117      description: |
   118        Create and manage persistent storage that can be attached to containers.
   119    - name: "Exec"
   120      x-displayName: "Exec"
   121      description: |
   122        Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
   123  
   124        To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.
   125    # Swarm things
   126    - name: "Swarm"
   127      x-displayName: "Swarm"
   128      description: |
   129        Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
   130    - name: "Node"
   131      x-displayName: "Nodes"
   132      description: |
   133        Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
   134    - name: "Service"
   135      x-displayName: "Services"
   136      description: |
   137        Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
   138    - name: "Task"
   139      x-displayName: "Tasks"
   140      description: |
   141        A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
   142    - name: "Secret"
   143      x-displayName: "Secrets"
   144      description: |
   145        Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
   146    # System things
   147    - name: "Plugin"
   148      x-displayName: "Plugins"
   149    - name: "System"
   150      x-displayName: "System"
   151  
   152  definitions:
   153    Port:
   154      type: "object"
   155      description: "An open port on a container"
   156      required: [PrivatePort, Type]
   157      properties:
   158        IP:
   159          type: "string"
   160          format: "ip-address"
   161        PrivatePort:
   162          type: "integer"
   163          format: "uint16"
   164          x-nullable: false
   165          description: "Port on the container"
   166        PublicPort:
   167          type: "integer"
   168          format: "uint16"
   169          description: "Port exposed on the host"
   170        Type:
   171          type: "string"
   172          x-nullable: false
   173          enum: ["tcp", "udp"]
   174      example:
   175        PrivatePort: 8080
   176        PublicPort: 80
   177        Type: "tcp"
   178  
   179    MountPoint:
   180      type: "object"
   181      description: "A mount point inside a container"
   182      properties:
   183        Type:
   184          type: "string"
   185        Name:
   186          type: "string"
   187        Source:
   188          type: "string"
   189        Destination:
   190          type: "string"
   191        Driver:
   192          type: "string"
   193        Mode:
   194          type: "string"
   195        RW:
   196          type: "boolean"
   197        Propagation:
   198          type: "string"
   199  
   200    DeviceMapping:
   201      type: "object"
   202      description: "A device mapping between the host and container"
   203      properties:
   204        PathOnHost:
   205          type: "string"
   206        PathInContainer:
   207          type: "string"
   208        CgroupPermissions:
   209          type: "string"
   210      example:
   211        PathOnHost: "/dev/deviceName"
   212        PathInContainer: "/dev/deviceName"
   213        CgroupPermissions: "mrw"
   214  
   215    ThrottleDevice:
   216      type: "object"
   217      properties:
   218        Path:
   219          description: "Device path"
   220          type: "string"
   221        Rate:
   222          description: "Rate"
   223          type: "integer"
   224          format: "int64"
   225          minimum: 0
   226  
   227    Mount:
   228      type: "object"
   229      properties:
   230        Target:
   231          description: "Container path."
   232          type: "string"
   233        Source:
   234          description: "Mount source (e.g. a volume name, a host path)."
   235          type: "string"
   236        Type:
   237          description: |
   238            The mount type. Available types:
   239  
   240            - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.
   241            - `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.
   242            - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.
   243          type: "string"
   244          enum:
   245            - "bind"
   246            - "volume"
   247            - "tmpfs"
   248        ReadOnly:
   249          description: "Whether the mount should be read-only."
   250          type: "boolean"
   251        Consistency:
   252          description: "The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`."
   253          type: "string"
   254        BindOptions:
   255          description: "Optional configuration for the `bind` type."
   256          type: "object"
   257          properties:
   258            Propagation:
   259              description: "A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`."
   260              enum:
   261                - "private"
   262                - "rprivate"
   263                - "shared"
   264                - "rshared"
   265                - "slave"
   266                - "rslave"
   267        VolumeOptions:
   268          description: "Optional configuration for the `volume` type."
   269          type: "object"
   270          properties:
   271            NoCopy:
   272              description: "Populate volume with data from the target."
   273              type: "boolean"
   274              default: false
   275            Labels:
   276              description: "User-defined key/value metadata."
   277              type: "object"
   278              additionalProperties:
   279                type: "string"
   280            DriverConfig:
   281              description: "Map of driver specific options"
   282              type: "object"
   283              properties:
   284                Name:
   285                  description: "Name of the driver to use to create the volume."
   286                  type: "string"
   287                Options:
   288                  description: "key/value map of driver specific options."
   289                  type: "object"
   290                  additionalProperties:
   291                    type: "string"
   292        TmpfsOptions:
   293          description: "Optional configuration for the `tmpfs` type."
   294          type: "object"
   295          properties:
   296            SizeBytes:
   297              description: "The size for the tmpfs mount in bytes."
   298              type: "integer"
   299              format: "int64"
   300            Mode:
   301              description: "The permission mode for the tmpfs mount in an integer."
   302              type: "integer"
   303    RestartPolicy:
   304      description: |
   305        The behavior to apply when the container exits. The default is not to restart.
   306  
   307        An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.
   308      type: "object"
   309      properties:
   310        Name:
   311          type: "string"
   312          description: |
   313            - Empty string means not to restart
   314            - `always` Always restart
   315            - `unless-stopped` Restart always except when the user has manually stopped the container
   316            - `on-failure` Restart only when the container exit code is non-zero
   317          enum:
   318            - ""
   319            - "always"
   320            - "unless-stopped"
   321            - "on-failure"
   322        MaximumRetryCount:
   323          type: "integer"
   324          description: "If `on-failure` is used, the number of times to retry before giving up"
   325  
   326    Resources:
   327      description: "A container's resources (cgroups config, ulimits, etc)"
   328      type: "object"
   329      properties:
   330        # Applicable to all platforms
   331        CpuShares:
   332          description: "An integer value representing this container's relative CPU weight versus other containers."
   333          type: "integer"
   334        Memory:
   335          description: "Memory limit in bytes."
   336          type: "integer"
   337          default: 0
   338        # Applicable to UNIX platforms
   339        CgroupParent:
   340          description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist."
   341          type: "string"
   342        BlkioWeight:
   343          description: "Block IO weight (relative weight)."
   344          type: "integer"
   345          minimum: 0
   346          maximum: 1000
   347        BlkioWeightDevice:
   348          description: |
   349            Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`.
   350          type: "array"
   351          items:
   352            type: "object"
   353            properties:
   354              Path:
   355                type: "string"
   356              Weight:
   357                type: "integer"
   358                minimum: 0
   359        BlkioDeviceReadBps:
   360          description: |
   361            Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
   362          type: "array"
   363          items:
   364            $ref: "#/definitions/ThrottleDevice"
   365        BlkioDeviceWriteBps:
   366          description: |
   367            Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
   368          type: "array"
   369          items:
   370            $ref: "#/definitions/ThrottleDevice"
   371        BlkioDeviceReadIOps:
   372          description: |
   373            Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
   374          type: "array"
   375          items:
   376            $ref: "#/definitions/ThrottleDevice"
   377        BlkioDeviceWriteIOps:
   378          description: |
   379            Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
   380          type: "array"
   381          items:
   382            $ref: "#/definitions/ThrottleDevice"
   383        CpuPeriod:
   384          description: "The length of a CPU period in microseconds."
   385          type: "integer"
   386          format: "int64"
   387        CpuQuota:
   388          description: "Microseconds of CPU time that the container can get in a CPU period."
   389          type: "integer"
   390          format: "int64"
   391        CpuRealtimePeriod:
   392          description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
   393          type: "integer"
   394          format: "int64"
   395        CpuRealtimeRuntime:
   396          description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
   397          type: "integer"
   398          format: "int64"
   399        CpusetCpus:
   400          description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
   401          type: "string"
   402        CpusetMems:
   403          description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
   404          type: "string"
   405        Devices:
   406          description: "A list of devices to add to the container."
   407          type: "array"
   408          items:
   409            $ref: "#/definitions/DeviceMapping"
   410        DeviceCgroupRules:
   411          description: "a list of cgroup rules to apply to the container"
   412          type: "array"
   413          items:
   414            type: "string"
   415            example: "c 13:* rwm"
   416        DiskQuota:
   417          description: "Disk limit (in bytes)."
   418          type: "integer"
   419          format: "int64"
   420        KernelMemory:
   421          description: "Kernel memory limit in bytes."
   422          type: "integer"
   423          format: "int64"
   424        MemoryReservation:
   425          description: "Memory soft limit in bytes."
   426          type: "integer"
   427          format: "int64"
   428        MemorySwap:
   429          description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap."
   430          type: "integer"
   431          format: "int64"
   432        MemorySwappiness:
   433          description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100."
   434          type: "integer"
   435          format: "int64"
   436          minimum: 0
   437          maximum: 100
   438        NanoCPUs:
   439          description: "CPU quota in units of 10<sup>-9</sup> CPUs."
   440          type: "integer"
   441          format: "int64"
   442        OomKillDisable:
   443          description: "Disable OOM Killer for the container."
   444          type: "boolean"
   445        PidsLimit:
   446          description: "Tune a container's pids limit. Set -1 for unlimited."
   447          type: "integer"
   448          format: "int64"
   449        Ulimits:
   450          description: |
   451            A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
   452          type: "array"
   453          items:
   454            type: "object"
   455            properties:
   456              Name:
   457                description: "Name of ulimit"
   458                type: "string"
   459              Soft:
   460                description: "Soft limit"
   461                type: "integer"
   462              Hard:
   463                description: "Hard limit"
   464                type: "integer"
   465        # Applicable to Windows
   466        CpuCount:
   467          description: |
   468            The number of usable CPUs (Windows only).
   469  
   470            On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
   471          type: "integer"
   472          format: "int64"
   473        CpuPercent:
   474          description: |
   475            The usable percentage of the available CPUs (Windows only).
   476  
   477            On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
   478          type: "integer"
   479          format: "int64"
   480        IOMaximumIOps:
   481          description: "Maximum IOps for the container system drive (Windows only)"
   482          type: "integer"
   483          format: "int64"
   484        IOMaximumBandwidth:
   485          description: "Maximum IO in bytes per second for the container system drive (Windows only)"
   486          type: "integer"
   487          format: "int64"
   488  
   489    HealthConfig:
   490      description: "A test to perform to check that the container is healthy."
   491      type: "object"
   492      properties:
   493        Test:
   494          description: |
   495            The test to perform. Possible values are:
   496  
   497            - `[]` inherit healthcheck from image or parent image
   498            - `["NONE"]` disable healthcheck
   499            - `["CMD", args...]` exec arguments directly
   500            - `["CMD-SHELL", command]` run command with system's default shell
   501          type: "array"
   502          items:
   503            type: "string"
   504        Interval:
   505          description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
   506          type: "integer"
   507        Timeout:
   508          description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
   509          type: "integer"
   510        Retries:
   511          description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit."
   512          type: "integer"
   513        StartPeriod:
   514          description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
   515          type: "integer"
   516  
   517    HostConfig:
   518      description: "Container configuration that depends on the host we are running on"
   519      allOf:
   520        - $ref: "#/definitions/Resources"
   521        - type: "object"
   522          properties:
   523            # Applicable to all platforms
   524            Binds:
   525              type: "array"
   526              description: |
   527                A list of volume bindings for this container. Each volume binding is a string in one of these forms:
   528  
   529                - `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
   530                - `host-src:container-dest:ro` to make the bind-mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
   531                - `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.
   532                - `volume-name:container-dest:ro` to mount the volume read-only inside the container.  `container-dest` must be an _absolute_ path.
   533              items:
   534                type: "string"
   535            ContainerIDFile:
   536              type: "string"
   537              description: "Path to a file where the container ID is written"
   538            LogConfig:
   539              type: "object"
   540              description: "The logging configuration for this container"
   541              properties:
   542                Type:
   543                  type: "string"
   544                  enum:
   545                    - "json-file"
   546                    - "syslog"
   547                    - "journald"
   548                    - "gelf"
   549                    - "fluentd"
   550                    - "awslogs"
   551                    - "splunk"
   552                    - "etwlogs"
   553                    - "none"
   554                Config:
   555                  type: "object"
   556                  additionalProperties:
   557                    type: "string"
   558            NetworkMode:
   559              type: "string"
   560              description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken
   561                as a custom network's name to which this container should connect to."
   562            PortBindings:
   563              type: "object"
   564              description: "A map of exposed container ports and the host port they should map to."
   565              additionalProperties:
   566                type: "object"
   567                properties:
   568                  HostIp:
   569                    type: "string"
   570                    description: "The host IP address"
   571                  HostPort:
   572                    type: "string"
   573                    description: "The host port number, as a string"
   574            RestartPolicy:
   575              $ref: "#/definitions/RestartPolicy"
   576            AutoRemove:
   577              type: "boolean"
   578              description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set."
   579            VolumeDriver:
   580              type: "string"
   581              description: "Driver that this container uses to mount volumes."
   582            VolumesFrom:
   583              type: "array"
   584              description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`."
   585              items:
   586                type: "string"
   587            Mounts:
   588              description: "Specification for mounts to be added to the container."
   589              type: "array"
   590              items:
   591                $ref: "#/definitions/Mount"
   592  
   593            # Applicable to UNIX platforms
   594            CapAdd:
   595              type: "array"
   596              description: "A list of kernel capabilities to add to the container."
   597              items:
   598                type: "string"
   599            CapDrop:
   600              type: "array"
   601              description: "A list of kernel capabilities to drop from the container."
   602              items:
   603                type: "string"
   604            Dns:
   605              type: "array"
   606              description: "A list of DNS servers for the container to use."
   607              items:
   608                type: "string"
   609            DnsOptions:
   610              type: "array"
   611              description: "A list of DNS options."
   612              items:
   613                type: "string"
   614            DnsSearch:
   615              type: "array"
   616              description: "A list of DNS search domains."
   617              items:
   618                type: "string"
   619            ExtraHosts:
   620              type: "array"
   621              description: |
   622                A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`.
   623              items:
   624                type: "string"
   625            GroupAdd:
   626              type: "array"
   627              description: "A list of additional groups that the container process will run as."
   628              items:
   629                type: "string"
   630            IpcMode:
   631              type: "string"
   632              description: "IPC namespace to use for the container."
   633            Cgroup:
   634              type: "string"
   635              description: "Cgroup to use for the container."
   636            Links:
   637              type: "array"
   638              description: "A list of links for the container in the form `container_name:alias`."
   639              items:
   640                type: "string"
   641            OomScoreAdj:
   642              type: "integer"
   643              description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
   644            PidMode:
   645              type: "string"
   646              description: |
   647                Set the PID (Process) Namespace mode for the container. It can be either:
   648  
   649                - `"container:<name|id>"`: joins another container's PID namespace
   650                - `"host"`: use the host's PID namespace inside the container
   651            Privileged:
   652              type: "boolean"
   653              description: "Gives the container full access to the host."
   654            PublishAllPorts:
   655              type: "boolean"
   656              description: "Allocates a random host port for all of a container's exposed ports."
   657            ReadonlyRootfs:
   658              type: "boolean"
   659              description: "Mount the container's root filesystem as read only."
   660            SecurityOpt:
   661              type: "array"
   662              description: "A list of string values to customize labels for MLS
   663              systems, such as SELinux."
   664              items:
   665                type: "string"
   666            StorageOpt:
   667              type: "object"
   668              description: |
   669                Storage driver options for this container, in the form `{"size": "120G"}`.
   670              additionalProperties:
   671                type: "string"
   672            Tmpfs:
   673              type: "object"
   674              description: |
   675                A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`.
   676              additionalProperties:
   677                type: "string"
   678            UTSMode:
   679              type: "string"
   680              description: "UTS namespace to use for the container."
   681            UsernsMode:
   682              type: "string"
   683              description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled."
   684            ShmSize:
   685              type: "integer"
   686              description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB."
   687              minimum: 0
   688            Sysctls:
   689              type: "object"
   690              description: |
   691                A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}`
   692              additionalProperties:
   693                type: "string"
   694            Runtime:
   695              type: "string"
   696              description: "Runtime to use with this container."
   697            # Applicable to Windows
   698            ConsoleSize:
   699              type: "array"
   700              description: "Initial console size, as an `[height, width]` array. (Windows only)"
   701              minItems: 2
   702              maxItems: 2
   703              items:
   704                type: "integer"
   705                minimum: 0
   706            Isolation:
   707              type: "string"
   708              description: "Isolation technology of the container. (Windows only)"
   709              enum:
   710                - "default"
   711                - "process"
   712                - "hyperv"
   713  
   714    ContainerConfig:
   715      description: "Configuration for a container that is portable between hosts"
   716      type: "object"
   717      properties:
   718        Hostname:
   719          description: "The hostname to use for the container, as a valid RFC 1123 hostname."
   720          type: "string"
   721        Domainname:
   722          description: "The domain name to use for the container."
   723          type: "string"
   724        User:
   725          description: "The user that commands are run as inside the container."
   726          type: "string"
   727        AttachStdin:
   728          description: "Whether to attach to `stdin`."
   729          type: "boolean"
   730          default: false
   731        AttachStdout:
   732          description: "Whether to attach to `stdout`."
   733          type: "boolean"
   734          default: true
   735        AttachStderr:
   736          description: "Whether to attach to `stderr`."
   737          type: "boolean"
   738          default: true
   739        ExposedPorts:
   740          description: |
   741            An object mapping ports to an empty object in the form:
   742  
   743            `{"<port>/<tcp|udp>": {}}`
   744          type: "object"
   745          additionalProperties:
   746            type: "object"
   747            enum:
   748              - {}
   749            default: {}
   750        Tty:
   751          description: "Attach standard streams to a TTY, including `stdin` if it is not closed."
   752          type: "boolean"
   753          default: false
   754        OpenStdin:
   755          description: "Open `stdin`"
   756          type: "boolean"
   757          default: false
   758        StdinOnce:
   759          description: "Close `stdin` after one attached client disconnects"
   760          type: "boolean"
   761          default: false
   762        Env:
   763          description: |
   764            A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.
   765          type: "array"
   766          items:
   767            type: "string"
   768        Cmd:
   769          description: "Command to run specified as a string or an array of strings."
   770          type:
   771            - "array"
   772            - "string"
   773          items:
   774            type: "string"
   775        Healthcheck:
   776          $ref: "#/definitions/HealthConfig"
   777        ArgsEscaped:
   778          description: "Command is already escaped (Windows only)"
   779          type: "boolean"
   780        Image:
   781          description: "The name of the image to use when creating the container"
   782          type: "string"
   783        Volumes:
   784          description: "An object mapping mount point paths inside the container to empty objects."
   785          type: "object"
   786          properties:
   787            additionalProperties:
   788              type: "object"
   789              enum:
   790                - {}
   791              default: {}
   792        WorkingDir:
   793          description: "The working directory for commands to run in."
   794          type: "string"
   795        Entrypoint:
   796          description: |
   797            The entry point for the container as a string or an array of strings.
   798  
   799            If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
   800          type:
   801            - "array"
   802            - "string"
   803          items:
   804            type: "string"
   805        NetworkDisabled:
   806          description: "Disable networking for the container."
   807          type: "boolean"
   808        MacAddress:
   809          description: "MAC address of the container."
   810          type: "string"
   811        OnBuild:
   812          description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`."
   813          type: "array"
   814          items:
   815            type: "string"
   816        Labels:
   817          description: "User-defined key/value metadata."
   818          type: "object"
   819          additionalProperties:
   820            type: "string"
   821        StopSignal:
   822          description: "Signal to stop a container as a string or unsigned integer."
   823          type: "string"
   824          default: "SIGTERM"
   825        StopTimeout:
   826          description: "Timeout to stop a container in seconds."
   827          type: "integer"
   828          default: 10
   829        Shell:
   830          description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell."
   831          type: "array"
   832          items:
   833            type: "string"
   834  
   835    NetworkConfig:
   836      description: "TODO: check is correct"
   837      type: "object"
   838      properties:
   839        Bridge:
   840          type: "string"
   841        Gateway:
   842          type: "string"
   843        Address:
   844          type: "string"
   845        IPPrefixLen:
   846          type: "integer"
   847        MacAddress:
   848          type: "string"
   849        PortMapping:
   850          type: "string"
   851        Ports:
   852          type: "array"
   853          items:
   854            $ref: "#/definitions/Port"
   855  
   856    GraphDriverData:
   857      description: "Information about a container's graph driver."
   858      type: "object"
   859      required: [Name, Data]
   860      properties:
   861        Name:
   862          type: "string"
   863          x-nullable: false
   864        Data:
   865          type: "object"
   866          x-nullable: false
   867          additionalProperties:
   868            type: "string"
   869  
   870    Image:
   871      type: "object"
   872      required:
   873        - Id
   874        - Parent
   875        - Comment
   876        - Created
   877        - Container
   878        - DockerVersion
   879        - Author
   880        - Architecture
   881        - Os
   882        - Size
   883        - VirtualSize
   884        - GraphDriver
   885        - RootFS
   886      properties:
   887        Id:
   888          type: "string"
   889          x-nullable: false
   890        RepoTags:
   891          type: "array"
   892          items:
   893            type: "string"
   894        RepoDigests:
   895          type: "array"
   896          items:
   897            type: "string"
   898        Parent:
   899          type: "string"
   900          x-nullable: false
   901        Comment:
   902          type: "string"
   903          x-nullable: false
   904        Created:
   905          type: "string"
   906          x-nullable: false
   907        Container:
   908          type: "string"
   909          x-nullable: false
   910        ContainerConfig:
   911          $ref: "#/definitions/ContainerConfig"
   912        DockerVersion:
   913          type: "string"
   914          x-nullable: false
   915        Author:
   916          type: "string"
   917          x-nullable: false
   918        Config:
   919          $ref: "#/definitions/ContainerConfig"
   920        Architecture:
   921          type: "string"
   922          x-nullable: false
   923        Os:
   924          type: "string"
   925          x-nullable: false
   926        OsVersion:
   927          type: "string"
   928        Size:
   929          type: "integer"
   930          format: "int64"
   931          x-nullable: false
   932        VirtualSize:
   933          type: "integer"
   934          format: "int64"
   935          x-nullable: false
   936        GraphDriver:
   937          $ref: "#/definitions/GraphDriverData"
   938        RootFS:
   939          type: "object"
   940          required: [Type]
   941          properties:
   942            Type:
   943              type: "string"
   944              x-nullable: false
   945            Layers:
   946              type: "array"
   947              items:
   948                type: "string"
   949            BaseLayer:
   950              type: "string"
   951        Metadata:
   952          type: "object"
   953          properties:
   954            LastTagTime:
   955              type: "string"
   956              format: "dateTime"
   957  
   958    ImageSummary:
   959      type: "object"
   960      required:
   961        - Id
   962        - ParentId
   963        - RepoTags
   964        - RepoDigests
   965        - Created
   966        - Size
   967        - SharedSize
   968        - VirtualSize
   969        - Labels
   970        - Containers
   971      properties:
   972        Id:
   973          type: "string"
   974          x-nullable: false
   975        ParentId:
   976          type: "string"
   977          x-nullable: false
   978        RepoTags:
   979          type: "array"
   980          x-nullable: false
   981          items:
   982            type: "string"
   983        RepoDigests:
   984          type: "array"
   985          x-nullable: false
   986          items:
   987            type: "string"
   988        Created:
   989          type: "integer"
   990          x-nullable: false
   991        Size:
   992          type: "integer"
   993          x-nullable: false
   994        SharedSize:
   995          type: "integer"
   996          x-nullable: false
   997        VirtualSize:
   998          type: "integer"
   999          x-nullable: false
  1000        Labels:
  1001          type: "object"
  1002          x-nullable: false
  1003          additionalProperties:
  1004            type: "string"
  1005        Containers:
  1006          x-nullable: false
  1007          type: "integer"
  1008  
  1009    AuthConfig:
  1010      type: "object"
  1011      properties:
  1012        username:
  1013          type: "string"
  1014        password:
  1015          type: "string"
  1016        email:
  1017          type: "string"
  1018        serveraddress:
  1019          type: "string"
  1020      example:
  1021        username: "hannibal"
  1022        password: "xxxx"
  1023        serveraddress: "https://index.docker.io/v1/"
  1024  
  1025    ProcessConfig:
  1026      type: "object"
  1027      properties:
  1028        privileged:
  1029          type: "boolean"
  1030        user:
  1031          type: "string"
  1032        tty:
  1033          type: "boolean"
  1034        entrypoint:
  1035          type: "string"
  1036        arguments:
  1037          type: "array"
  1038          items:
  1039            type: "string"
  1040  
  1041    Volume:
  1042      type: "object"
  1043      required: [Name, Driver, Mountpoint, Labels, Scope, Options]
  1044      properties:
  1045        Name:
  1046          type: "string"
  1047          description: "Name of the volume."
  1048          x-nullable: false
  1049        Driver:
  1050          type: "string"
  1051          description: "Name of the volume driver used by the volume."
  1052          x-nullable: false
  1053        Mountpoint:
  1054          type: "string"
  1055          description: "Mount path of the volume on the host."
  1056          x-nullable: false
  1057        CreatedAt:
  1058          type: "string"
  1059          format: "dateTime"
  1060          description: "Date/Time the volume was created."
  1061        Status:
  1062          type: "object"
  1063          description: |
  1064            Low-level details about the volume, provided by the volume driver.
  1065            Details are returned as a map with key/value pairs:
  1066            `{"key":"value","key2":"value2"}`.
  1067  
  1068            The `Status` field is optional, and is omitted if the volume driver
  1069            does not support this feature.
  1070          additionalProperties:
  1071            type: "object"
  1072        Labels:
  1073          type: "object"
  1074          description: "User-defined key/value metadata."
  1075          x-nullable: false
  1076          additionalProperties:
  1077            type: "string"
  1078        Scope:
  1079          type: "string"
  1080          description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level."
  1081          default: "local"
  1082          x-nullable: false
  1083          enum: ["local", "global"]
  1084        Options:
  1085          type: "object"
  1086          description: "The driver specific options used when creating the volume."
  1087          additionalProperties:
  1088            type: "string"
  1089        UsageData:
  1090          type: "object"
  1091          required: [Size, RefCount]
  1092          properties:
  1093            Size:
  1094              type: "integer"
  1095              description: "The disk space used by the volume (local driver only)"
  1096              default: -1
  1097              x-nullable: false
  1098            RefCount:
  1099              type: "integer"
  1100              default: -1
  1101              description: "The number of containers referencing this volume."
  1102              x-nullable: false
  1103  
  1104      example:
  1105        Name: "tardis"
  1106        Driver: "custom"
  1107        Mountpoint: "/var/lib/docker/volumes/tardis"
  1108        Status:
  1109          hello: "world"
  1110        Labels:
  1111          com.example.some-label: "some-value"
  1112          com.example.some-other-label: "some-other-value"
  1113        Scope: "local"
  1114        CreatedAt: "2016-06-07T20:31:11.853781916Z"
  1115  
  1116    Network:
  1117      type: "object"
  1118      properties:
  1119        Name:
  1120          type: "string"
  1121        Id:
  1122          type: "string"
  1123        Created:
  1124          type: "string"
  1125          format: "dateTime"
  1126        Scope:
  1127          type: "string"
  1128        Driver:
  1129          type: "string"
  1130        EnableIPv6:
  1131          type: "boolean"
  1132        IPAM:
  1133          $ref: "#/definitions/IPAM"
  1134        Internal:
  1135          type: "boolean"
  1136        Attachable:
  1137          type: "boolean"
  1138        Ingress:
  1139          type: "boolean"
  1140        Containers:
  1141          type: "object"
  1142          additionalProperties:
  1143            $ref: "#/definitions/NetworkContainer"
  1144        Options:
  1145          type: "object"
  1146          additionalProperties:
  1147            type: "string"
  1148        Labels:
  1149          type: "object"
  1150          additionalProperties:
  1151            type: "string"
  1152      example:
  1153        Name: "net01"
  1154        Id: "7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99"
  1155        Created: "2016-10-19T04:33:30.360899459Z"
  1156        Scope: "local"
  1157        Driver: "bridge"
  1158        EnableIPv6: false
  1159        IPAM:
  1160          Driver: "default"
  1161          Config:
  1162            - Subnet: "172.19.0.0/16"
  1163              Gateway: "172.19.0.1"
  1164          Options:
  1165            foo: "bar"
  1166        Internal: false
  1167        Attachable: false
  1168        Ingress: false
  1169        Containers:
  1170          19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c:
  1171            Name: "test"
  1172            EndpointID: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a"
  1173            MacAddress: "02:42:ac:13:00:02"
  1174            IPv4Address: "172.19.0.2/16"
  1175            IPv6Address: ""
  1176        Options:
  1177          com.docker.network.bridge.default_bridge: "true"
  1178          com.docker.network.bridge.enable_icc: "true"
  1179          com.docker.network.bridge.enable_ip_masquerade: "true"
  1180          com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
  1181          com.docker.network.bridge.name: "docker0"
  1182          com.docker.network.driver.mtu: "1500"
  1183        Labels:
  1184          com.example.some-label: "some-value"
  1185          com.example.some-other-label: "some-other-value"
  1186    IPAM:
  1187      type: "object"
  1188      properties:
  1189        Driver:
  1190          description: "Name of the IPAM driver to use."
  1191          type: "string"
  1192          default: "default"
  1193        Config:
  1194          description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`"
  1195          type: "array"
  1196          items:
  1197            type: "object"
  1198            additionalProperties:
  1199              type: "string"
  1200        Options:
  1201          description: "Driver-specific options, specified as a map."
  1202          type: "array"
  1203          items:
  1204            type: "object"
  1205            additionalProperties:
  1206              type: "string"
  1207    NetworkContainer:
  1208      type: "object"
  1209      properties:
  1210        Name:
  1211          type: "string"
  1212        EndpointID:
  1213          type: "string"
  1214        MacAddress:
  1215          type: "string"
  1216        IPv4Address:
  1217          type: "string"
  1218        IPv6Address:
  1219          type: "string"
  1220  
  1221    BuildInfo:
  1222      type: "object"
  1223      properties:
  1224        id:
  1225          type: "string"
  1226        stream:
  1227          type: "string"
  1228        error:
  1229          type: "string"
  1230        errorDetail:
  1231          $ref: "#/definitions/ErrorDetail"
  1232        status:
  1233          type: "string"
  1234        progress:
  1235          type: "string"
  1236        progressDetail:
  1237          $ref: "#/definitions/ProgressDetail"
  1238  
  1239    CreateImageInfo:
  1240      type: "object"
  1241      properties:
  1242        error:
  1243          type: "string"
  1244        status:
  1245          type: "string"
  1246        progress:
  1247          type: "string"
  1248        progressDetail:
  1249          $ref: "#/definitions/ProgressDetail"
  1250  
  1251    PushImageInfo:
  1252      type: "object"
  1253      properties:
  1254        error:
  1255          type: "string"
  1256        status:
  1257          type: "string"
  1258        progress:
  1259          type: "string"
  1260        progressDetail:
  1261          $ref: "#/definitions/ProgressDetail"
  1262    ErrorDetail:
  1263      type: "object"
  1264      properties:
  1265        code:
  1266          type: "integer"
  1267        message:
  1268          type: "string"
  1269    ProgressDetail:
  1270      type: "object"
  1271      properties:
  1272        code:
  1273          type: "integer"
  1274        message:
  1275          type: "integer"
  1276  
  1277    ErrorResponse:
  1278      description: "Represents an error."
  1279      type: "object"
  1280      required: ["message"]
  1281      properties:
  1282        message:
  1283          description: "The error message."
  1284          type: "string"
  1285          x-nullable: false
  1286      example:
  1287        message: "Something went wrong."
  1288  
  1289    IdResponse:
  1290      description: "Response to an API call that returns just an Id"
  1291      type: "object"
  1292      required: ["Id"]
  1293      properties:
  1294        Id:
  1295          description: "The id of the newly created object."
  1296          type: "string"
  1297          x-nullable: false
  1298  
  1299    EndpointSettings:
  1300      description: "Configuration for a network endpoint."
  1301      type: "object"
  1302      properties:
  1303        IPAMConfig:
  1304          description: "IPAM configurations for the endpoint"
  1305          type: "object"
  1306          properties:
  1307            IPv4Address:
  1308              type: "string"
  1309            IPv6Address:
  1310              type: "string"
  1311            LinkLocalIPs:
  1312              type: "array"
  1313              items:
  1314                type: "string"
  1315        Links:
  1316          type: "array"
  1317          items:
  1318            type: "string"
  1319        Aliases:
  1320          type: "array"
  1321          items:
  1322            type: "string"
  1323        NetworkID:
  1324          type: "string"
  1325        EndpointID:
  1326          type: "string"
  1327        Gateway:
  1328          type: "string"
  1329        IPAddress:
  1330          type: "string"
  1331        IPPrefixLen:
  1332          type: "integer"
  1333        IPv6Gateway:
  1334          type: "string"
  1335        GlobalIPv6Address:
  1336          type: "string"
  1337        GlobalIPv6PrefixLen:
  1338          type: "integer"
  1339          format: "int64"
  1340        MacAddress:
  1341          type: "string"
  1342  
  1343    PluginMount:
  1344      type: "object"
  1345      x-nullable: false
  1346      required: [Name, Description, Settable, Source, Destination, Type, Options]
  1347      properties:
  1348        Name:
  1349          type: "string"
  1350          x-nullable: false
  1351          example: "some-mount"
  1352        Description:
  1353          type: "string"
  1354          x-nullable: false
  1355          example: "This is a mount that's used by the plugin."
  1356        Settable:
  1357          type: "array"
  1358          items:
  1359            type: "string"
  1360        Source:
  1361          type: "string"
  1362          example: "/var/lib/docker/plugins/"
  1363        Destination:
  1364          type: "string"
  1365          x-nullable: false
  1366          example: "/mnt/state"
  1367        Type:
  1368          type: "string"
  1369          x-nullable: false
  1370          example: "bind"
  1371        Options:
  1372          type: "array"
  1373          items:
  1374            type: "string"
  1375          example:
  1376            - "rbind"
  1377            - "rw"
  1378    PluginDevice:
  1379      type: "object"
  1380      required: [Name, Description, Settable, Path]
  1381      x-nullable: false
  1382      properties:
  1383        Name:
  1384          type: "string"
  1385          x-nullable: false
  1386        Description:
  1387          type: "string"
  1388          x-nullable: false
  1389        Settable:
  1390          type: "array"
  1391          items:
  1392            type: "string"
  1393        Path:
  1394          type: "string"
  1395          example: "/dev/fuse"
  1396  
  1397    PluginEnv:
  1398      type: "object"
  1399      x-nullable: false
  1400      required: [Name, Description, Settable, Value]
  1401      properties:
  1402        Name:
  1403          x-nullable: false
  1404          type: "string"
  1405        Description:
  1406          x-nullable: false
  1407          type: "string"
  1408        Settable:
  1409          type: "array"
  1410          items:
  1411            type: "string"
  1412        Value:
  1413          type: "string"
  1414  
  1415    PluginInterfaceType:
  1416      type: "object"
  1417      x-nullable: false
  1418      required: [Prefix, Capability, Version]
  1419      properties:
  1420        Prefix:
  1421          type: "string"
  1422          x-nullable: false
  1423        Capability:
  1424          type: "string"
  1425          x-nullable: false
  1426        Version:
  1427          type: "string"
  1428          x-nullable: false
  1429  
  1430    Plugin:
  1431      description: "A plugin for the Engine API"
  1432      type: "object"
  1433      required: [Settings, Enabled, Config, Name]
  1434      properties:
  1435        Id:
  1436          type: "string"
  1437          example: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078"
  1438        Name:
  1439          type: "string"
  1440          x-nullable: false
  1441          example: "tiborvass/sample-volume-plugin"
  1442        Enabled:
  1443          description: "True if the plugin is running. False if the plugin is not running, only installed."
  1444          type: "boolean"
  1445          x-nullable: false
  1446          example: true
  1447        Settings:
  1448          description: "Settings that can be modified by users."
  1449          type: "object"
  1450          x-nullable: false
  1451          required: [Args, Devices, Env, Mounts]
  1452          properties:
  1453            Mounts:
  1454              type: "array"
  1455              items:
  1456                $ref: "#/definitions/PluginMount"
  1457            Env:
  1458              type: "array"
  1459              items:
  1460                type: "string"
  1461              example:
  1462                - "DEBUG=0"
  1463            Args:
  1464              type: "array"
  1465              items:
  1466                type: "string"
  1467            Devices:
  1468              type: "array"
  1469              items:
  1470                $ref: "#/definitions/PluginDevice"
  1471        PluginReference:
  1472          description: "plugin remote reference used to push/pull the plugin"
  1473          type: "string"
  1474          x-nullable: false
  1475          example: "localhost:5000/tiborvass/sample-volume-plugin:latest"
  1476        Config:
  1477          description: "The config of a plugin."
  1478          type: "object"
  1479          x-nullable: false
  1480          required:
  1481            - Description
  1482            - Documentation
  1483            - Interface
  1484            - Entrypoint
  1485            - WorkDir
  1486            - Network
  1487            - Linux
  1488            - PidHost
  1489            - PropagatedMount
  1490            - IpcHost
  1491            - Mounts
  1492            - Env
  1493            - Args
  1494          properties:
  1495            DockerVersion:
  1496              description: "Docker Version used to create the plugin"
  1497              type: "string"
  1498              x-nullable: false
  1499              example: "17.06.0-ce"
  1500            Description:
  1501              type: "string"
  1502              x-nullable: false
  1503              example: "A sample volume plugin for Docker"
  1504            Documentation:
  1505              type: "string"
  1506              x-nullable: false
  1507              example: "https://docs.docker.com/engine/extend/plugins/"
  1508            Interface:
  1509              description: "The interface between Docker and the plugin"
  1510              x-nullable: false
  1511              type: "object"
  1512              required: [Types, Socket]
  1513              properties:
  1514                Types:
  1515                  type: "array"
  1516                  items:
  1517                    $ref: "#/definitions/PluginInterfaceType"
  1518                  example:
  1519                    - "docker.volumedriver/1.0"
  1520                Socket:
  1521                  type: "string"
  1522                  x-nullable: false
  1523                  example: "plugins.sock"
  1524            Entrypoint:
  1525              type: "array"
  1526              items:
  1527                type: "string"
  1528              example:
  1529                - "/usr/bin/sample-volume-plugin"
  1530                - "/data"
  1531            WorkDir:
  1532              type: "string"
  1533              x-nullable: false
  1534              example: "/bin/"
  1535            User:
  1536              type: "object"
  1537              x-nullable: false
  1538              properties:
  1539                UID:
  1540                  type: "integer"
  1541                  format: "uint32"
  1542                  example: 1000
  1543                GID:
  1544                  type: "integer"
  1545                  format: "uint32"
  1546                  example: 1000
  1547            Network:
  1548              type: "object"
  1549              x-nullable: false
  1550              required: [Type]
  1551              properties:
  1552                Type:
  1553                  x-nullable: false
  1554                  type: "string"
  1555                  example: "host"
  1556            Linux:
  1557              type: "object"
  1558              x-nullable: false
  1559              required: [Capabilities, AllowAllDevices, Devices]
  1560              properties:
  1561                Capabilities:
  1562                  type: "array"
  1563                  items:
  1564                    type: "string"
  1565                  example:
  1566                    - "CAP_SYS_ADMIN"
  1567                    - "CAP_SYSLOG"
  1568                AllowAllDevices:
  1569                  type: "boolean"
  1570                  x-nullable: false
  1571                  example: false
  1572                Devices:
  1573                  type: "array"
  1574                  items:
  1575                    $ref: "#/definitions/PluginDevice"
  1576            PropagatedMount:
  1577              type: "string"
  1578              x-nullable: false
  1579              example: "/mnt/volumes"
  1580            IpcHost:
  1581              type: "boolean"
  1582              x-nullable: false
  1583              example: false
  1584            PidHost:
  1585              type: "boolean"
  1586              x-nullable: false
  1587              example: false
  1588            Mounts:
  1589              type: "array"
  1590              items:
  1591                $ref: "#/definitions/PluginMount"
  1592            Env:
  1593              type: "array"
  1594              items:
  1595                $ref: "#/definitions/PluginEnv"
  1596              example:
  1597                - Name: "DEBUG"
  1598                  Description: "If set, prints debug messages"
  1599                  Settable: null
  1600                  Value: "0"
  1601            Args:
  1602              type: "object"
  1603              x-nullable: false
  1604              required: [Name, Description, Settable, Value]
  1605              properties:
  1606                Name:
  1607                  x-nullable: false
  1608                  type: "string"
  1609                  example: "args"
  1610                Description:
  1611                  x-nullable: false
  1612                  type: "string"
  1613                  example: "command line arguments"
  1614                Settable:
  1615                  type: "array"
  1616                  items:
  1617                    type: "string"
  1618                Value:
  1619                  type: "array"
  1620                  items:
  1621                    type: "string"
  1622            rootfs:
  1623              type: "object"
  1624              properties:
  1625                type:
  1626                  type: "string"
  1627                  example: "layers"
  1628                diff_ids:
  1629                  type: "array"
  1630                  items:
  1631                    type: "string"
  1632                  example:
  1633                    - "sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887"
  1634                    - "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"
  1635  
  1636    ObjectVersion:
  1637      description: |
  1638        The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
  1639        The client must send the version number along with the modified specification when updating these objects.
  1640        This approach ensures safe concurrency and determinism in that the change on the object
  1641        may not be applied if the version number has changed from the last read. In other words,
  1642        if two update requests specify the same base version, only one of the requests can succeed.
  1643        As a result, two separate update requests that happen at the same time will not
  1644        unintentionally overwrite each other.
  1645      type: "object"
  1646      properties:
  1647        Index:
  1648          type: "integer"
  1649          format: "int64"
  1650  
  1651    NodeSpec:
  1652      type: "object"
  1653      properties:
  1654        Name:
  1655          description: "Name for the node."
  1656          type: "string"
  1657        Labels:
  1658          description: "User-defined key/value metadata."
  1659          type: "object"
  1660          additionalProperties:
  1661            type: "string"
  1662        Role:
  1663          description: "Role of the node."
  1664          type: "string"
  1665          enum:
  1666            - "worker"
  1667            - "manager"
  1668        Availability:
  1669          description: "Availability of the node."
  1670          type: "string"
  1671          enum:
  1672            - "active"
  1673            - "pause"
  1674            - "drain"
  1675      example:
  1676        Availability: "active"
  1677        Name: "node-name"
  1678        Role: "manager"
  1679        Labels:
  1680          foo: "bar"
  1681    Node:
  1682      type: "object"
  1683      properties:
  1684        ID:
  1685          type: "string"
  1686        Version:
  1687          $ref: "#/definitions/ObjectVersion"
  1688        CreatedAt:
  1689          type: "string"
  1690          format: "dateTime"
  1691        UpdatedAt:
  1692          type: "string"
  1693          format: "dateTime"
  1694        Spec:
  1695          $ref: "#/definitions/NodeSpec"
  1696        Description:
  1697          type: "object"
  1698          properties:
  1699            Hostname:
  1700              type: "string"
  1701            Platform:
  1702              type: "object"
  1703              properties:
  1704                Architecture:
  1705                  type: "string"
  1706                OS:
  1707                  type: "string"
  1708            Resources:
  1709              type: "object"
  1710              properties:
  1711                NanoCPUs:
  1712                  type: "integer"
  1713                  format: "int64"
  1714                MemoryBytes:
  1715                  type: "integer"
  1716                  format: "int64"
  1717            Engine:
  1718              type: "object"
  1719              properties:
  1720                EngineVersion:
  1721                  type: "string"
  1722                Labels:
  1723                  type: "object"
  1724                  additionalProperties:
  1725                    type: "string"
  1726                Plugins:
  1727                  type: "array"
  1728                  items:
  1729                    type: "object"
  1730                    properties:
  1731                      Type:
  1732                        type: "string"
  1733                      Name:
  1734                        type: "string"
  1735            TLSInfo:
  1736              $ref: "#/definitions/SwarmSpec"
  1737      example:
  1738        ID: "24ifsmvkjbyhk"
  1739        Version:
  1740          Index: 8
  1741        CreatedAt: "2016-06-07T20:31:11.853781916Z"
  1742        UpdatedAt: "2016-06-07T20:31:11.999868824Z"
  1743        Spec:
  1744          Name: "my-node"
  1745          Role: "manager"
  1746          Availability: "active"
  1747          Labels:
  1748            foo: "bar"
  1749        Description:
  1750          Hostname: "bf3067039e47"
  1751          Platform:
  1752            Architecture: "x86_64"
  1753            OS: "linux"
  1754          Resources:
  1755            NanoCPUs: 4000000000
  1756            MemoryBytes: 8272408576
  1757          Engine:
  1758            EngineVersion: "17.04.0"
  1759            Labels:
  1760              foo: "bar"
  1761            Plugins:
  1762              - Type: "Volume"
  1763                Name: "local"
  1764              - Type: "Network"
  1765                Name: "bridge"
  1766              - Type: "Network"
  1767                Name: "null"
  1768              - Type: "Network"
  1769                Name: "overlay"
  1770        Status:
  1771          State: "ready"
  1772          Addr: "172.17.0.2"
  1773        ManagerStatus:
  1774          Leader: true
  1775          Reachability: "reachable"
  1776          Addr: "172.17.0.2:2377"
  1777        TLSInfo:
  1778          TrustRoot: |
  1779            -----BEGIN CERTIFICATE-----
  1780            MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
  1781            EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
  1782            MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
  1783            A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
  1784            3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
  1785            Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
  1786            PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
  1787            pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
  1788            -----END CERTIFICATE-----
  1789          CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
  1790          CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
  1791    TLSInfo:
  1792      description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
  1793      type: "object"
  1794      properties:
  1795        TrustRoot:
  1796          description: "The root CA certificate(s) that are used to validate leaf TLS certificates"
  1797          type: "string"
  1798        CertIssuerSubject:
  1799          description: "The base64-url-safe-encoded raw subject bytes of the issuer"
  1800          type: "string"
  1801        CertIssuerPublicKey:
  1802          description: "The base64-url-safe-encoded raw public key bytes of the issuer"
  1803          type: "string"
  1804      example:
  1805        TrustRoot: |
  1806          -----BEGIN CERTIFICATE-----
  1807          MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
  1808          EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
  1809          MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
  1810          A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
  1811          3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
  1812          Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
  1813          PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
  1814          pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
  1815          -----END CERTIFICATE-----
  1816        CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
  1817        CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
  1818    SwarmSpec:
  1819      description: "User modifiable swarm configuration."
  1820      type: "object"
  1821      properties:
  1822        Name:
  1823          description: "Name of the swarm."
  1824          type: "string"
  1825        Labels:
  1826          description: "User-defined key/value metadata."
  1827          type: "object"
  1828          additionalProperties:
  1829            type: "string"
  1830        Orchestration:
  1831          description: "Orchestration configuration."
  1832          type: "object"
  1833          properties:
  1834            TaskHistoryRetentionLimit:
  1835              description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
  1836              type: "integer"
  1837              format: "int64"
  1838        Raft:
  1839          description: "Raft configuration."
  1840          type: "object"
  1841          properties:
  1842            SnapshotInterval:
  1843              description: "The number of log entries between snapshots."
  1844              type: "integer"
  1845              format: "int64"
  1846            KeepOldSnapshots:
  1847              description: "The number of snapshots to keep beyond the current snapshot."
  1848              type: "integer"
  1849              format: "int64"
  1850            LogEntriesForSlowFollowers:
  1851              description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
  1852              type: "integer"
  1853              format: "int64"
  1854            ElectionTick:
  1855              description: |
  1856                The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.
  1857  
  1858                A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
  1859              type: "integer"
  1860            HeartbeatTick:
  1861              description: |
  1862                The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
  1863  
  1864                A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
  1865              type: "integer"
  1866        Dispatcher:
  1867          description: "Dispatcher configuration."
  1868          type: "object"
  1869          properties:
  1870            HeartbeatPeriod:
  1871              description: "The delay for an agent to send a heartbeat to the dispatcher."
  1872              type: "integer"
  1873              format: "int64"
  1874        CAConfig:
  1875          description: "CA configuration."
  1876          type: "object"
  1877          properties:
  1878            NodeCertExpiry:
  1879              description: "The duration node certificates are issued for."
  1880              type: "integer"
  1881              format: "int64"
  1882            ExternalCAs:
  1883              description: "Configuration for forwarding signing requests to an external certificate authority."
  1884              type: "array"
  1885              items:
  1886                type: "object"
  1887                properties:
  1888                  Protocol:
  1889                    description: "Protocol for communication with the external CA (currently only `cfssl` is supported)."
  1890                    type: "string"
  1891                    enum:
  1892                      - "cfssl"
  1893                    default: "cfssl"
  1894                  URL:
  1895                    description: "URL where certificate signing requests should be sent."
  1896                    type: "string"
  1897                  Options:
  1898                    description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver."
  1899                    type: "object"
  1900                    additionalProperties:
  1901                      type: "string"
  1902                  CACert:
  1903                    description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)."
  1904                    type: "string"
  1905            SigningCACert:
  1906              description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format."
  1907              type: "string"
  1908            SigningCAKey:
  1909              description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format."
  1910              type: "string"
  1911            ForceRotate:
  1912              description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"
  1913        EncryptionConfig:
  1914          description: "Parameters related to encryption-at-rest."
  1915          type: "object"
  1916          properties:
  1917            AutoLockManagers:
  1918              description: "If set, generate a key and use it to lock data stored on the managers."
  1919              type: "boolean"
  1920        TaskDefaults:
  1921          description: "Defaults for creating tasks in this cluster."
  1922          type: "object"
  1923          properties:
  1924            LogDriver:
  1925              description: |
  1926                The log driver to use for tasks created in the orchestrator if unspecified by a service.
  1927  
  1928                Updating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated.
  1929              type: "object"
  1930              properties:
  1931                Name:
  1932                  type: "string"
  1933                Options:
  1934                  type: "object"
  1935                  additionalProperties:
  1936                    type: "string"
  1937      example:
  1938        Name: "default"
  1939        Orchestration:
  1940          TaskHistoryRetentionLimit: 10
  1941        Raft:
  1942          SnapshotInterval: 10000
  1943          LogEntriesForSlowFollowers: 500
  1944          HeartbeatTick: 1
  1945          ElectionTick: 3
  1946        Dispatcher:
  1947          HeartbeatPeriod: 5000000000
  1948        CAConfig:
  1949          NodeCertExpiry: 7776000000000000
  1950        JoinTokens:
  1951          Worker: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"
  1952          Manager: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
  1953        EncryptionConfig:
  1954          AutoLockManagers: false
  1955    # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but
  1956    # without `JoinTokens`.
  1957    ClusterInfo:
  1958      type: "object"
  1959      properties:
  1960        ID:
  1961          description: "The ID of the swarm."
  1962          type: "string"
  1963        Version:
  1964          $ref: "#/definitions/ObjectVersion"
  1965        CreatedAt:
  1966          type: "string"
  1967          format: "dateTime"
  1968        UpdatedAt:
  1969          type: "string"
  1970          format: "dateTime"
  1971        Spec:
  1972          $ref: "#/definitions/SwarmSpec"
  1973        TLSInfo:
  1974          $ref: "#/definitions/TLSInfo"
  1975        RootRotationInProgress:
  1976          description: "Whether there is currently a root CA rotation in progress for the swarm"
  1977          type: "boolean"
  1978    TaskSpec:
  1979      description: "User modifiable task configuration."
  1980      type: "object"
  1981      properties:
  1982        PluginSpec:
  1983          type: "object"
  1984          description: "Invalid when specified with `ContainerSpec`. *(Experimental release only.)*"
  1985          properties:
  1986            Name:
  1987              description: "The name or 'alias' to use for the plugin."
  1988              type: "string"
  1989            Remote:
  1990              description: "The plugin image reference to use."
  1991              type: "string"
  1992            Disabled:
  1993              description: "Disable the plugin once scheduled."
  1994              type: "boolean"
  1995            PluginPrivilege:
  1996              type: "array"
  1997              items:
  1998                description: "Describes a permission accepted by the user upon installing the plugin."
  1999                type: "object"
  2000                properties:
  2001                  Name:
  2002                    type: "string"
  2003                  Description:
  2004                    type: "string"
  2005                  Value:
  2006                    type: "array"
  2007                    items:
  2008                      type: "string"
  2009        ContainerSpec:
  2010          type: "object"
  2011          description: "Invalid when specified with `PluginSpec`."
  2012          properties:
  2013            Image:
  2014              description: "The image name to use for the container"
  2015              type: "string"
  2016            Labels:
  2017              description: "User-defined key/value data."
  2018              type: "object"
  2019              additionalProperties:
  2020                type: "string"
  2021            Command:
  2022              description: "The command to be run in the image."
  2023              type: "array"
  2024              items:
  2025                type: "string"
  2026            Args:
  2027              description: "Arguments to the command."
  2028              type: "array"
  2029              items:
  2030                type: "string"
  2031            Hostname:
  2032              description: "The hostname to use for the container, as a valid RFC 1123 hostname."
  2033              type: "string"
  2034            Env:
  2035              description: "A list of environment variables in the form `VAR=value`."
  2036              type: "array"
  2037              items:
  2038                type: "string"
  2039            Dir:
  2040              description: "The working directory for commands to run in."
  2041              type: "string"
  2042            User:
  2043              description: "The user inside the container."
  2044              type: "string"
  2045            Groups:
  2046              type: "array"
  2047              description: "A list of additional groups that the container process will run as."
  2048              items:
  2049                type: "string"
  2050            Privileges:
  2051              type: "object"
  2052              description: "Security options for the container"
  2053              properties:
  2054                CredentialSpec:
  2055                  type: "object"
  2056                  description: "CredentialSpec for managed service account (Windows only)"
  2057                  properties:
  2058                    File:
  2059                      type: "string"
  2060                      description: |
  2061                        Load credential spec from this file. The file is read by the daemon, and must be present in the
  2062                        `CredentialSpecs` subdirectory in the docker data directory, which defaults to
  2063                        `C:\ProgramData\Docker\` on Windows.
  2064  
  2065                        For example, specifying `spec.json` loads `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
  2066  
  2067                        <p><br /></p>
  2068  
  2069                        > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
  2070                    Registry:
  2071                      type: "string"
  2072                      description: |
  2073                        Load credential spec from this value in the Windows registry. The specified registry value must be
  2074                        located in:
  2075  
  2076                        `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
  2077  
  2078                        <p><br /></p>
  2079  
  2080  
  2081                        > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
  2082                SELinuxContext:
  2083                  type: "object"
  2084                  description: "SELinux labels of the container"
  2085                  properties:
  2086                    Disable:
  2087                      type: "boolean"
  2088                      description: "Disable SELinux"
  2089                    User:
  2090                      type: "string"
  2091                      description: "SELinux user label"
  2092                    Role:
  2093                      type: "string"
  2094                      description: "SELinux role label"
  2095                    Type:
  2096                      type: "string"
  2097                      description: "SELinux type label"
  2098                    Level:
  2099                      type: "string"
  2100                      description: "SELinux level label"
  2101            TTY:
  2102              description: "Whether a pseudo-TTY should be allocated."
  2103              type: "boolean"
  2104            OpenStdin:
  2105              description: "Open `stdin`"
  2106              type: "boolean"
  2107            ReadOnly:
  2108              description: "Mount the container's root filesystem as read only."
  2109              type: "boolean"
  2110            Mounts:
  2111              description: "Specification for mounts to be added to containers created as part of the service."
  2112              type: "array"
  2113              items:
  2114                $ref: "#/definitions/Mount"
  2115            StopSignal:
  2116              description: "Signal to stop the container."
  2117              type: "string"
  2118            StopGracePeriod:
  2119              description: "Amount of time to wait for the container to terminate before forcefully killing it."
  2120              type: "integer"
  2121              format: "int64"
  2122            HealthCheck:
  2123              $ref: "#/definitions/HealthConfig"
  2124            Hosts:
  2125              type: "array"
  2126              description: |
  2127                A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.
  2128                The format of extra hosts on swarmkit is specified in:
  2129                http://man7.org/linux/man-pages/man5/hosts.5.html
  2130                  IP_address canonical_hostname [aliases...]
  2131              items:
  2132                type: "string"
  2133            DNSConfig:
  2134              description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)."
  2135              type: "object"
  2136              properties:
  2137                Nameservers:
  2138                  description: "The IP addresses of the name servers."
  2139                  type: "array"
  2140                  items:
  2141                    type: "string"
  2142                Search:
  2143                  description: "A search list for host-name lookup."
  2144                  type: "array"
  2145                  items:
  2146                    type: "string"
  2147                Options:
  2148                  description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)."
  2149                  type: "array"
  2150                  items:
  2151                    type: "string"
  2152            Secrets:
  2153              description: "Secrets contains references to zero or more secrets that will be exposed to the service."
  2154              type: "array"
  2155              items:
  2156                type: "object"
  2157                properties:
  2158                  File:
  2159                    description: "File represents a specific target that is backed by a file."
  2160                    type: "object"
  2161                    properties:
  2162                      Name:
  2163                        description: "Name represents the final filename in the filesystem."
  2164                        type: "string"
  2165                      UID:
  2166                        description: "UID represents the file UID."
  2167                        type: "string"
  2168                      GID:
  2169                        description: "GID represents the file GID."
  2170                        type: "string"
  2171                      Mode:
  2172                        description: "Mode represents the FileMode of the file."
  2173                        type: "integer"
  2174                        format: "uint32"
  2175                  SecretID:
  2176                    description: "SecretID represents the ID of the specific secret that we're referencing."
  2177                    type: "string"
  2178                  SecretName:
  2179                    description: |
  2180                      SecretName is the name of the secret that this references, but this is just provided for
  2181                      lookup/display purposes. The secret in the reference will be identified by its ID.
  2182                    type: "string"
  2183            Configs:
  2184              description: "Configs contains references to zero or more configs that will be exposed to the service."
  2185              type: "array"
  2186              items:
  2187                type: "object"
  2188                properties:
  2189                  File:
  2190                    description: "File represents a specific target that is backed by a file."
  2191                    type: "object"
  2192                    properties:
  2193                      Name:
  2194                        description: "Name represents the final filename in the filesystem."
  2195                        type: "string"
  2196                      UID:
  2197                        description: "UID represents the file UID."
  2198                        type: "string"
  2199                      GID:
  2200                        description: "GID represents the file GID."
  2201                        type: "string"
  2202                      Mode:
  2203                        description: "Mode represents the FileMode of the file."
  2204                        type: "integer"
  2205                        format: "uint32"
  2206                  ConfigID:
  2207                    description: "ConfigID represents the ID of the specific config that we're referencing."
  2208                    type: "string"
  2209                  ConfigName:
  2210                    description: |
  2211                      ConfigName is the name of the config that this references, but this is just provided for
  2212                      lookup/display purposes. The config in the reference will be identified by its ID.
  2213                    type: "string"
  2214  
  2215        Resources:
  2216          description: "Resource requirements which apply to each individual container created as part of the service."
  2217          type: "object"
  2218          properties:
  2219            Limits:
  2220              description: "Define resources limits."
  2221              type: "object"
  2222              properties:
  2223                NanoCPUs:
  2224                  description: "CPU limit in units of 10<sup>-9</sup> CPU shares."
  2225                  type: "integer"
  2226                  format: "int64"
  2227                MemoryBytes:
  2228                  description: "Memory limit in Bytes."
  2229                  type: "integer"
  2230                  format: "int64"
  2231            Reservation:
  2232              description: "Define resources reservation."
  2233              properties:
  2234                NanoCPUs:
  2235                  description: "CPU reservation in units of 10<sup>-9</sup> CPU shares."
  2236                  type: "integer"
  2237                  format: "int64"
  2238                MemoryBytes:
  2239                  description: "Memory reservation in Bytes."
  2240                  type: "integer"
  2241                  format: "int64"
  2242        RestartPolicy:
  2243          description: "Specification for the restart policy which applies to containers created as part of this service."
  2244          type: "object"
  2245          properties:
  2246            Condition:
  2247              description: "Condition for restart."
  2248              type: "string"
  2249              enum:
  2250                - "none"
  2251                - "on-failure"
  2252                - "any"
  2253            Delay:
  2254              description: "Delay between restart attempts."
  2255              type: "integer"
  2256              format: "int64"
  2257            MaxAttempts:
  2258              description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)."
  2259              type: "integer"
  2260              format: "int64"
  2261              default: 0
  2262            Window:
  2263              description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)."
  2264              type: "integer"
  2265              format: "int64"
  2266              default: 0
  2267        Placement:
  2268          type: "object"
  2269          properties:
  2270            Constraints:
  2271              description: "An array of constraints."
  2272              type: "array"
  2273              items:
  2274                type: "string"
  2275            Preferences:
  2276              description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence."
  2277              type: "array"
  2278              items:
  2279                type: "object"
  2280                properties:
  2281                  Spread:
  2282                    type: "object"
  2283                    properties:
  2284                      SpreadDescriptor:
  2285                        description: "label descriptor, such as engine.labels.az"
  2286                        type: "string"
  2287            Platforms:
  2288              description: "An array of supported platforms."
  2289              type: "array"
  2290              items:
  2291                type: "object"
  2292                properties:
  2293                  Architecture:
  2294                    type: "string"
  2295                  OS:
  2296                    type: "string"
  2297        ForceUpdate:
  2298          description: "A counter that triggers an update even if no relevant parameters have been changed."
  2299          type: "integer"
  2300        Runtime:
  2301          description: "Runtime is the type of runtime specified for the task executor."
  2302          type: "string"
  2303        Networks:
  2304          type: "array"
  2305          items:
  2306            type: "object"
  2307            properties:
  2308              Target:
  2309                type: "string"
  2310              Aliases:
  2311                type: "array"
  2312                items:
  2313                  type: "string"
  2314        LogDriver:
  2315          description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified."
  2316          type: "object"
  2317          properties:
  2318            Name:
  2319              type: "string"
  2320            Options:
  2321              type: "object"
  2322              additionalProperties:
  2323                type: "string"
  2324    TaskState:
  2325      type: "string"
  2326      enum:
  2327        - "new"
  2328        - "allocated"
  2329        - "pending"
  2330        - "assigned"
  2331        - "accepted"
  2332        - "preparing"
  2333        - "ready"
  2334        - "starting"
  2335        - "running"
  2336        - "complete"
  2337        - "shutdown"
  2338        - "failed"
  2339        - "rejected"
  2340    Task:
  2341      type: "object"
  2342      properties:
  2343        ID:
  2344          description: "The ID of the task."
  2345          type: "string"
  2346        Version:
  2347          $ref: "#/definitions/ObjectVersion"
  2348        CreatedAt:
  2349          type: "string"
  2350          format: "dateTime"
  2351        UpdatedAt:
  2352          type: "string"
  2353          format: "dateTime"
  2354        Name:
  2355          description: "Name of the task."
  2356          type: "string"
  2357        Labels:
  2358          description: "User-defined key/value metadata."
  2359          type: "object"
  2360          additionalProperties:
  2361            type: "string"
  2362        Spec:
  2363          $ref: "#/definitions/TaskSpec"
  2364        ServiceID:
  2365          description: "The ID of the service this task is part of."
  2366          type: "string"
  2367        Slot:
  2368          type: "integer"
  2369        NodeID:
  2370          description: "The ID of the node that this task is on."
  2371          type: "string"
  2372        Status:
  2373          type: "object"
  2374          properties:
  2375            Timestamp:
  2376              type: "string"
  2377              format: "dateTime"
  2378            State:
  2379              $ref: "#/definitions/TaskState"
  2380            Message:
  2381              type: "string"
  2382            Err:
  2383              type: "string"
  2384            ContainerStatus:
  2385              type: "object"
  2386              properties:
  2387                ContainerID:
  2388                  type: "string"
  2389                PID:
  2390                  type: "integer"
  2391                ExitCode:
  2392                  type: "integer"
  2393        DesiredState:
  2394          $ref: "#/definitions/TaskState"
  2395      example:
  2396        ID: "0kzzo1i0y4jz6027t0k7aezc7"
  2397        Version:
  2398          Index: 71
  2399        CreatedAt: "2016-06-07T21:07:31.171892745Z"
  2400        UpdatedAt: "2016-06-07T21:07:31.376370513Z"
  2401        Spec:
  2402          ContainerSpec:
  2403            Image: "redis"
  2404          Resources:
  2405            Limits: {}
  2406            Reservations: {}
  2407          RestartPolicy:
  2408            Condition: "any"
  2409            MaxAttempts: 0
  2410          Placement: {}
  2411        ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  2412        Slot: 1
  2413        NodeID: "60gvrl6tm78dmak4yl7srz94v"
  2414        Status:
  2415          Timestamp: "2016-06-07T21:07:31.290032978Z"
  2416          State: "running"
  2417          Message: "started"
  2418          ContainerStatus:
  2419            ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
  2420            PID: 677
  2421        DesiredState: "running"
  2422        NetworksAttachments:
  2423          - Network:
  2424              ID: "4qvuz4ko70xaltuqbt8956gd1"
  2425              Version:
  2426                Index: 18
  2427              CreatedAt: "2016-06-07T20:31:11.912919752Z"
  2428              UpdatedAt: "2016-06-07T21:07:29.955277358Z"
  2429              Spec:
  2430                Name: "ingress"
  2431                Labels:
  2432                  com.docker.swarm.internal: "true"
  2433                DriverConfiguration: {}
  2434                IPAMOptions:
  2435                  Driver: {}
  2436                  Configs:
  2437                    - Subnet: "10.255.0.0/16"
  2438                      Gateway: "10.255.0.1"
  2439              DriverState:
  2440                Name: "overlay"
  2441                Options:
  2442                  com.docker.network.driver.overlay.vxlanid_list: "256"
  2443              IPAMOptions:
  2444                Driver:
  2445                  Name: "default"
  2446                Configs:
  2447                  - Subnet: "10.255.0.0/16"
  2448                    Gateway: "10.255.0.1"
  2449            Addresses:
  2450              - "10.255.0.10/16"
  2451    ServiceSpec:
  2452      description: "User modifiable configuration for a service."
  2453      properties:
  2454        Name:
  2455          description: "Name of the service."
  2456          type: "string"
  2457        Labels:
  2458          description: "User-defined key/value metadata."
  2459          type: "object"
  2460          additionalProperties:
  2461            type: "string"
  2462        TaskTemplate:
  2463          $ref: "#/definitions/TaskSpec"
  2464        Mode:
  2465          description: "Scheduling mode for the service."
  2466          type: "object"
  2467          properties:
  2468            Replicated:
  2469              type: "object"
  2470              properties:
  2471                Replicas:
  2472                  type: "integer"
  2473                  format: "int64"
  2474            Global:
  2475              type: "object"
  2476        UpdateConfig:
  2477          description: "Specification for the update strategy of the service."
  2478          type: "object"
  2479          properties:
  2480            Parallelism:
  2481              description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)."
  2482              type: "integer"
  2483              format: "int64"
  2484            Delay:
  2485              description: "Amount of time between updates, in nanoseconds."
  2486              type: "integer"
  2487              format: "int64"
  2488            FailureAction:
  2489              description: "Action to take if an updated task fails to run, or stops running during the update."
  2490              type: "string"
  2491              enum:
  2492                - "continue"
  2493                - "pause"
  2494                - "rollback"
  2495            Monitor:
  2496              description: "Amount of time to monitor each updated task for failures, in nanoseconds."
  2497              type: "integer"
  2498              format: "int64"
  2499            MaxFailureRatio:
  2500              description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1."
  2501              type: "number"
  2502              default: 0
  2503            Order:
  2504              description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
  2505              type: "string"
  2506              enum:
  2507                - "stop-first"
  2508                - "start-first"
  2509        RollbackConfig:
  2510          description: "Specification for the rollback strategy of the service."
  2511          type: "object"
  2512          properties:
  2513            Parallelism:
  2514              description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)."
  2515              type: "integer"
  2516              format: "int64"
  2517            Delay:
  2518              description: "Amount of time between rollback iterations, in nanoseconds."
  2519              type: "integer"
  2520              format: "int64"
  2521            FailureAction:
  2522              description: "Action to take if an rolled back task fails to run, or stops running during the rollback."
  2523              type: "string"
  2524              enum:
  2525                - "continue"
  2526                - "pause"
  2527            Monitor:
  2528              description: "Amount of time to monitor each rolled back task for failures, in nanoseconds."
  2529              type: "integer"
  2530              format: "int64"
  2531            MaxFailureRatio:
  2532              description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1."
  2533              type: "number"
  2534              default: 0
  2535            Order:
  2536              description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
  2537              type: "string"
  2538              enum:
  2539                - "stop-first"
  2540                - "start-first"
  2541        Networks:
  2542          description: "Array of network names or IDs to attach the service to."
  2543          type: "array"
  2544          items:
  2545            type: "object"
  2546            properties:
  2547              Target:
  2548                type: "string"
  2549              Aliases:
  2550                type: "array"
  2551                items:
  2552                  type: "string"
  2553        EndpointSpec:
  2554          $ref: "#/definitions/EndpointSpec"
  2555    EndpointPortConfig:
  2556      type: "object"
  2557      properties:
  2558        Name:
  2559          type: "string"
  2560        Protocol:
  2561          type: "string"
  2562          enum:
  2563            - "tcp"
  2564            - "udp"
  2565        TargetPort:
  2566          description: "The port inside the container."
  2567          type: "integer"
  2568        PublishedPort:
  2569          description: "The port on the swarm hosts."
  2570          type: "integer"
  2571    EndpointSpec:
  2572      description: "Properties that can be configured to access and load balance a service."
  2573      type: "object"
  2574      properties:
  2575        Mode:
  2576          description: "The mode of resolution to use for internal load balancing
  2577        between tasks."
  2578          type: "string"
  2579          enum:
  2580            - "vip"
  2581            - "dnsrr"
  2582          default: "vip"
  2583        Ports:
  2584          description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used."
  2585          type: "array"
  2586          items:
  2587            $ref: "#/definitions/EndpointPortConfig"
  2588    Service:
  2589      type: "object"
  2590      properties:
  2591        ID:
  2592          type: "string"
  2593        Version:
  2594          $ref: "#/definitions/ObjectVersion"
  2595        CreatedAt:
  2596          type: "string"
  2597          format: "dateTime"
  2598        UpdatedAt:
  2599          type: "string"
  2600          format: "dateTime"
  2601        Spec:
  2602          $ref: "#/definitions/ServiceSpec"
  2603        Endpoint:
  2604          type: "object"
  2605          properties:
  2606            Spec:
  2607              $ref: "#/definitions/EndpointSpec"
  2608            Ports:
  2609              type: "array"
  2610              items:
  2611                $ref: "#/definitions/EndpointPortConfig"
  2612            VirtualIPs:
  2613              type: "array"
  2614              items:
  2615                type: "object"
  2616                properties:
  2617                  NetworkID:
  2618                    type: "string"
  2619                  Addr:
  2620                    type: "string"
  2621        UpdateStatus:
  2622          description: "The status of a service update."
  2623          type: "object"
  2624          properties:
  2625            State:
  2626              type: "string"
  2627              enum:
  2628                - "updating"
  2629                - "paused"
  2630                - "completed"
  2631            StartedAt:
  2632              type: "string"
  2633              format: "dateTime"
  2634            CompletedAt:
  2635              type: "string"
  2636              format: "dateTime"
  2637            Message:
  2638              type: "string"
  2639      example:
  2640        ID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  2641        Version:
  2642          Index: 19
  2643        CreatedAt: "2016-06-07T21:05:51.880065305Z"
  2644        UpdatedAt: "2016-06-07T21:07:29.962229872Z"
  2645        Spec:
  2646          Name: "hopeful_cori"
  2647          TaskTemplate:
  2648            ContainerSpec:
  2649              Image: "redis"
  2650            Resources:
  2651              Limits: {}
  2652              Reservations: {}
  2653            RestartPolicy:
  2654              Condition: "any"
  2655              MaxAttempts: 0
  2656            Placement: {}
  2657            ForceUpdate: 0
  2658          Mode:
  2659            Replicated:
  2660              Replicas: 1
  2661          UpdateConfig:
  2662            Parallelism: 1
  2663            Delay: 1000000000
  2664            FailureAction: "pause"
  2665            Monitor: 15000000000
  2666            MaxFailureRatio: 0.15
  2667          RollbackConfig:
  2668            Parallelism: 1
  2669            Delay: 1000000000
  2670            FailureAction: "pause"
  2671            Monitor: 15000000000
  2672            MaxFailureRatio: 0.15
  2673          EndpointSpec:
  2674            Mode: "vip"
  2675            Ports:
  2676              -
  2677                Protocol: "tcp"
  2678                TargetPort: 6379
  2679                PublishedPort: 30001
  2680        Endpoint:
  2681          Spec:
  2682            Mode: "vip"
  2683            Ports:
  2684              -
  2685                Protocol: "tcp"
  2686                TargetPort: 6379
  2687                PublishedPort: 30001
  2688          Ports:
  2689            -
  2690              Protocol: "tcp"
  2691              TargetPort: 6379
  2692              PublishedPort: 30001
  2693          VirtualIPs:
  2694            -
  2695              NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
  2696              Addr: "10.255.0.2/16"
  2697            -
  2698              NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
  2699              Addr: "10.255.0.3/16"
  2700    ImageDeleteResponseItem:
  2701      type: "object"
  2702      properties:
  2703        Untagged:
  2704          description: "The image ID of an image that was untagged"
  2705          type: "string"
  2706        Deleted:
  2707          description: "The image ID of an image that was deleted"
  2708          type: "string"
  2709    ServiceUpdateResponse:
  2710      type: "object"
  2711      properties:
  2712        Warnings:
  2713          description: "Optional warning messages"
  2714          type: "array"
  2715          items:
  2716            type: "string"
  2717      example:
  2718        Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
  2719    ContainerSummary:
  2720      type: "array"
  2721      items:
  2722        type: "object"
  2723        properties:
  2724          Id:
  2725            description: "The ID of this container"
  2726            type: "string"
  2727            x-go-name: "ID"
  2728          Names:
  2729            description: "The names that this container has been given"
  2730            type: "array"
  2731            items:
  2732              type: "string"
  2733          Image:
  2734            description: "The name of the image used when creating this container"
  2735            type: "string"
  2736          ImageID:
  2737            description: "The ID of the image that this container was created from"
  2738            type: "string"
  2739          Command:
  2740            description: "Command to run when starting the container"
  2741            type: "string"
  2742          Created:
  2743            description: "When the container was created"
  2744            type: "integer"
  2745            format: "int64"
  2746          Ports:
  2747            description: "The ports exposed by this container"
  2748            type: "array"
  2749            items:
  2750              $ref: "#/definitions/Port"
  2751          SizeRw:
  2752            description: "The size of files that have been created or changed by this container"
  2753            type: "integer"
  2754            format: "int64"
  2755          SizeRootFs:
  2756            description: "The total size of all the files in this container"
  2757            type: "integer"
  2758            format: "int64"
  2759          Labels:
  2760            description: "User-defined key/value metadata."
  2761            type: "object"
  2762            additionalProperties:
  2763              type: "string"
  2764          State:
  2765            description: "The state of this container (e.g. `Exited`)"
  2766            type: "string"
  2767          Status:
  2768            description: "Additional human-readable status of this container (e.g. `Exit 0`)"
  2769            type: "string"
  2770          HostConfig:
  2771            type: "object"
  2772            properties:
  2773              NetworkMode:
  2774                type: "string"
  2775          NetworkSettings:
  2776            description: "A summary of the container's network settings"
  2777            type: "object"
  2778            properties:
  2779              Networks:
  2780                type: "object"
  2781                additionalProperties:
  2782                  $ref: "#/definitions/EndpointSettings"
  2783          Mounts:
  2784            type: "array"
  2785            items:
  2786              $ref: "#/definitions/Mount"
  2787  
  2788    Driver:
  2789      description: "Driver represents a driver (network, logging, secrets)."
  2790      type: "object"
  2791      required: [Name]
  2792      properties:
  2793        Name:
  2794          description: "Name of the driver."
  2795          type: "string"
  2796          x-nullable: false
  2797          example: "some-driver"
  2798        Options:
  2799          description: "Key/value map of driver-specific options."
  2800          type: "object"
  2801          x-nullable: false
  2802          additionalProperties:
  2803            type: "string"
  2804          example:
  2805            OptionA: "value for driver-specific option A"
  2806            OptionB: "value for driver-specific option B"
  2807  
  2808    SecretSpec:
  2809      type: "object"
  2810      properties:
  2811        Name:
  2812          description: "User-defined name of the secret."
  2813          type: "string"
  2814        Labels:
  2815          description: "User-defined key/value metadata."
  2816          type: "object"
  2817          additionalProperties:
  2818            type: "string"
  2819          example:
  2820            com.example.some-label: "some-value"
  2821            com.example.some-other-label: "some-other-value"
  2822        Data:
  2823          description: |
  2824            Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
  2825            data to store as secret.
  2826  
  2827            This field is only used to _create_ a secret, and is not returned by
  2828            other endpoints.
  2829          type: "string"
  2830          example: ""
  2831        Driver:
  2832          description: "Name of the secrets driver used to fetch the secret's value from an external secret store"
  2833          $ref: "#/definitions/Driver"
  2834  
  2835    Secret:
  2836      type: "object"
  2837      properties:
  2838        ID:
  2839          type: "string"
  2840          example: "blt1owaxmitz71s9v5zh81zun"
  2841        Version:
  2842          $ref: "#/definitions/ObjectVersion"
  2843        CreatedAt:
  2844          type: "string"
  2845          format: "dateTime"
  2846          example: "2017-07-20T13:55:28.678958722Z"
  2847        UpdatedAt:
  2848          type: "string"
  2849          format: "dateTime"
  2850          example: "2017-07-20T13:55:28.678958722Z"
  2851        Spec:
  2852          $ref: "#/definitions/SecretSpec"
  2853    ConfigSpec:
  2854      type: "object"
  2855      properties:
  2856        Name:
  2857          description: "User-defined name of the config."
  2858          type: "string"
  2859        Labels:
  2860          description: "User-defined key/value metadata."
  2861          type: "object"
  2862          additionalProperties:
  2863            type: "string"
  2864        Data:
  2865          description: |
  2866            Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
  2867            config data.
  2868          type: "string"
  2869    Config:
  2870      type: "object"
  2871      properties:
  2872        ID:
  2873          type: "string"
  2874        Version:
  2875          $ref: "#/definitions/ObjectVersion"
  2876        CreatedAt:
  2877          type: "string"
  2878          format: "dateTime"
  2879        UpdatedAt:
  2880          type: "string"
  2881          format: "dateTime"
  2882        Spec:
  2883          $ref: "#/definitions/ConfigSpec"
  2884  
  2885  paths:
  2886    /containers/json:
  2887      get:
  2888        summary: "List containers"
  2889        description: |
  2890          Returns a list of containers. For details on the format, see [the inspect endpoint](#operation/ContainerInspect).
  2891  
  2892          Note that it uses a different, smaller representation of a container than inspecting a single container. For example,
  2893          the list of linked containers is not propagated .
  2894        operationId: "ContainerList"
  2895        produces:
  2896          - "application/json"
  2897        parameters:
  2898          - name: "all"
  2899            in: "query"
  2900            description: "Return all containers. By default, only running containers are shown"
  2901            type: "boolean"
  2902            default: false
  2903          - name: "limit"
  2904            in: "query"
  2905            description: "Return this number of most recently created containers, including non-running ones."
  2906            type: "integer"
  2907          - name: "size"
  2908            in: "query"
  2909            description: "Return the size of container as fields `SizeRw` and `SizeRootFs`."
  2910            type: "boolean"
  2911            default: false
  2912          - name: "filters"
  2913            in: "query"
  2914            description: |
  2915              Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters:
  2916  
  2917              - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
  2918              - `before`=(`<container id>` or `<container name>`)
  2919              - `expose`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
  2920              - `exited=<int>` containers with exit code of `<int>`
  2921              - `health`=(`starting`|`healthy`|`unhealthy`|`none`)
  2922              - `id=<ID>` a container's ID
  2923              - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)
  2924              - `is-task=`(`true`|`false`)
  2925              - `label=key` or `label="key=value"` of a container label
  2926              - `name=<name>` a container's name
  2927              - `network`=(`<network id>` or `<network name>`)
  2928              - `publish`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
  2929              - `since`=(`<container id>` or `<container name>`)
  2930              - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)
  2931              - `volume`=(`<volume name>` or `<mount point destination>`)
  2932            type: "string"
  2933        responses:
  2934          200:
  2935            description: "no error"
  2936            schema:
  2937              $ref: "#/definitions/ContainerSummary"
  2938            examples:
  2939              application/json:
  2940                - Id: "8dfafdbc3a40"
  2941                  Names:
  2942                    - "/boring_feynman"
  2943                  Image: "ubuntu:latest"
  2944                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  2945                  Command: "echo 1"
  2946                  Created: 1367854155
  2947                  State: "Exited"
  2948                  Status: "Exit 0"
  2949                  Ports:
  2950                    - PrivatePort: 2222
  2951                      PublicPort: 3333
  2952                      Type: "tcp"
  2953                  Labels:
  2954                    com.example.vendor: "Acme"
  2955                    com.example.license: "GPL"
  2956                    com.example.version: "1.0"
  2957                  SizeRw: 12288
  2958                  SizeRootFs: 0
  2959                  HostConfig:
  2960                    NetworkMode: "default"
  2961                  NetworkSettings:
  2962                    Networks:
  2963                      bridge:
  2964                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  2965                        EndpointID: "2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f"
  2966                        Gateway: "172.17.0.1"
  2967                        IPAddress: "172.17.0.2"
  2968                        IPPrefixLen: 16
  2969                        IPv6Gateway: ""
  2970                        GlobalIPv6Address: ""
  2971                        GlobalIPv6PrefixLen: 0
  2972                        MacAddress: "02:42:ac:11:00:02"
  2973                  Mounts:
  2974                    - Name: "fac362...80535"
  2975                      Source: "/data"
  2976                      Destination: "/data"
  2977                      Driver: "local"
  2978                      Mode: "ro,Z"
  2979                      RW: false
  2980                      Propagation: ""
  2981                - Id: "9cd87474be90"
  2982                  Names:
  2983                    - "/coolName"
  2984                  Image: "ubuntu:latest"
  2985                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  2986                  Command: "echo 222222"
  2987                  Created: 1367854155
  2988                  State: "Exited"
  2989                  Status: "Exit 0"
  2990                  Ports: []
  2991                  Labels: {}
  2992                  SizeRw: 12288
  2993                  SizeRootFs: 0
  2994                  HostConfig:
  2995                    NetworkMode: "default"
  2996                  NetworkSettings:
  2997                    Networks:
  2998                      bridge:
  2999                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  3000                        EndpointID: "88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a"
  3001                        Gateway: "172.17.0.1"
  3002                        IPAddress: "172.17.0.8"
  3003                        IPPrefixLen: 16
  3004                        IPv6Gateway: ""
  3005                        GlobalIPv6Address: ""
  3006                        GlobalIPv6PrefixLen: 0
  3007                        MacAddress: "02:42:ac:11:00:08"
  3008                  Mounts: []
  3009                - Id: "3176a2479c92"
  3010                  Names:
  3011                    - "/sleepy_dog"
  3012                  Image: "ubuntu:latest"
  3013                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  3014                  Command: "echo 3333333333333333"
  3015                  Created: 1367854154
  3016                  State: "Exited"
  3017                  Status: "Exit 0"
  3018                  Ports: []
  3019                  Labels: {}
  3020                  SizeRw: 12288
  3021                  SizeRootFs: 0
  3022                  HostConfig:
  3023                    NetworkMode: "default"
  3024                  NetworkSettings:
  3025                    Networks:
  3026                      bridge:
  3027                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  3028                        EndpointID: "8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d"
  3029                        Gateway: "172.17.0.1"
  3030                        IPAddress: "172.17.0.6"
  3031                        IPPrefixLen: 16
  3032                        IPv6Gateway: ""
  3033                        GlobalIPv6Address: ""
  3034                        GlobalIPv6PrefixLen: 0
  3035                        MacAddress: "02:42:ac:11:00:06"
  3036                  Mounts: []
  3037                - Id: "4cb07b47f9fb"
  3038                  Names:
  3039                    - "/running_cat"
  3040                  Image: "ubuntu:latest"
  3041                  ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
  3042                  Command: "echo 444444444444444444444444444444444"
  3043                  Created: 1367854152
  3044                  State: "Exited"
  3045                  Status: "Exit 0"
  3046                  Ports: []
  3047                  Labels: {}
  3048                  SizeRw: 12288
  3049                  SizeRootFs: 0
  3050                  HostConfig:
  3051                    NetworkMode: "default"
  3052                  NetworkSettings:
  3053                    Networks:
  3054                      bridge:
  3055                        NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  3056                        EndpointID: "d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9"
  3057                        Gateway: "172.17.0.1"
  3058                        IPAddress: "172.17.0.5"
  3059                        IPPrefixLen: 16
  3060                        IPv6Gateway: ""
  3061                        GlobalIPv6Address: ""
  3062                        GlobalIPv6PrefixLen: 0
  3063                        MacAddress: "02:42:ac:11:00:05"
  3064                  Mounts: []
  3065          400:
  3066            description: "bad parameter"
  3067            schema:
  3068              $ref: "#/definitions/ErrorResponse"
  3069          500:
  3070            description: "server error"
  3071            schema:
  3072              $ref: "#/definitions/ErrorResponse"
  3073        tags: ["Container"]
  3074    /containers/create:
  3075      post:
  3076        summary: "Create a container"
  3077        operationId: "ContainerCreate"
  3078        consumes:
  3079          - "application/json"
  3080          - "application/octet-stream"
  3081        produces:
  3082          - "application/json"
  3083        parameters:
  3084          - name: "name"
  3085            in: "query"
  3086            description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`."
  3087            type: "string"
  3088            pattern: "/?[a-zA-Z0-9_-]+"
  3089          - name: "body"
  3090            in: "body"
  3091            description: "Container to create"
  3092            schema:
  3093              allOf:
  3094                - $ref: "#/definitions/ContainerConfig"
  3095                - type: "object"
  3096                  properties:
  3097                    HostConfig:
  3098                      $ref: "#/definitions/HostConfig"
  3099                    NetworkingConfig:
  3100                      description: "This container's networking configuration."
  3101                      type: "object"
  3102                      properties:
  3103                        EndpointsConfig:
  3104                          description: "A mapping of network name to endpoint configuration for that network."
  3105                          type: "object"
  3106                          additionalProperties:
  3107                            $ref: "#/definitions/EndpointSettings"
  3108              example:
  3109                Hostname: ""
  3110                Domainname: ""
  3111                User: ""
  3112                AttachStdin: false
  3113                AttachStdout: true
  3114                AttachStderr: true
  3115                Tty: false
  3116                OpenStdin: false
  3117                StdinOnce: false
  3118                Env:
  3119                  - "FOO=bar"
  3120                  - "BAZ=quux"
  3121                Cmd:
  3122                  - "date"
  3123                Entrypoint: ""
  3124                Image: "ubuntu"
  3125                Labels:
  3126                  com.example.vendor: "Acme"
  3127                  com.example.license: "GPL"
  3128                  com.example.version: "1.0"
  3129                Volumes:
  3130                  /volumes/data: {}
  3131                WorkingDir: ""
  3132                NetworkDisabled: false
  3133                MacAddress: "12:34:56:78:9a:bc"
  3134                ExposedPorts:
  3135                  22/tcp: {}
  3136                StopSignal: "SIGTERM"
  3137                StopTimeout: 10
  3138                HostConfig:
  3139                  Binds:
  3140                    - "/tmp:/tmp"
  3141                  Links:
  3142                    - "redis3:redis"
  3143                  Memory: 0
  3144                  MemorySwap: 0
  3145                  MemoryReservation: 0
  3146                  KernelMemory: 0
  3147                  NanoCPUs: 500000
  3148                  CpuPercent: 80
  3149                  CpuShares: 512
  3150                  CpuPeriod: 100000
  3151                  CpuRealtimePeriod: 1000000
  3152                  CpuRealtimeRuntime: 10000
  3153                  CpuQuota: 50000
  3154                  CpusetCpus: "0,1"
  3155                  CpusetMems: "0,1"
  3156                  MaximumIOps: 0
  3157                  MaximumIOBps: 0
  3158                  BlkioWeight: 300
  3159                  BlkioWeightDevice:
  3160                    - {}
  3161                  BlkioDeviceReadBps:
  3162                    - {}
  3163                  BlkioDeviceReadIOps:
  3164                    - {}
  3165                  BlkioDeviceWriteBps:
  3166                    - {}
  3167                  BlkioDeviceWriteIOps:
  3168                    - {}
  3169                  MemorySwappiness: 60
  3170                  OomKillDisable: false
  3171                  OomScoreAdj: 500
  3172                  PidMode: ""
  3173                  PidsLimit: -1
  3174                  PortBindings:
  3175                    22/tcp:
  3176                      - HostPort: "11022"
  3177                  PublishAllPorts: false
  3178                  Privileged: false
  3179                  ReadonlyRootfs: false
  3180                  Dns:
  3181                    - "8.8.8.8"
  3182                  DnsOptions:
  3183                    - ""
  3184                  DnsSearch:
  3185                    - ""
  3186                  VolumesFrom:
  3187                    - "parent"
  3188                    - "other:ro"
  3189                  CapAdd:
  3190                    - "NET_ADMIN"
  3191                  CapDrop:
  3192                    - "MKNOD"
  3193                  GroupAdd:
  3194                    - "newgroup"
  3195                  RestartPolicy:
  3196                    Name: ""
  3197                    MaximumRetryCount: 0
  3198                  AutoRemove: true
  3199                  NetworkMode: "bridge"
  3200                  Devices: []
  3201                  Ulimits:
  3202                    - {}
  3203                  LogConfig:
  3204                    Type: "json-file"
  3205                    Config: {}
  3206                  SecurityOpt: []
  3207                  StorageOpt: {}
  3208                  CgroupParent: ""
  3209                  VolumeDriver: ""
  3210                  ShmSize: 67108864
  3211                NetworkingConfig:
  3212                  EndpointsConfig:
  3213                    isolated_nw:
  3214                      IPAMConfig:
  3215                        IPv4Address: "172.20.30.33"
  3216                        IPv6Address: "2001:db8:abcd::3033"
  3217                        LinkLocalIPs:
  3218                          - "169.254.34.68"
  3219                          - "fe80::3468"
  3220                      Links:
  3221                        - "container_1"
  3222                        - "container_2"
  3223                      Aliases:
  3224                        - "server_x"
  3225                        - "server_y"
  3226  
  3227            required: true
  3228        responses:
  3229          201:
  3230            description: "Container created successfully"
  3231            schema:
  3232              type: "object"
  3233              required: [Id, Warnings]
  3234              properties:
  3235                Id:
  3236                  description: "The ID of the created container"
  3237                  type: "string"
  3238                  x-nullable: false
  3239                Warnings:
  3240                  description: "Warnings encountered when creating the container"
  3241                  type: "array"
  3242                  x-nullable: false
  3243                  items:
  3244                    type: "string"
  3245            examples:
  3246              application/json:
  3247                Id: "e90e34656806"
  3248                Warnings: []
  3249          400:
  3250            description: "bad parameter"
  3251            schema:
  3252              $ref: "#/definitions/ErrorResponse"
  3253          404:
  3254            description: "no such container"
  3255            schema:
  3256              $ref: "#/definitions/ErrorResponse"
  3257            examples:
  3258              application/json:
  3259                message: "No such container: c2ada9df5af8"
  3260          406:
  3261            description: "impossible to attach"
  3262            schema:
  3263              $ref: "#/definitions/ErrorResponse"
  3264          409:
  3265            description: "conflict"
  3266            schema:
  3267              $ref: "#/definitions/ErrorResponse"
  3268          500:
  3269            description: "server error"
  3270            schema:
  3271              $ref: "#/definitions/ErrorResponse"
  3272        tags: ["Container"]
  3273    /containers/{id}/json:
  3274      get:
  3275        summary: "Inspect a container"
  3276        description: "Return low-level information about a container."
  3277        operationId: "ContainerInspect"
  3278        produces:
  3279          - "application/json"
  3280        responses:
  3281          200:
  3282            description: "no error"
  3283            schema:
  3284              type: "object"
  3285              properties:
  3286                Id:
  3287                  description: "The ID of the container"
  3288                  type: "string"
  3289                Created:
  3290                  description: "The time the container was created"
  3291                  type: "string"
  3292                Path:
  3293                  description: "The path to the command being run"
  3294                  type: "string"
  3295                Args:
  3296                  description: "The arguments to the command being run"
  3297                  type: "array"
  3298                  items:
  3299                    type: "string"
  3300                State:
  3301                  description: "The state of the container."
  3302                  type: "object"
  3303                  properties:
  3304                    Status:
  3305                      description: |
  3306                        The status of the container. For example, `"running"` or `"exited"`.
  3307                      type: "string"
  3308                      enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
  3309                    Running:
  3310                      description: |
  3311                        Whether this container is running.
  3312  
  3313                        Note that a running container can be _paused_. The `Running` and `Paused`
  3314                        booleans are not mutually exclusive:
  3315  
  3316                        When pausing a container (on Linux), the cgroups freezer is used to suspend
  3317                        all processes in the container. Freezing the process requires the process to
  3318                        be running. As a result, paused containers are both `Running` _and_ `Paused`.
  3319  
  3320                        Use the `Status` field instead to determine if a container's state is "running".
  3321                      type: "boolean"
  3322                    Paused:
  3323                      description: "Whether this container is paused."
  3324                      type: "boolean"
  3325                    Restarting:
  3326                      description: "Whether this container is restarting."
  3327                      type: "boolean"
  3328                    OOMKilled:
  3329                      description: "Whether this container has been killed because it ran out of memory."
  3330                      type: "boolean"
  3331                    Dead:
  3332                      type: "boolean"
  3333                    Pid:
  3334                      description: "The process ID of this container"
  3335                      type: "integer"
  3336                    ExitCode:
  3337                      description: "The last exit code of this container"
  3338                      type: "integer"
  3339                    Error:
  3340                      type: "string"
  3341                    StartedAt:
  3342                      description: "The time when this container was last started."
  3343                      type: "string"
  3344                    FinishedAt:
  3345                      description: "The time when this container last exited."
  3346                      type: "string"
  3347                Image:
  3348                  description: "The container's image"
  3349                  type: "string"
  3350                ResolvConfPath:
  3351                  type: "string"
  3352                HostnamePath:
  3353                  type: "string"
  3354                HostsPath:
  3355                  type: "string"
  3356                LogPath:
  3357                  type: "string"
  3358                Node:
  3359                  description: "TODO"
  3360                  type: "object"
  3361                Name:
  3362                  type: "string"
  3363                RestartCount:
  3364                  type: "integer"
  3365                Driver:
  3366                  type: "string"
  3367                MountLabel:
  3368                  type: "string"
  3369                ProcessLabel:
  3370                  type: "string"
  3371                AppArmorProfile:
  3372                  type: "string"
  3373                ExecIDs:
  3374                  type: "string"
  3375                HostConfig:
  3376                  $ref: "#/definitions/HostConfig"
  3377                GraphDriver:
  3378                  $ref: "#/definitions/GraphDriverData"
  3379                SizeRw:
  3380                  description: "The size of files that have been created or changed by this container."
  3381                  type: "integer"
  3382                  format: "int64"
  3383                SizeRootFs:
  3384                  description: "The total size of all the files in this container."
  3385                  type: "integer"
  3386                  format: "int64"
  3387                Mounts:
  3388                  type: "array"
  3389                  items:
  3390                    $ref: "#/definitions/MountPoint"
  3391                Config:
  3392                  $ref: "#/definitions/ContainerConfig"
  3393                NetworkSettings:
  3394                  $ref: "#/definitions/NetworkConfig"
  3395            examples:
  3396              application/json:
  3397                AppArmorProfile: ""
  3398                Args:
  3399                  - "-c"
  3400                  - "exit 9"
  3401                Config:
  3402                  AttachStderr: true
  3403                  AttachStdin: false
  3404                  AttachStdout: true
  3405                  Cmd:
  3406                    - "/bin/sh"
  3407                    - "-c"
  3408                    - "exit 9"
  3409                  Domainname: ""
  3410                  Env:
  3411                    - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  3412                  Hostname: "ba033ac44011"
  3413                  Image: "ubuntu"
  3414                  Labels:
  3415                    com.example.vendor: "Acme"
  3416                    com.example.license: "GPL"
  3417                    com.example.version: "1.0"
  3418                  MacAddress: ""
  3419                  NetworkDisabled: false
  3420                  OpenStdin: false
  3421                  StdinOnce: false
  3422                  Tty: false
  3423                  User: ""
  3424                  Volumes:
  3425                    /volumes/data: {}
  3426                  WorkingDir: ""
  3427                  StopSignal: "SIGTERM"
  3428                  StopTimeout: 10
  3429                Created: "2015-01-06T15:47:31.485331387Z"
  3430                Driver: "devicemapper"
  3431                HostConfig:
  3432                  MaximumIOps: 0
  3433                  MaximumIOBps: 0
  3434                  BlkioWeight: 0
  3435                  BlkioWeightDevice:
  3436                    - {}
  3437                  BlkioDeviceReadBps:
  3438                    - {}
  3439                  BlkioDeviceWriteBps:
  3440                    - {}
  3441                  BlkioDeviceReadIOps:
  3442                    - {}
  3443                  BlkioDeviceWriteIOps:
  3444                    - {}
  3445                  ContainerIDFile: ""
  3446                  CpusetCpus: ""
  3447                  CpusetMems: ""
  3448                  CpuPercent: 80
  3449                  CpuShares: 0
  3450                  CpuPeriod: 100000
  3451                  CpuRealtimePeriod: 1000000
  3452                  CpuRealtimeRuntime: 10000
  3453                  Devices: []
  3454                  IpcMode: ""
  3455                  LxcConf: []
  3456                  Memory: 0
  3457                  MemorySwap: 0
  3458                  MemoryReservation: 0
  3459                  KernelMemory: 0
  3460                  OomKillDisable: false
  3461                  OomScoreAdj: 500
  3462                  NetworkMode: "bridge"
  3463                  PidMode: ""
  3464                  PortBindings: {}
  3465                  Privileged: false
  3466                  ReadonlyRootfs: false
  3467                  PublishAllPorts: false
  3468                  RestartPolicy:
  3469                    MaximumRetryCount: 2
  3470                    Name: "on-failure"
  3471                  LogConfig:
  3472                    Type: "json-file"
  3473                  Sysctls:
  3474                    net.ipv4.ip_forward: "1"
  3475                  Ulimits:
  3476                    - {}
  3477                  VolumeDriver: ""
  3478                  ShmSize: 67108864
  3479                HostnamePath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname"
  3480                HostsPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts"
  3481                LogPath: "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log"
  3482                Id: "ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39"
  3483                Image: "04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2"
  3484                MountLabel: ""
  3485                Name: "/boring_euclid"
  3486                NetworkSettings:
  3487                  Bridge: ""
  3488                  SandboxID: ""
  3489                  HairpinMode: false
  3490                  LinkLocalIPv6Address: ""
  3491                  LinkLocalIPv6PrefixLen: 0
  3492                  SandboxKey: ""
  3493                  SecondaryIPAddresses: null
  3494                  SecondaryIPv6Addresses: null
  3495                  EndpointID: ""
  3496                  Gateway: ""
  3497                  GlobalIPv6Address: ""
  3498                  GlobalIPv6PrefixLen: 0
  3499                  IPAddress: ""
  3500                  IPPrefixLen: 0
  3501                  IPv6Gateway: ""
  3502                  MacAddress: ""
  3503                  Networks:
  3504                    bridge:
  3505                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
  3506                      EndpointID: "7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d"
  3507                      Gateway: "172.17.0.1"
  3508                      IPAddress: "172.17.0.2"
  3509                      IPPrefixLen: 16
  3510                      IPv6Gateway: ""
  3511                      GlobalIPv6Address: ""
  3512                      GlobalIPv6PrefixLen: 0
  3513                      MacAddress: "02:42:ac:12:00:02"
  3514                Path: "/bin/sh"
  3515                ProcessLabel: ""
  3516                ResolvConfPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf"
  3517                RestartCount: 1
  3518                State:
  3519                  Error: ""
  3520                  ExitCode: 9
  3521                  FinishedAt: "2015-01-06T15:47:32.080254511Z"
  3522                  OOMKilled: false
  3523                  Dead: false
  3524                  Paused: false
  3525                  Pid: 0
  3526                  Restarting: false
  3527                  Running: true
  3528                  StartedAt: "2015-01-06T15:47:32.072697474Z"
  3529                  Status: "running"
  3530                Mounts:
  3531                  - Name: "fac362...80535"
  3532                    Source: "/data"
  3533                    Destination: "/data"
  3534                    Driver: "local"
  3535                    Mode: "ro,Z"
  3536                    RW: false
  3537                    Propagation: ""
  3538          404:
  3539            description: "no such container"
  3540            schema:
  3541              $ref: "#/definitions/ErrorResponse"
  3542            examples:
  3543              application/json:
  3544                message: "No such container: c2ada9df5af8"
  3545          500:
  3546            description: "server error"
  3547            schema:
  3548              $ref: "#/definitions/ErrorResponse"
  3549        parameters:
  3550          - name: "id"
  3551            in: "path"
  3552            required: true
  3553            description: "ID or name of the container"
  3554            type: "string"
  3555          - name: "size"
  3556            in: "query"
  3557            type: "boolean"
  3558            default: false
  3559            description: "Return the size of container as fields `SizeRw` and `SizeRootFs`"
  3560        tags: ["Container"]
  3561    /containers/{id}/top:
  3562      get:
  3563        summary: "List processes running inside a container"
  3564        description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows."
  3565        operationId: "ContainerTop"
  3566        responses:
  3567          200:
  3568            description: "no error"
  3569            schema:
  3570              type: "object"
  3571              properties:
  3572                Titles:
  3573                  description: "The ps column titles"
  3574                  type: "array"
  3575                  items:
  3576                    type: "string"
  3577                Processes:
  3578                  description: "Each process running in the container, where each is process is an array of values corresponding to the titles"
  3579                  type: "array"
  3580                  items:
  3581                    type: "array"
  3582                    items:
  3583                      type: "string"
  3584            examples:
  3585              application/json:
  3586                Titles:
  3587                  - "UID"
  3588                  - "PID"
  3589                  - "PPID"
  3590                  - "C"
  3591                  - "STIME"
  3592                  - "TTY"
  3593                  - "TIME"
  3594                  - "CMD"
  3595                Processes:
  3596                  -
  3597                    - "root"
  3598                    - "13642"
  3599                    - "882"
  3600                    - "0"
  3601                    - "17:03"
  3602                    - "pts/0"
  3603                    - "00:00:00"
  3604                    - "/bin/bash"
  3605                  -
  3606                    - "root"
  3607                    - "13735"
  3608                    - "13642"
  3609                    - "0"
  3610                    - "17:06"
  3611                    - "pts/0"
  3612                    - "00:00:00"
  3613                    - "sleep 10"
  3614          404:
  3615            description: "no such container"
  3616            schema:
  3617              $ref: "#/definitions/ErrorResponse"
  3618            examples:
  3619              application/json:
  3620                message: "No such container: c2ada9df5af8"
  3621          500:
  3622            description: "server error"
  3623            schema:
  3624              $ref: "#/definitions/ErrorResponse"
  3625        parameters:
  3626          - name: "id"
  3627            in: "path"
  3628            required: true
  3629            description: "ID or name of the container"
  3630            type: "string"
  3631          - name: "ps_args"
  3632            in: "query"
  3633            description: "The arguments to pass to `ps`. For example, `aux`"
  3634            type: "string"
  3635            default: "-ef"
  3636        tags: ["Container"]
  3637    /containers/{id}/logs:
  3638      get:
  3639        summary: "Get container logs"
  3640        description: |
  3641          Get `stdout` and `stderr` logs from a container.
  3642  
  3643          Note: This endpoint works only for containers with the `json-file` or `journald` logging driver.
  3644        operationId: "ContainerLogs"
  3645        responses:
  3646          101:
  3647            description: "logs returned as a stream"
  3648            schema:
  3649              type: "string"
  3650              format: "binary"
  3651          200:
  3652            description: "logs returned as a string in response body"
  3653            schema:
  3654              type: "string"
  3655          404:
  3656            description: "no such container"
  3657            schema:
  3658              $ref: "#/definitions/ErrorResponse"
  3659            examples:
  3660              application/json:
  3661                message: "No such container: c2ada9df5af8"
  3662          500:
  3663            description: "server error"
  3664            schema:
  3665              $ref: "#/definitions/ErrorResponse"
  3666        parameters:
  3667          - name: "id"
  3668            in: "path"
  3669            required: true
  3670            description: "ID or name of the container"
  3671            type: "string"
  3672          - name: "follow"
  3673            in: "query"
  3674            description: |
  3675              Return the logs as a stream.
  3676  
  3677              This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
  3678            type: "boolean"
  3679            default: false
  3680          - name: "stdout"
  3681            in: "query"
  3682            description: "Return logs from `stdout`"
  3683            type: "boolean"
  3684            default: false
  3685          - name: "stderr"
  3686            in: "query"
  3687            description: "Return logs from `stderr`"
  3688            type: "boolean"
  3689            default: false
  3690          - name: "since"
  3691            in: "query"
  3692            description: "Only return logs since this time, as a UNIX timestamp"
  3693            type: "integer"
  3694            default: 0
  3695          - name: "timestamps"
  3696            in: "query"
  3697            description: "Add timestamps to every log line"
  3698            type: "boolean"
  3699            default: false
  3700          - name: "tail"
  3701            in: "query"
  3702            description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
  3703            type: "string"
  3704            default: "all"
  3705        tags: ["Container"]
  3706    /containers/{id}/changes:
  3707      get:
  3708        summary: "Get changes on a container’s filesystem"
  3709        description: |
  3710          Returns which files in a container's filesystem have been added, deleted,
  3711          or modified. The `Kind` of modification can be one of:
  3712  
  3713          - `0`: Modified
  3714          - `1`: Added
  3715          - `2`: Deleted
  3716        operationId: "ContainerChanges"
  3717        produces: ["application/json"]
  3718        responses:
  3719          200:
  3720            description: "The list of changes"
  3721            schema:
  3722              type: "array"
  3723              items:
  3724                type: "object"
  3725                x-go-name: "ContainerChangeResponseItem"
  3726                required: [Path, Kind]
  3727                properties:
  3728                  Path:
  3729                    description: "Path to file that has changed"
  3730                    type: "string"
  3731                    x-nullable: false
  3732                  Kind:
  3733                    description: "Kind of change"
  3734                    type: "integer"
  3735                    format: "uint8"
  3736                    enum: [0, 1, 2]
  3737                    x-nullable: false
  3738            examples:
  3739              application/json:
  3740                - Path: "/dev"
  3741                  Kind: 0
  3742                - Path: "/dev/kmsg"
  3743                  Kind: 1
  3744                - Path: "/test"
  3745                  Kind: 1
  3746          404:
  3747            description: "no such container"
  3748            schema:
  3749              $ref: "#/definitions/ErrorResponse"
  3750            examples:
  3751              application/json:
  3752                message: "No such container: c2ada9df5af8"
  3753          500:
  3754            description: "server error"
  3755            schema:
  3756              $ref: "#/definitions/ErrorResponse"
  3757        parameters:
  3758          - name: "id"
  3759            in: "path"
  3760            required: true
  3761            description: "ID or name of the container"
  3762            type: "string"
  3763        tags: ["Container"]
  3764    /containers/{id}/export:
  3765      get:
  3766        summary: "Export a container"
  3767        description: "Export the contents of a container as a tarball."
  3768        operationId: "ContainerExport"
  3769        produces:
  3770          - "application/octet-stream"
  3771        responses:
  3772          200:
  3773            description: "no error"
  3774          404:
  3775            description: "no such container"
  3776            schema:
  3777              $ref: "#/definitions/ErrorResponse"
  3778            examples:
  3779              application/json:
  3780                message: "No such container: c2ada9df5af8"
  3781          500:
  3782            description: "server error"
  3783            schema:
  3784              $ref: "#/definitions/ErrorResponse"
  3785        parameters:
  3786          - name: "id"
  3787            in: "path"
  3788            required: true
  3789            description: "ID or name of the container"
  3790            type: "string"
  3791        tags: ["Container"]
  3792    /containers/{id}/stats:
  3793      get:
  3794        summary: "Get container stats based on resource usage"
  3795        description: |
  3796          This endpoint returns a live stream of a container’s resource usage
  3797          statistics.
  3798  
  3799          The `precpu_stats` is the CPU statistic of last read, which is used
  3800          for calculating the CPU usage percentage. It is not the same as the
  3801          `cpu_stats` field.
  3802  
  3803          If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
  3804          nil then for compatibility with older daemons the length of the
  3805          corresponding `cpu_usage.percpu_usage` array should be used.
  3806        operationId: "ContainerStats"
  3807        produces: ["application/json"]
  3808        responses:
  3809          200:
  3810            description: "no error"
  3811            schema:
  3812              type: "object"
  3813            examples:
  3814              application/json:
  3815                read: "2015-01-08T22:57:31.547920715Z"
  3816                pids_stats:
  3817                  current: 3
  3818                networks:
  3819                  eth0:
  3820                    rx_bytes: 5338
  3821                    rx_dropped: 0
  3822                    rx_errors: 0
  3823                    rx_packets: 36
  3824                    tx_bytes: 648
  3825                    tx_dropped: 0
  3826                    tx_errors: 0
  3827                    tx_packets: 8
  3828                  eth5:
  3829                    rx_bytes: 4641
  3830                    rx_dropped: 0
  3831                    rx_errors: 0
  3832                    rx_packets: 26
  3833                    tx_bytes: 690
  3834                    tx_dropped: 0
  3835                    tx_errors: 0
  3836                    tx_packets: 9
  3837                memory_stats:
  3838                  stats:
  3839                    total_pgmajfault: 0
  3840                    cache: 0
  3841                    mapped_file: 0
  3842                    total_inactive_file: 0
  3843                    pgpgout: 414
  3844                    rss: 6537216
  3845                    total_mapped_file: 0
  3846                    writeback: 0
  3847                    unevictable: 0
  3848                    pgpgin: 477
  3849                    total_unevictable: 0
  3850                    pgmajfault: 0
  3851                    total_rss: 6537216
  3852                    total_rss_huge: 6291456
  3853                    total_writeback: 0
  3854                    total_inactive_anon: 0
  3855                    rss_huge: 6291456
  3856                    hierarchical_memory_limit: 67108864
  3857                    total_pgfault: 964
  3858                    total_active_file: 0
  3859                    active_anon: 6537216
  3860                    total_active_anon: 6537216
  3861                    total_pgpgout: 414
  3862                    total_cache: 0
  3863                    inactive_anon: 0
  3864                    active_file: 0
  3865                    pgfault: 964
  3866                    inactive_file: 0
  3867                    total_pgpgin: 477
  3868                  max_usage: 6651904
  3869                  usage: 6537216
  3870                  failcnt: 0
  3871                  limit: 67108864
  3872                blkio_stats: {}
  3873                cpu_stats:
  3874                  cpu_usage:
  3875                    percpu_usage:
  3876                      - 8646879
  3877                      - 24472255
  3878                      - 36438778
  3879                      - 30657443
  3880                    usage_in_usermode: 50000000
  3881                    total_usage: 100215355
  3882                    usage_in_kernelmode: 30000000
  3883                  system_cpu_usage: 739306590000000
  3884                  online_cpus: 4
  3885                  throttling_data:
  3886                    periods: 0
  3887                    throttled_periods: 0
  3888                    throttled_time: 0
  3889                precpu_stats:
  3890                  cpu_usage:
  3891                    percpu_usage:
  3892                      - 8646879
  3893                      - 24350896
  3894                      - 36438778
  3895                      - 30657443
  3896                    usage_in_usermode: 50000000
  3897                    total_usage: 100093996
  3898                    usage_in_kernelmode: 30000000
  3899                  system_cpu_usage: 9492140000000
  3900                  online_cpus: 4
  3901                  throttling_data:
  3902                    periods: 0
  3903                    throttled_periods: 0
  3904                    throttled_time: 0
  3905          404:
  3906            description: "no such container"
  3907            schema:
  3908              $ref: "#/definitions/ErrorResponse"
  3909            examples:
  3910              application/json:
  3911                message: "No such container: c2ada9df5af8"
  3912          500:
  3913            description: "server error"
  3914            schema:
  3915              $ref: "#/definitions/ErrorResponse"
  3916        parameters:
  3917          - name: "id"
  3918            in: "path"
  3919            required: true
  3920            description: "ID or name of the container"
  3921            type: "string"
  3922          - name: "stream"
  3923            in: "query"
  3924            description: "Stream the output. If false, the stats will be output once and then it will disconnect."
  3925            type: "boolean"
  3926            default: true
  3927        tags: ["Container"]
  3928    /containers/{id}/resize:
  3929      post:
  3930        summary: "Resize a container TTY"
  3931        description: "Resize the TTY for a container. You must restart the container for the resize to take effect."
  3932        operationId: "ContainerResize"
  3933        consumes:
  3934          - "application/octet-stream"
  3935        produces:
  3936          - "text/plain"
  3937        responses:
  3938          200:
  3939            description: "no error"
  3940          404:
  3941            description: "no such container"
  3942            schema:
  3943              $ref: "#/definitions/ErrorResponse"
  3944            examples:
  3945              application/json:
  3946                message: "No such container: c2ada9df5af8"
  3947          500:
  3948            description: "cannot resize container"
  3949            schema:
  3950              $ref: "#/definitions/ErrorResponse"
  3951        parameters:
  3952          - name: "id"
  3953            in: "path"
  3954            required: true
  3955            description: "ID or name of the container"
  3956            type: "string"
  3957          - name: "h"
  3958            in: "query"
  3959            description: "Height of the tty session in characters"
  3960            type: "integer"
  3961          - name: "w"
  3962            in: "query"
  3963            description: "Width of the tty session in characters"
  3964            type: "integer"
  3965        tags: ["Container"]
  3966    /containers/{id}/start:
  3967      post:
  3968        summary: "Start a container"
  3969        operationId: "ContainerStart"
  3970        responses:
  3971          204:
  3972            description: "no error"
  3973          304:
  3974            description: "container already started"
  3975            schema:
  3976              $ref: "#/definitions/ErrorResponse"
  3977          404:
  3978            description: "no such container"
  3979            schema:
  3980              $ref: "#/definitions/ErrorResponse"
  3981            examples:
  3982              application/json:
  3983                message: "No such container: c2ada9df5af8"
  3984          500:
  3985            description: "server error"
  3986            schema:
  3987              $ref: "#/definitions/ErrorResponse"
  3988        parameters:
  3989          - name: "id"
  3990            in: "path"
  3991            required: true
  3992            description: "ID or name of the container"
  3993            type: "string"
  3994          - name: "detachKeys"
  3995            in: "query"
  3996            description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
  3997            type: "string"
  3998        tags: ["Container"]
  3999    /containers/{id}/stop:
  4000      post:
  4001        summary: "Stop a container"
  4002        operationId: "ContainerStop"
  4003        responses:
  4004          204:
  4005            description: "no error"
  4006          304:
  4007            description: "container already stopped"
  4008            schema:
  4009              $ref: "#/definitions/ErrorResponse"
  4010          404:
  4011            description: "no such container"
  4012            schema:
  4013              $ref: "#/definitions/ErrorResponse"
  4014            examples:
  4015              application/json:
  4016                message: "No such container: c2ada9df5af8"
  4017          500:
  4018            description: "server error"
  4019            schema:
  4020              $ref: "#/definitions/ErrorResponse"
  4021        parameters:
  4022          - name: "id"
  4023            in: "path"
  4024            required: true
  4025            description: "ID or name of the container"
  4026            type: "string"
  4027          - name: "t"
  4028            in: "query"
  4029            description: "Number of seconds to wait before killing the container"
  4030            type: "integer"
  4031        tags: ["Container"]
  4032    /containers/{id}/restart:
  4033      post:
  4034        summary: "Restart a container"
  4035        operationId: "ContainerRestart"
  4036        responses:
  4037          204:
  4038            description: "no error"
  4039          404:
  4040            description: "no such container"
  4041            schema:
  4042              $ref: "#/definitions/ErrorResponse"
  4043            examples:
  4044              application/json:
  4045                message: "No such container: c2ada9df5af8"
  4046          500:
  4047            description: "server error"
  4048            schema:
  4049              $ref: "#/definitions/ErrorResponse"
  4050        parameters:
  4051          - name: "id"
  4052            in: "path"
  4053            required: true
  4054            description: "ID or name of the container"
  4055            type: "string"
  4056          - name: "t"
  4057            in: "query"
  4058            description: "Number of seconds to wait before killing the container"
  4059            type: "integer"
  4060        tags: ["Container"]
  4061    /containers/{id}/kill:
  4062      post:
  4063        summary: "Kill a container"
  4064        description: "Send a POSIX signal to a container, defaulting to killing to the container."
  4065        operationId: "ContainerKill"
  4066        responses:
  4067          204:
  4068            description: "no error"
  4069          404:
  4070            description: "no such container"
  4071            schema:
  4072              $ref: "#/definitions/ErrorResponse"
  4073            examples:
  4074              application/json:
  4075                message: "No such container: c2ada9df5af8"
  4076          500:
  4077            description: "server error"
  4078            schema:
  4079              $ref: "#/definitions/ErrorResponse"
  4080        parameters:
  4081          - name: "id"
  4082            in: "path"
  4083            required: true
  4084            description: "ID or name of the container"
  4085            type: "string"
  4086          - name: "signal"
  4087            in: "query"
  4088            description: "Signal to send to the container as an integer or string (e.g. `SIGINT`)"
  4089            type: "string"
  4090            default: "SIGKILL"
  4091        tags: ["Container"]
  4092    /containers/{id}/update:
  4093      post:
  4094        summary: "Update a container"
  4095        description: "Change various configuration options of a container without having to recreate it."
  4096        operationId: "ContainerUpdate"
  4097        consumes: ["application/json"]
  4098        produces: ["application/json"]
  4099        responses:
  4100          200:
  4101            description: "The container has been updated."
  4102            schema:
  4103              type: "object"
  4104              properties:
  4105                Warnings:
  4106                  type: "array"
  4107                  items:
  4108                    type: "string"
  4109          404:
  4110            description: "no such container"
  4111            schema:
  4112              $ref: "#/definitions/ErrorResponse"
  4113            examples:
  4114              application/json:
  4115                message: "No such container: c2ada9df5af8"
  4116          500:
  4117            description: "server error"
  4118            schema:
  4119              $ref: "#/definitions/ErrorResponse"
  4120        parameters:
  4121          - name: "id"
  4122            in: "path"
  4123            required: true
  4124            description: "ID or name of the container"
  4125            type: "string"
  4126          - name: "update"
  4127            in: "body"
  4128            required: true
  4129            schema:
  4130              allOf:
  4131                - $ref: "#/definitions/Resources"
  4132                - type: "object"
  4133                  properties:
  4134                    RestartPolicy:
  4135                      $ref: "#/definitions/RestartPolicy"
  4136              example:
  4137                BlkioWeight: 300
  4138                CpuShares: 512
  4139                CpuPeriod: 100000
  4140                CpuQuota: 50000
  4141                CpuRealtimePeriod: 1000000
  4142                CpuRealtimeRuntime: 10000
  4143                CpusetCpus: "0,1"
  4144                CpusetMems: "0"
  4145                Memory: 314572800
  4146                MemorySwap: 514288000
  4147                MemoryReservation: 209715200
  4148                KernelMemory: 52428800
  4149                RestartPolicy:
  4150                  MaximumRetryCount: 4
  4151                  Name: "on-failure"
  4152        tags: ["Container"]
  4153    /containers/{id}/rename:
  4154      post:
  4155        summary: "Rename a container"
  4156        operationId: "ContainerRename"
  4157        responses:
  4158          204:
  4159            description: "no error"
  4160          404:
  4161            description: "no such container"
  4162            schema:
  4163              $ref: "#/definitions/ErrorResponse"
  4164            examples:
  4165              application/json:
  4166                message: "No such container: c2ada9df5af8"
  4167          409:
  4168            description: "name already in use"
  4169            schema:
  4170              $ref: "#/definitions/ErrorResponse"
  4171          500:
  4172            description: "server error"
  4173            schema:
  4174              $ref: "#/definitions/ErrorResponse"
  4175        parameters:
  4176          - name: "id"
  4177            in: "path"
  4178            required: true
  4179            description: "ID or name of the container"
  4180            type: "string"
  4181          - name: "name"
  4182            in: "query"
  4183            required: true
  4184            description: "New name for the container"
  4185            type: "string"
  4186        tags: ["Container"]
  4187    /containers/{id}/pause:
  4188      post:
  4189        summary: "Pause a container"
  4190        description: |
  4191          Use the cgroups freezer to suspend all processes in a container.
  4192  
  4193          Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.
  4194        operationId: "ContainerPause"
  4195        responses:
  4196          204:
  4197            description: "no error"
  4198          404:
  4199            description: "no such container"
  4200            schema:
  4201              $ref: "#/definitions/ErrorResponse"
  4202            examples:
  4203              application/json:
  4204                message: "No such container: c2ada9df5af8"
  4205          500:
  4206            description: "server error"
  4207            schema:
  4208              $ref: "#/definitions/ErrorResponse"
  4209        parameters:
  4210          - name: "id"
  4211            in: "path"
  4212            required: true
  4213            description: "ID or name of the container"
  4214            type: "string"
  4215        tags: ["Container"]
  4216    /containers/{id}/unpause:
  4217      post:
  4218        summary: "Unpause a container"
  4219        description: "Resume a container which has been paused."
  4220        operationId: "ContainerUnpause"
  4221        responses:
  4222          204:
  4223            description: "no error"
  4224          404:
  4225            description: "no such container"
  4226            schema:
  4227              $ref: "#/definitions/ErrorResponse"
  4228            examples:
  4229              application/json:
  4230                message: "No such container: c2ada9df5af8"
  4231          500:
  4232            description: "server error"
  4233            schema:
  4234              $ref: "#/definitions/ErrorResponse"
  4235        parameters:
  4236          - name: "id"
  4237            in: "path"
  4238            required: true
  4239            description: "ID or name of the container"
  4240            type: "string"
  4241        tags: ["Container"]
  4242    /containers/{id}/attach:
  4243      post:
  4244        summary: "Attach to a container"
  4245        description: |
  4246          Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.
  4247  
  4248          Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything.
  4249  
  4250          See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.
  4251  
  4252          ### Hijacking
  4253  
  4254          This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.
  4255  
  4256          This is the response from the daemon for an attach request:
  4257  
  4258          ```
  4259          HTTP/1.1 200 OK
  4260          Content-Type: application/vnd.docker.raw-stream
  4261  
  4262          [STREAM]
  4263          ```
  4264  
  4265          After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.
  4266  
  4267          To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.
  4268  
  4269          For example, the client sends this request to upgrade the connection:
  4270  
  4271          ```
  4272          POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1
  4273          Upgrade: tcp
  4274          Connection: Upgrade
  4275          ```
  4276  
  4277          The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:
  4278  
  4279          ```
  4280          HTTP/1.1 101 UPGRADED
  4281          Content-Type: application/vnd.docker.raw-stream
  4282          Connection: Upgrade
  4283          Upgrade: tcp
  4284  
  4285          [STREAM]
  4286          ```
  4287  
  4288          ### Stream format
  4289  
  4290          When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.
  4291  
  4292          The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).
  4293  
  4294          It is encoded on the first eight bytes like this:
  4295  
  4296          ```go
  4297          header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}
  4298          ```
  4299  
  4300          `STREAM_TYPE` can be:
  4301  
  4302          - 0: `stdin` (is written on `stdout`)
  4303          - 1: `stdout`
  4304          - 2: `stderr`
  4305  
  4306          `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.
  4307  
  4308          Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.
  4309  
  4310          The simplest way to implement this protocol is the following:
  4311  
  4312          1. Read 8 bytes.
  4313          2. Choose `stdout` or `stderr` depending on the first byte.
  4314          3. Extract the frame size from the last four bytes.
  4315          4. Read the extracted size and output it on the correct output.
  4316          5. Goto 1.
  4317  
  4318          ### Stream format when using a TTY
  4319  
  4320          When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.
  4321  
  4322        operationId: "ContainerAttach"
  4323        produces:
  4324          - "application/vnd.docker.raw-stream"
  4325        responses:
  4326          101:
  4327            description: "no error, hints proxy about hijacking"
  4328          200:
  4329            description: "no error, no upgrade header found"
  4330          400:
  4331            description: "bad parameter"
  4332            schema:
  4333              $ref: "#/definitions/ErrorResponse"
  4334          404:
  4335            description: "no such container"
  4336            schema:
  4337              $ref: "#/definitions/ErrorResponse"
  4338            examples:
  4339              application/json:
  4340                message: "No such container: c2ada9df5af8"
  4341          500:
  4342            description: "server error"
  4343            schema:
  4344              $ref: "#/definitions/ErrorResponse"
  4345        parameters:
  4346          - name: "id"
  4347            in: "path"
  4348            required: true
  4349            description: "ID or name of the container"
  4350            type: "string"
  4351          - name: "detachKeys"
  4352            in: "query"
  4353            description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
  4354            type: "string"
  4355          - name: "logs"
  4356            in: "query"
  4357            description: |
  4358              Replay previous logs from the container.
  4359  
  4360              This is useful for attaching to a container that has started and you want to output everything since the container started.
  4361  
  4362              If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.
  4363            type: "boolean"
  4364            default: false
  4365          - name: "stream"
  4366            in: "query"
  4367            description: "Stream attached streams from the time the request was made onwards"
  4368            type: "boolean"
  4369            default: false
  4370          - name: "stdin"
  4371            in: "query"
  4372            description: "Attach to `stdin`"
  4373            type: "boolean"
  4374            default: false
  4375          - name: "stdout"
  4376            in: "query"
  4377            description: "Attach to `stdout`"
  4378            type: "boolean"
  4379            default: false
  4380          - name: "stderr"
  4381            in: "query"
  4382            description: "Attach to `stderr`"
  4383            type: "boolean"
  4384            default: false
  4385        tags: ["Container"]
  4386    /containers/{id}/attach/ws:
  4387      get:
  4388        summary: "Attach to a container via a websocket"
  4389        operationId: "ContainerAttachWebsocket"
  4390        responses:
  4391          101:
  4392            description: "no error, hints proxy about hijacking"
  4393          200:
  4394            description: "no error, no upgrade header found"
  4395          400:
  4396            description: "bad parameter"
  4397            schema:
  4398              $ref: "#/definitions/ErrorResponse"
  4399          404:
  4400            description: "no such container"
  4401            schema:
  4402              $ref: "#/definitions/ErrorResponse"
  4403            examples:
  4404              application/json:
  4405                message: "No such container: c2ada9df5af8"
  4406          500:
  4407            description: "server error"
  4408            schema:
  4409              $ref: "#/definitions/ErrorResponse"
  4410        parameters:
  4411          - name: "id"
  4412            in: "path"
  4413            required: true
  4414            description: "ID or name of the container"
  4415            type: "string"
  4416          - name: "detachKeys"
  4417            in: "query"
  4418            description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,`, or `_`."
  4419            type: "string"
  4420          - name: "logs"
  4421            in: "query"
  4422            description: "Return logs"
  4423            type: "boolean"
  4424            default: false
  4425          - name: "stream"
  4426            in: "query"
  4427            description: "Return stream"
  4428            type: "boolean"
  4429            default: false
  4430          - name: "stdin"
  4431            in: "query"
  4432            description: "Attach to `stdin`"
  4433            type: "boolean"
  4434            default: false
  4435          - name: "stdout"
  4436            in: "query"
  4437            description: "Attach to `stdout`"
  4438            type: "boolean"
  4439            default: false
  4440          - name: "stderr"
  4441            in: "query"
  4442            description: "Attach to `stderr`"
  4443            type: "boolean"
  4444            default: false
  4445        tags: ["Container"]
  4446    /containers/{id}/wait:
  4447      post:
  4448        summary: "Wait for a container"
  4449        description: "Block until a container stops, then returns the exit code."
  4450        operationId: "ContainerWait"
  4451        produces: ["application/json"]
  4452        responses:
  4453          200:
  4454            description: "The container has exit."
  4455            schema:
  4456              type: "object"
  4457              required: [StatusCode]
  4458              properties:
  4459                StatusCode:
  4460                  description: "Exit code of the container"
  4461                  type: "integer"
  4462                  x-nullable: false
  4463          404:
  4464            description: "no such container"
  4465            schema:
  4466              $ref: "#/definitions/ErrorResponse"
  4467            examples:
  4468              application/json:
  4469                message: "No such container: c2ada9df5af8"
  4470          500:
  4471            description: "server error"
  4472            schema:
  4473              $ref: "#/definitions/ErrorResponse"
  4474        parameters:
  4475          - name: "id"
  4476            in: "path"
  4477            required: true
  4478            description: "ID or name of the container"
  4479            type: "string"
  4480          - name: "condition"
  4481            in: "query"
  4482            description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'."
  4483            type: "string"
  4484            default: "not-running"
  4485        tags: ["Container"]
  4486    /containers/{id}:
  4487      delete:
  4488        summary: "Remove a container"
  4489        operationId: "ContainerDelete"
  4490        responses:
  4491          204:
  4492            description: "no error"
  4493          400:
  4494            description: "bad parameter"
  4495            schema:
  4496              $ref: "#/definitions/ErrorResponse"
  4497          404:
  4498            description: "no such container"
  4499            schema:
  4500              $ref: "#/definitions/ErrorResponse"
  4501            examples:
  4502              application/json:
  4503                message: "No such container: c2ada9df5af8"
  4504          409:
  4505            description: "conflict"
  4506            schema:
  4507              $ref: "#/definitions/ErrorResponse"
  4508            examples:
  4509              application/json:
  4510                message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"
  4511          500:
  4512            description: "server error"
  4513            schema:
  4514              $ref: "#/definitions/ErrorResponse"
  4515        parameters:
  4516          - name: "id"
  4517            in: "path"
  4518            required: true
  4519            description: "ID or name of the container"
  4520            type: "string"
  4521          - name: "v"
  4522            in: "query"
  4523            description: "Remove the volumes associated with the container."
  4524            type: "boolean"
  4525            default: false
  4526          - name: "force"
  4527            in: "query"
  4528            description: "If the container is running, kill it before removing it."
  4529            type: "boolean"
  4530            default: false
  4531          - name: "link"
  4532            in: "query"
  4533            description: "Remove the specified link associated with the container."
  4534            type: "boolean"
  4535            default: false
  4536        tags: ["Container"]
  4537    /containers/{id}/archive:
  4538      head:
  4539        summary: "Get information about files in a container"
  4540        description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
  4541        operationId: "ContainerArchiveInfo"
  4542        responses:
  4543          200:
  4544            description: "no error"
  4545            headers:
  4546              X-Docker-Container-Path-Stat:
  4547                type: "string"
  4548                description: "TODO"
  4549          400:
  4550            description: "Bad parameter"
  4551            schema:
  4552              allOf:
  4553                - $ref: "#/definitions/ErrorResponse"
  4554                - type: "object"
  4555                  properties:
  4556                    message:
  4557                      description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
  4558                      type: "string"
  4559                      x-nullable: false
  4560          404:
  4561            description: "Container or path does not exist"
  4562            schema:
  4563              $ref: "#/definitions/ErrorResponse"
  4564            examples:
  4565              application/json:
  4566                message: "No such container: c2ada9df5af8"
  4567          500:
  4568            description: "Server error"
  4569            schema:
  4570              $ref: "#/definitions/ErrorResponse"
  4571        parameters:
  4572          - name: "id"
  4573            in: "path"
  4574            required: true
  4575            description: "ID or name of the container"
  4576            type: "string"
  4577          - name: "path"
  4578            in: "query"
  4579            required: true
  4580            description: "Resource in the container’s filesystem to archive."
  4581            type: "string"
  4582        tags: ["Container"]
  4583      get:
  4584        summary: "Get an archive of a filesystem resource in a container"
  4585        description: "Get a tar archive of a resource in the filesystem of container id."
  4586        operationId: "ContainerArchive"
  4587        produces: ["application/x-tar"]
  4588        responses:
  4589          200:
  4590            description: "no error"
  4591          400:
  4592            description: "Bad parameter"
  4593            schema:
  4594              allOf:
  4595                - $ref: "#/definitions/ErrorResponse"
  4596                - type: "object"
  4597                  properties:
  4598                    message:
  4599                      description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
  4600                      type: "string"
  4601                      x-nullable: false
  4602          404:
  4603            description: "Container or path does not exist"
  4604            schema:
  4605              $ref: "#/definitions/ErrorResponse"
  4606            examples:
  4607              application/json:
  4608                message: "No such container: c2ada9df5af8"
  4609          500:
  4610            description: "server error"
  4611            schema:
  4612              $ref: "#/definitions/ErrorResponse"
  4613        parameters:
  4614          - name: "id"
  4615            in: "path"
  4616            required: true
  4617            description: "ID or name of the container"
  4618            type: "string"
  4619          - name: "path"
  4620            in: "query"
  4621            required: true
  4622            description: "Resource in the container’s filesystem to archive."
  4623            type: "string"
  4624        tags: ["Container"]
  4625      put:
  4626        summary: "Extract an archive of files or folders to a directory in a container"
  4627        description: "Upload a tar archive to be extracted to a path in the filesystem of container id."
  4628        operationId: "PutContainerArchive"
  4629        consumes: ["application/x-tar", "application/octet-stream"]
  4630        responses:
  4631          200:
  4632            description: "The content was extracted successfully"
  4633          400:
  4634            description: "Bad parameter"
  4635            schema:
  4636              $ref: "#/definitions/ErrorResponse"
  4637          403:
  4638            description: "Permission denied, the volume or container rootfs is marked as read-only."
  4639            schema:
  4640              $ref: "#/definitions/ErrorResponse"
  4641          404:
  4642            description: "No such container or path does not exist inside the container"
  4643            schema:
  4644              $ref: "#/definitions/ErrorResponse"
  4645            examples:
  4646              application/json:
  4647                message: "No such container: c2ada9df5af8"
  4648          500:
  4649            description: "Server error"
  4650            schema:
  4651              $ref: "#/definitions/ErrorResponse"
  4652        parameters:
  4653          - name: "id"
  4654            in: "path"
  4655            required: true
  4656            description: "ID or name of the container"
  4657            type: "string"
  4658          - name: "path"
  4659            in: "query"
  4660            required: true
  4661            description: "Path to a directory in the container to extract the archive’s contents into. "
  4662            type: "string"
  4663          - name: "noOverwriteDirNonDir"
  4664            in: "query"
  4665            description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa."
  4666            type: "string"
  4667          - name: "inputStream"
  4668            in: "body"
  4669            required: true
  4670            description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
  4671            schema:
  4672              type: "string"
  4673        tags: ["Container"]
  4674    /containers/prune:
  4675      post:
  4676        summary: "Delete stopped containers"
  4677        produces:
  4678          - "application/json"
  4679        operationId: "ContainerPrune"
  4680        parameters:
  4681          - name: "filters"
  4682            in: "query"
  4683            description: |
  4684              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
  4685  
  4686              Available filters:
  4687              - `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.
  4688              - `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.
  4689            type: "string"
  4690        responses:
  4691          200:
  4692            description: "No error"
  4693            schema:
  4694              type: "object"
  4695              properties:
  4696                ContainersDeleted:
  4697                  description: "Container IDs that were deleted"
  4698                  type: "array"
  4699                  items:
  4700                    type: "string"
  4701                SpaceReclaimed:
  4702                  description: "Disk space reclaimed in bytes"
  4703                  type: "integer"
  4704                  format: "int64"
  4705          500:
  4706            description: "Server error"
  4707            schema:
  4708              $ref: "#/definitions/ErrorResponse"
  4709        tags: ["Container"]
  4710    /images/json:
  4711      get:
  4712        summary: "List Images"
  4713        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."
  4714        operationId: "ImageList"
  4715        produces:
  4716          - "application/json"
  4717        responses:
  4718          200:
  4719            description: "Summary image data for the images matching the query"
  4720            schema:
  4721              type: "array"
  4722              items:
  4723                $ref: "#/definitions/ImageSummary"
  4724            examples:
  4725              application/json:
  4726                - Id: "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"
  4727                  ParentId: ""
  4728                  RepoTags:
  4729                    - "ubuntu:12.04"
  4730                    - "ubuntu:precise"
  4731                  RepoDigests:
  4732                    - "ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787"
  4733                  Created: 1474925151
  4734                  Size: 103579269
  4735                  VirtualSize: 103579269
  4736                  SharedSize: 0
  4737                  Labels: {}
  4738                  Containers: 2
  4739                - Id: "sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175"
  4740                  ParentId: ""
  4741                  RepoTags:
  4742                    - "ubuntu:12.10"
  4743                    - "ubuntu:quantal"
  4744                  RepoDigests:
  4745                    - "ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7"
  4746                    - "ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3"
  4747                  Created: 1403128455
  4748                  Size: 172064416
  4749                  VirtualSize: 172064416
  4750                  SharedSize: 0
  4751                  Labels: {}
  4752                  Containers: 5
  4753          500:
  4754            description: "server error"
  4755            schema:
  4756              $ref: "#/definitions/ErrorResponse"
  4757        parameters:
  4758          - name: "all"
  4759            in: "query"
  4760            description: "Show all images. Only images from a final layer (no children) are shown by default."
  4761            type: "boolean"
  4762            default: false
  4763          - name: "filters"
  4764            in: "query"
  4765            description: |
  4766              A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
  4767  
  4768              - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
  4769              - `dangling=true`
  4770              - `label=key` or `label="key=value"` of an image label
  4771              - `reference`=(`<image-name>[:<tag>]`)
  4772              - `since`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
  4773            type: "string"
  4774          - name: "digests"
  4775            in: "query"
  4776            description: "Show digest information as a `RepoDigests` field on each image."
  4777            type: "boolean"
  4778            default: false
  4779        tags: ["Image"]
  4780    /build:
  4781      post:
  4782        summary: "Build an image"
  4783        description: |
  4784          Build an image from a tar archive with a `Dockerfile` in it.
  4785  
  4786          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/).
  4787  
  4788          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.
  4789  
  4790          The build is canceled if the client drops the connection by quitting or being killed.
  4791        operationId: "ImageBuild"
  4792        consumes:
  4793          - "application/octet-stream"
  4794        produces:
  4795          - "application/json"
  4796        parameters:
  4797          - name: "inputStream"
  4798            in: "body"
  4799            description: "A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
  4800            schema:
  4801              type: "string"
  4802              format: "binary"
  4803          - name: "dockerfile"
  4804            in: "query"
  4805            description: "Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`."
  4806            type: "string"
  4807            default: "Dockerfile"
  4808          - name: "t"
  4809            in: "query"
  4810            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."
  4811            type: "string"
  4812          - name: "extrahosts"
  4813            in: "query"
  4814            description: "Extra hosts to add to /etc/hosts"
  4815            type: "string"
  4816          - name: "remote"
  4817            in: "query"
  4818            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."
  4819            type: "string"
  4820          - name: "q"
  4821            in: "query"
  4822            description: "Suppress verbose build output."
  4823            type: "boolean"
  4824            default: false
  4825          - name: "nocache"
  4826            in: "query"
  4827            description: "Do not use the cache when building the image."
  4828            type: "boolean"
  4829            default: false
  4830          - name: "cachefrom"
  4831            in: "query"
  4832            description: "JSON array of images used for build cache resolution."
  4833            type: "string"
  4834          - name: "pull"
  4835            in: "query"
  4836            description: "Attempt to pull the image even if an older image exists locally."
  4837            type: "string"
  4838          - name: "rm"
  4839            in: "query"
  4840            description: "Remove intermediate containers after a successful build."
  4841            type: "boolean"
  4842            default: true
  4843          - name: "forcerm"
  4844            in: "query"
  4845            description: "Always remove intermediate containers, even upon failure."
  4846            type: "boolean"
  4847            default: false
  4848          - name: "memory"
  4849            in: "query"
  4850            description: "Set memory limit for build."
  4851            type: "integer"
  4852          - name: "memswap"
  4853            in: "query"
  4854            description: "Total memory (memory + swap). Set as `-1` to disable swap."
  4855            type: "integer"
  4856          - name: "cpushares"
  4857            in: "query"
  4858            description: "CPU shares (relative weight)."
  4859            type: "integer"
  4860          - name: "cpusetcpus"
  4861            in: "query"
  4862            description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)."
  4863            type: "string"
  4864          - name: "cpuperiod"
  4865            in: "query"
  4866            description: "The length of a CPU period in microseconds."
  4867            type: "integer"
  4868          - name: "cpuquota"
  4869            in: "query"
  4870            description: "Microseconds of CPU time that the container can get in a CPU period."
  4871            type: "integer"
  4872          - name: "buildargs"
  4873            in: "query"
  4874            description: "JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)"
  4875            type: "integer"
  4876          - name: "shmsize"
  4877            in: "query"
  4878            description: "Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB."
  4879            type: "integer"
  4880          - name: "squash"
  4881            in: "query"
  4882            description: "Squash the resulting images layers into a single layer. *(Experimental release only.)*"
  4883            type: "boolean"
  4884          - name: "labels"
  4885            in: "query"
  4886            description: "Arbitrary key/value labels to set on the image, as a JSON map of string pairs."
  4887            type: "string"
  4888          - name: "networkmode"
  4889            in: "query"
  4890            description: "Sets the networking mode for the run commands during
  4891          build. Supported standard values are: `bridge`, `host`, `none`, and
  4892          `container:<name|id>`. Any other value is taken as a custom network's
  4893          name to which this container should connect to."
  4894            type: "string"
  4895          - name: "Content-type"
  4896            in: "header"
  4897            type: "string"
  4898            enum:
  4899              - "application/x-tar"
  4900            default: "application/x-tar"
  4901          - name: "X-Registry-Config"
  4902            in: "header"
  4903            description: |
  4904              This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.
  4905  
  4906              The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:
  4907  
  4908              ```
  4909              {
  4910                "docker.example.com": {
  4911                  "username": "janedoe",
  4912                  "password": "hunter2"
  4913                },
  4914                "https://index.docker.io/v1/": {
  4915                  "username": "mobydock",
  4916                  "password": "conta1n3rize14"
  4917                }
  4918              }
  4919              ```
  4920  
  4921              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.
  4922            type: "string"
  4923        responses:
  4924          200:
  4925            description: "no error"
  4926          400:
  4927            description: "Bad parameter"
  4928            schema:
  4929              $ref: "#/definitions/ErrorResponse"
  4930          500:
  4931            description: "server error"
  4932            schema:
  4933              $ref: "#/definitions/ErrorResponse"
  4934        tags: ["Image"]
  4935    /build/prune:
  4936      post:
  4937        summary: "Delete builder cache"
  4938        produces:
  4939          - "application/json"
  4940        operationId: "BuildPrune"
  4941        responses:
  4942          200:
  4943            description: "No error"
  4944            schema:
  4945              type: "object"
  4946              properties:
  4947                SpaceReclaimed:
  4948                  description: "Disk space reclaimed in bytes"
  4949                  type: "integer"
  4950                  format: "int64"
  4951          500:
  4952            description: "Server error"
  4953            schema:
  4954              $ref: "#/definitions/ErrorResponse"
  4955        tags: ["Image"]
  4956    /images/create:
  4957      post:
  4958        summary: "Create an image"
  4959        description: "Create an image by either pulling it from a registry or importing it."
  4960        operationId: "ImageCreate"
  4961        consumes:
  4962          - "text/plain"
  4963          - "application/octet-stream"
  4964        produces:
  4965          - "application/json"
  4966        responses:
  4967          200:
  4968            description: "no error"
  4969          404:
  4970            description: "repository does not exist or no read access"
  4971            schema:
  4972              $ref: "#/definitions/ErrorResponse"
  4973          500:
  4974            description: "server error"
  4975            schema:
  4976              $ref: "#/definitions/ErrorResponse"
  4977        parameters:
  4978          - name: "fromImage"
  4979            in: "query"
  4980            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."
  4981            type: "string"
  4982          - name: "fromSrc"
  4983            in: "query"
  4984            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."
  4985            type: "string"
  4986          - name: "repo"
  4987            in: "query"
  4988            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."
  4989            type: "string"
  4990          - name: "tag"
  4991            in: "query"
  4992            description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled."
  4993            type: "string"
  4994          - name: "inputImage"
  4995            in: "body"
  4996            description: "Image content if the value `-` has been specified in fromSrc query parameter"
  4997            schema:
  4998              type: "string"
  4999            required: false
  5000          - name: "X-Registry-Auth"
  5001            in: "header"
  5002            description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
  5003            type: "string"
  5004        tags: ["Image"]
  5005    /images/{name}/json:
  5006      get:
  5007        summary: "Inspect an image"
  5008        description: "Return low-level information about an image."
  5009        operationId: "ImageInspect"
  5010        produces:
  5011          - "application/json"
  5012        responses:
  5013          200:
  5014            description: "No error"
  5015            schema:
  5016              $ref: "#/definitions/Image"
  5017            examples:
  5018              application/json:
  5019                Id: "sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c"
  5020                Container: "cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a"
  5021                Comment: ""
  5022                Os: "linux"
  5023                Architecture: "amd64"
  5024                Parent: "sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
  5025                ContainerConfig:
  5026                  Tty: false
  5027                  Hostname: "e611e15f9c9d"
  5028                  Domainname: ""
  5029                  AttachStdout: false
  5030                  PublishService: ""
  5031                  AttachStdin: false
  5032                  OpenStdin: false
  5033                  StdinOnce: false
  5034                  NetworkDisabled: false
  5035                  OnBuild: []
  5036                  Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
  5037                  User: ""
  5038                  WorkingDir: ""
  5039                  MacAddress: ""
  5040                  AttachStderr: false
  5041                  Labels:
  5042                    com.example.license: "GPL"
  5043                    com.example.version: "1.0"
  5044                    com.example.vendor: "Acme"
  5045                  Env:
  5046                    - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  5047                  Cmd:
  5048                    - "/bin/sh"
  5049                    - "-c"
  5050                    - "#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0"
  5051                DockerVersion: "1.9.0-dev"
  5052                VirtualSize: 188359297
  5053                Size: 0
  5054                Author: ""
  5055                Created: "2015-09-10T08:30:53.26995814Z"
  5056                GraphDriver:
  5057                  Name: "aufs"
  5058                  Data: {}
  5059                RepoDigests:
  5060                  - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"
  5061                RepoTags:
  5062                  - "example:1.0"
  5063                  - "example:latest"
  5064                  - "example:stable"
  5065                Config:
  5066                  Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
  5067                  NetworkDisabled: false
  5068                  OnBuild: []
  5069                  StdinOnce: false
  5070                  PublishService: ""
  5071                  AttachStdin: false
  5072                  OpenStdin: false
  5073                  Domainname: ""
  5074                  AttachStdout: false
  5075                  Tty: false
  5076                  Hostname: "e611e15f9c9d"
  5077                  Cmd:
  5078                    - "/bin/bash"
  5079                  Env:
  5080                    - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  5081                  Labels:
  5082                    com.example.vendor: "Acme"
  5083                    com.example.version: "1.0"
  5084                    com.example.license: "GPL"
  5085                  MacAddress: ""
  5086                  AttachStderr: false
  5087                  WorkingDir: ""
  5088                  User: ""
  5089                RootFS:
  5090                  Type: "layers"
  5091                  Layers:
  5092                    - "sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6"
  5093                    - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
  5094          404:
  5095            description: "No such image"
  5096            schema:
  5097              $ref: "#/definitions/ErrorResponse"
  5098            examples:
  5099              application/json:
  5100                message: "No such image: someimage (tag: latest)"
  5101          500:
  5102            description: "Server error"
  5103            schema:
  5104              $ref: "#/definitions/ErrorResponse"
  5105        parameters:
  5106          - name: "name"
  5107            in: "path"
  5108            description: "Image name or id"
  5109            type: "string"
  5110            required: true
  5111        tags: ["Image"]
  5112    /images/{name}/history:
  5113      get:
  5114        summary: "Get the history of an image"
  5115        description: "Return parent layers of an image."
  5116        operationId: "ImageHistory"
  5117        produces: ["application/json"]
  5118        responses:
  5119          200:
  5120            description: "List of image layers"
  5121            schema:
  5122              type: "array"
  5123              items:
  5124                type: "object"
  5125                x-go-name: HistoryResponseItem
  5126                required: [Id, Created, CreatedBy, Tags, Size, Comment]
  5127                properties:
  5128                  Id:
  5129                    type: "string"
  5130                    x-nullable: false
  5131                  Created:
  5132                    type: "integer"
  5133                    format: "int64"
  5134                    x-nullable: false
  5135                  CreatedBy:
  5136                    type: "string"
  5137                    x-nullable: false
  5138                  Tags:
  5139                    type: "array"
  5140                    items:
  5141                      type: "string"
  5142                  Size:
  5143                    type: "integer"
  5144                    format: "int64"
  5145                    x-nullable: false
  5146                  Comment:
  5147                    type: "string"
  5148                    x-nullable: false
  5149            examples:
  5150              application/json:
  5151                - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710"
  5152                  Created: 1398108230
  5153                  CreatedBy: "/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /"
  5154                  Tags:
  5155                    - "ubuntu:lucid"
  5156                    - "ubuntu:10.04"
  5157                  Size: 182964289
  5158                  Comment: ""
  5159                - Id: "6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8"
  5160                  Created: 1398108222
  5161                  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/"
  5162                  Tags: []
  5163                  Size: 0
  5164                  Comment: ""
  5165                - Id: "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"
  5166                  Created: 1371157430
  5167                  CreatedBy: ""
  5168                  Tags:
  5169                    - "scratch12:latest"
  5170                    - "scratch:latest"
  5171                  Size: 0
  5172                  Comment: "Imported from -"
  5173          404:
  5174            description: "No such image"
  5175            schema:
  5176              $ref: "#/definitions/ErrorResponse"
  5177          500:
  5178            description: "Server error"
  5179            schema:
  5180              $ref: "#/definitions/ErrorResponse"
  5181        parameters:
  5182          - name: "name"
  5183            in: "path"
  5184            description: "Image name or ID"
  5185            type: "string"
  5186            required: true
  5187        tags: ["Image"]
  5188    /images/{name}/push:
  5189      post:
  5190        summary: "Push an image"
  5191        description: |
  5192          Push an image to a registry.
  5193  
  5194          If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.
  5195  
  5196          The push is cancelled if the HTTP connection is closed.
  5197        operationId: "ImagePush"
  5198        consumes:
  5199          - "application/octet-stream"
  5200        responses:
  5201          200:
  5202            description: "No error"
  5203          404:
  5204            description: "No such image"
  5205            schema:
  5206              $ref: "#/definitions/ErrorResponse"
  5207          500:
  5208            description: "Server error"
  5209            schema:
  5210              $ref: "#/definitions/ErrorResponse"
  5211        parameters:
  5212          - name: "name"
  5213            in: "path"
  5214            description: "Image name or ID."
  5215            type: "string"
  5216            required: true
  5217          - name: "tag"
  5218            in: "query"
  5219            description: "The tag to associate with the image on the registry."
  5220            type: "string"
  5221          - name: "X-Registry-Auth"
  5222            in: "header"
  5223            description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
  5224            type: "string"
  5225            required: true
  5226        tags: ["Image"]
  5227    /images/{name}/tag:
  5228      post:
  5229        summary: "Tag an image"
  5230        description: "Tag an image so that it becomes part of a repository."
  5231        operationId: "ImageTag"
  5232        responses:
  5233          201:
  5234            description: "No error"
  5235          400:
  5236            description: "Bad parameter"
  5237            schema:
  5238              $ref: "#/definitions/ErrorResponse"
  5239          404:
  5240            description: "No such image"
  5241            schema:
  5242              $ref: "#/definitions/ErrorResponse"
  5243          409:
  5244            description: "Conflict"
  5245            schema:
  5246              $ref: "#/definitions/ErrorResponse"
  5247          500:
  5248            description: "Server error"
  5249            schema:
  5250              $ref: "#/definitions/ErrorResponse"
  5251        parameters:
  5252          - name: "name"
  5253            in: "path"
  5254            description: "Image name or ID to tag."
  5255            type: "string"
  5256            required: true
  5257          - name: "repo"
  5258            in: "query"
  5259            description: "The repository to tag in. For example, `someuser/someimage`."
  5260            type: "string"
  5261          - name: "tag"
  5262            in: "query"
  5263            description: "The name of the new tag."
  5264            type: "string"
  5265        tags: ["Image"]
  5266    /images/{name}:
  5267      delete:
  5268        summary: "Remove an image"
  5269        description: |
  5270          Remove an image, along with any untagged parent images that were
  5271          referenced by that image.
  5272  
  5273          Images can't be removed if they have descendant images, are being
  5274          used by a running container or are being used by a build.
  5275        operationId: "ImageDelete"
  5276        produces: ["application/json"]
  5277        responses:
  5278          200:
  5279            description: "The image was deleted successfully"
  5280            schema:
  5281              type: "array"
  5282              items:
  5283                $ref: "#/definitions/ImageDeleteResponseItem"
  5284            examples:
  5285              application/json:
  5286                - Untagged: "3e2f21a89f"
  5287                - Deleted: "3e2f21a89f"
  5288                - Deleted: "53b4f83ac9"
  5289          404:
  5290            description: "No such image"
  5291            schema:
  5292              $ref: "#/definitions/ErrorResponse"
  5293          409:
  5294            description: "Conflict"
  5295            schema:
  5296              $ref: "#/definitions/ErrorResponse"
  5297          500:
  5298            description: "Server error"
  5299            schema:
  5300              $ref: "#/definitions/ErrorResponse"
  5301        parameters:
  5302          - name: "name"
  5303            in: "path"
  5304            description: "Image name or ID"
  5305            type: "string"
  5306            required: true
  5307          - name: "force"
  5308            in: "query"
  5309            description: "Remove the image even if it is being used by stopped containers or has other tags"
  5310            type: "boolean"
  5311            default: false
  5312          - name: "noprune"
  5313            in: "query"
  5314            description: "Do not delete untagged parent images"
  5315            type: "boolean"
  5316            default: false
  5317        tags: ["Image"]
  5318    /images/search:
  5319      get:
  5320        summary: "Search images"
  5321        description: "Search for an image on Docker Hub."
  5322        operationId: "ImageSearch"
  5323        produces:
  5324          - "application/json"
  5325        responses:
  5326          200:
  5327            description: "No error"
  5328            schema:
  5329              type: "array"
  5330              items:
  5331                type: "object"
  5332                properties:
  5333                  description:
  5334                    type: "string"
  5335                  is_official:
  5336                    type: "boolean"
  5337                  is_automated:
  5338                    type: "boolean"
  5339                  name:
  5340                    type: "string"
  5341                  star_count:
  5342                    type: "integer"
  5343            examples:
  5344              application/json:
  5345                - description: ""
  5346                  is_official: false
  5347                  is_automated: false
  5348                  name: "wma55/u1210sshd"
  5349                  star_count: 0
  5350                - description: ""
  5351                  is_official: false
  5352                  is_automated: false
  5353                  name: "jdswinbank/sshd"
  5354                  star_count: 0
  5355                - description: ""
  5356                  is_official: false
  5357                  is_automated: false
  5358                  name: "vgauthier/sshd"
  5359                  star_count: 0
  5360          500:
  5361            description: "Server error"
  5362            schema:
  5363              $ref: "#/definitions/ErrorResponse"
  5364        parameters:
  5365          - name: "term"
  5366            in: "query"
  5367            description: "Term to search"
  5368            type: "string"
  5369            required: true
  5370          - name: "limit"
  5371            in: "query"
  5372            description: "Maximum number of results to return"
  5373            type: "integer"
  5374          - name: "filters"
  5375            in: "query"
  5376            description: |
  5377              A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
  5378  
  5379              - `is-automated=(true|false)`
  5380              - `is-official=(true|false)`
  5381              - `stars=<number>` Matches images that has at least 'number' stars.
  5382            type: "string"
  5383        tags: ["Image"]
  5384    /images/prune:
  5385      post:
  5386        summary: "Delete unused images"
  5387        produces:
  5388          - "application/json"
  5389        operationId: "ImagePrune"
  5390        parameters:
  5391          - name: "filters"
  5392            in: "query"
  5393            description: |
  5394              Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:
  5395  
  5396              - `dangling=<boolean>` When set to `true` (or `1`), prune only
  5397                 unused *and* untagged images. When set to `false`
  5398                 (or `0`), all unused images are pruned.
  5399              - `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.
  5400              - `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.
  5401            type: "string"
  5402        responses:
  5403          200:
  5404            description: "No error"
  5405            schema:
  5406              type: "object"
  5407              properties:
  5408                ImagesDeleted:
  5409                  description: "Images that were deleted"
  5410                  type: "array"
  5411                  items:
  5412                    $ref: "#/definitions/ImageDeleteResponseItem"
  5413                SpaceReclaimed:
  5414                  description: "Disk space reclaimed in bytes"
  5415                  type: "integer"
  5416                  format: "int64"
  5417          500:
  5418            description: "Server error"
  5419            schema:
  5420              $ref: "#/definitions/ErrorResponse"
  5421        tags: ["Image"]
  5422    /auth:
  5423      post:
  5424        summary: "Check auth configuration"
  5425        description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password."
  5426        operationId: "SystemAuth"
  5427        consumes: ["application/json"]
  5428        produces: ["application/json"]
  5429        responses:
  5430          200:
  5431            description: "An identity token was generated successfully."
  5432            schema:
  5433              type: "object"
  5434              required: [Status]
  5435              properties:
  5436                Status:
  5437                  description: "The status of the authentication"
  5438                  type: "string"
  5439                  x-nullable: false
  5440                IdentityToken:
  5441                  description: "An opaque token used to authenticate a user after a successful login"
  5442                  type: "string"
  5443                  x-nullable: false
  5444            examples:
  5445              application/json:
  5446                Status: "Login Succeeded"
  5447                IdentityToken: "9cbaf023786cd7..."
  5448          204:
  5449            description: "No error"
  5450          500:
  5451            description: "Server error"
  5452            schema:
  5453              $ref: "#/definitions/ErrorResponse"
  5454        parameters:
  5455          - name: "authConfig"
  5456            in: "body"
  5457            description: "Authentication to check"
  5458            schema:
  5459              $ref: "#/definitions/AuthConfig"
  5460        tags: ["System"]
  5461    /info:
  5462      get:
  5463        summary: "Get system information"
  5464        operationId: "SystemInfo"
  5465        produces:
  5466          - "application/json"
  5467        responses:
  5468          200:
  5469            description: "No error"
  5470            schema:
  5471              type: "object"
  5472              properties:
  5473                Architecture:
  5474                  type: "string"
  5475                Containers:
  5476                  type: "integer"
  5477                ContainersRunning:
  5478                  type: "integer"
  5479                ContainersStopped:
  5480                  type: "integer"
  5481                ContainersPaused:
  5482                  type: "integer"
  5483                CpuCfsPeriod:
  5484                  type: "boolean"
  5485                CpuCfsQuota:
  5486                  type: "boolean"
  5487                Debug:
  5488                  type: "boolean"
  5489                DiscoveryBackend:
  5490                  type: "string"
  5491                DockerRootDir:
  5492                  type: "string"
  5493                Driver:
  5494                  type: "string"
  5495                DriverStatus:
  5496                  type: "array"
  5497                  items:
  5498                    type: "array"
  5499                    items:
  5500                      type: "string"
  5501                SystemStatus:
  5502                  type: "array"
  5503                  items:
  5504                    type: "array"
  5505                    items:
  5506                      type: "string"
  5507                Plugins:
  5508                  type: "object"
  5509                  properties:
  5510                    Volume:
  5511                      type: "array"
  5512                      items:
  5513                        type: "string"
  5514                    Network:
  5515                      type: "array"
  5516                      items:
  5517                        type: "string"
  5518                    Log:
  5519                      type: "array"
  5520                      items:
  5521                        type: "string"
  5522                ExperimentalBuild:
  5523                  type: "boolean"
  5524                HttpProxy:
  5525                  type: "string"
  5526                HttpsProxy:
  5527                  type: "string"
  5528                ID:
  5529                  type: "string"
  5530                IPv4Forwarding:
  5531                  type: "boolean"
  5532                Images:
  5533                  type: "integer"
  5534                IndexServerAddress:
  5535                  type: "string"
  5536                InitPath:
  5537                  type: "string"
  5538                InitSha1:
  5539                  type: "string"
  5540                KernelVersion:
  5541                  type: "string"
  5542                Labels:
  5543                  type: "array"
  5544                  items:
  5545                    type: "string"
  5546                MemTotal:
  5547                  type: "integer"
  5548                MemoryLimit:
  5549                  type: "boolean"
  5550                NCPU:
  5551                  type: "integer"
  5552                NEventsListener:
  5553                  type: "integer"
  5554                NFd:
  5555                  type: "integer"
  5556                NGoroutines:
  5557                  type: "integer"
  5558                Name:
  5559                  type: "string"
  5560                NoProxy:
  5561                  type: "string"
  5562                OomKillDisable:
  5563                  type: "boolean"
  5564                OSType:
  5565                  type: "string"
  5566                OomScoreAdj:
  5567                  type: "integer"
  5568                OperatingSystem:
  5569                  type: "string"
  5570                RegistryConfig:
  5571                  type: "object"
  5572                  properties:
  5573                    IndexConfigs:
  5574                      type: "object"
  5575                      additionalProperties:
  5576                        type: "object"
  5577                        properties:
  5578                          Mirrors:
  5579                            type: "array"
  5580                            items:
  5581                              type: "string"
  5582                          Name:
  5583                            type: "string"
  5584                          Official:
  5585                            type: "boolean"
  5586                          Secure:
  5587                            type: "boolean"
  5588                    InsecureRegistryCIDRs:
  5589                      type: "array"
  5590                      items:
  5591                        type: "string"
  5592                SwapLimit:
  5593                  type: "boolean"
  5594                SystemTime:
  5595                  type: "string"
  5596                ServerVersion:
  5597                  type: "string"
  5598            examples:
  5599              application/json:
  5600                Architecture: "x86_64"
  5601                ClusterStore: "etcd://localhost:2379"
  5602                CgroupDriver: "cgroupfs"
  5603                Containers: 11
  5604                ContainersRunning: 7
  5605                ContainersStopped: 3
  5606                ContainersPaused: 1
  5607                CpuCfsPeriod: true
  5608                CpuCfsQuota: true
  5609                Debug: false
  5610                DockerRootDir: "/var/lib/docker"
  5611                Driver: "btrfs"
  5612                DriverStatus:
  5613                  -
  5614                    - ""
  5615                ExperimentalBuild: false
  5616                HttpProxy: "http://test:test@localhost:8080"
  5617                HttpsProxy: "https://test:test@localhost:8080"
  5618                ID: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS"
  5619                IPv4Forwarding: true
  5620                Images: 16
  5621                IndexServerAddress: "https://index.docker.io/v1/"
  5622                InitPath: "/usr/bin/docker"
  5623                InitSha1: ""
  5624                KernelMemory: true
  5625                KernelVersion: "3.12.0-1-amd64"
  5626                Labels:
  5627                  - "storage=ssd"
  5628                MemTotal: 2099236864
  5629                MemoryLimit: true
  5630                NCPU: 1
  5631                NEventsListener: 0
  5632                NFd: 11
  5633                NGoroutines: 21
  5634                Name: "prod-server-42"
  5635                NoProxy: "9.81.1.160"
  5636                OomKillDisable: true
  5637                OSType: "linux"
  5638                OperatingSystem: "Boot2Docker"
  5639                Plugins:
  5640                  Volume:
  5641                    - "local"
  5642                  Network:
  5643                    - "null"
  5644                    - "host"
  5645                    - "bridge"
  5646                RegistryConfig:
  5647                  IndexConfigs:
  5648                    docker.io:
  5649                      Name: "docker.io"
  5650                      Official: true
  5651                      Secure: true
  5652                  InsecureRegistryCIDRs:
  5653                    - "127.0.0.0/8"
  5654                SecurityOptions:
  5655                  - Key: "Name"
  5656                    Value: "seccomp"
  5657                  - Key: "Profile"
  5658                    Value: "default"
  5659                  - Key: "Name"
  5660                    Value: "apparmor"
  5661                  - Key: "Name"
  5662                    Value: "selinux"
  5663                  - Key: "Name"
  5664                    Value: "userns"
  5665                ServerVersion: "1.9.0"
  5666                SwapLimit: false
  5667                SystemStatus:
  5668                  -
  5669                    - "State"
  5670                    - "Healthy"
  5671                SystemTime: "2015-03-10T11:11:23.730591467-07:00"
  5672          500:
  5673            description: "Server error"
  5674            schema:
  5675              $ref: "#/definitions/ErrorResponse"
  5676        tags: ["System"]
  5677    /version:
  5678      get:
  5679        summary: "Get version"
  5680        description: "Returns the version of Docker that is running and various information about the system that Docker is running on."
  5681        operationId: "SystemVersion"
  5682        produces: ["application/json"]
  5683        responses:
  5684          200:
  5685            description: "no error"
  5686            schema:
  5687              type: "object"
  5688              properties:
  5689                Version:
  5690                  type: "string"
  5691                ApiVersion:
  5692                  type: "string"
  5693                MinAPIVersion:
  5694                  type: "string"
  5695                GitCommit:
  5696                  type: "string"
  5697                GoVersion:
  5698                  type: "string"
  5699                Os:
  5700                  type: "string"
  5701                Arch:
  5702                  type: "string"
  5703                KernelVersion:
  5704                  type: "string"
  5705                Experimental:
  5706                  type: "boolean"
  5707                BuildTime:
  5708                  type: "string"
  5709            examples:
  5710              application/json:
  5711                Version: "17.04.0"
  5712                Os: "linux"
  5713                KernelVersion: "3.19.0-23-generic"
  5714                GoVersion: "go1.7.5"
  5715                GitCommit: "deadbee"
  5716                Arch: "amd64"
  5717                ApiVersion: "1.27"
  5718                MinAPIVersion: "1.12"
  5719                BuildTime: "2016-06-14T07:09:13.444803460+00:00"
  5720                Experimental: true
  5721          500:
  5722            description: "server error"
  5723            schema:
  5724              $ref: "#/definitions/ErrorResponse"
  5725        tags: ["System"]
  5726    /_ping:
  5727      get:
  5728        summary: "Ping"
  5729        description: "This is a dummy endpoint you can use to test if the server is accessible."
  5730        operationId: "SystemPing"
  5731        produces: ["text/plain"]
  5732        responses:
  5733          200:
  5734            description: "no error"
  5735            schema:
  5736              type: "string"
  5737              example: "OK"
  5738            headers:
  5739              API-Version:
  5740                type: "string"
  5741                description: "Max API Version the server supports"
  5742              Docker-Experimental:
  5743                type: "boolean"
  5744                description: "If the server is running with experimental mode enabled"
  5745          500:
  5746            description: "server error"
  5747            schema:
  5748              $ref: "#/definitions/ErrorResponse"
  5749        tags: ["System"]
  5750    /commit:
  5751      post:
  5752        summary: "Create a new image from a container"
  5753        operationId: "ImageCommit"
  5754        consumes:
  5755          - "application/json"
  5756        produces:
  5757          - "application/json"
  5758        responses:
  5759          201:
  5760            description: "no error"
  5761            schema:
  5762              $ref: "#/definitions/IdResponse"
  5763          404:
  5764            description: "no such container"
  5765            schema:
  5766              $ref: "#/definitions/ErrorResponse"
  5767            examples:
  5768              application/json:
  5769                message: "No such container: c2ada9df5af8"
  5770          500:
  5771            description: "server error"
  5772            schema:
  5773              $ref: "#/definitions/ErrorResponse"
  5774        parameters:
  5775          - name: "containerConfig"
  5776            in: "body"
  5777            description: "The container configuration"
  5778            schema:
  5779              $ref: "#/definitions/ContainerConfig"
  5780          - name: "container"
  5781            in: "query"
  5782            description: "The ID or name of the container to commit"
  5783            type: "string"
  5784          - name: "repo"
  5785            in: "query"
  5786            description: "Repository name for the created image"
  5787            type: "string"
  5788          - name: "tag"
  5789            in: "query"
  5790            description: "Tag name for the create image"
  5791            type: "string"
  5792          - name: "comment"
  5793            in: "query"
  5794            description: "Commit message"
  5795            type: "string"
  5796          - name: "author"
  5797            in: "query"
  5798            description: "Author of the image (e.g., `John Hannibal Smith <hannibal@a-team.com>`)"
  5799            type: "string"
  5800          - name: "pause"
  5801            in: "query"
  5802            description: "Whether to pause the container before committing"
  5803            type: "boolean"
  5804            default: true
  5805          - name: "changes"
  5806            in: "query"
  5807            description: "`Dockerfile` instructions to apply while committing"
  5808            type: "string"
  5809        tags: ["Image"]
  5810    /events:
  5811      get:
  5812        summary: "Monitor events"
  5813        description: |
  5814          Stream real-time events from the server.
  5815  
  5816          Various objects within Docker report events when something happens to them.
  5817  
  5818          Containers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, and `update`
  5819  
  5820          Images report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, and `untag`
  5821  
  5822          Volumes report these events: `create`, `mount`, `unmount`, and `destroy`
  5823  
  5824          Networks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, and `remove`
  5825  
  5826          The Docker daemon reports these events: `reload`
  5827  
  5828          Services report these events: `create`, `update`, and `remove`
  5829  
  5830          Nodes report these events: `create`, `update`, and `remove`
  5831  
  5832          Secrets report these events: `create`, `update`, and `remove`
  5833  
  5834          Configs report these events: `create`, `update`, and `remove`
  5835  
  5836        operationId: "SystemEvents"
  5837        produces:
  5838          - "application/json"
  5839        responses:
  5840          200:
  5841            description: "no error"
  5842            schema:
  5843              type: "object"
  5844              properties:
  5845                Type:
  5846                  description: "The type of object emitting the event"
  5847                  type: "string"
  5848                Action:
  5849                  description: "The type of event"
  5850                  type: "string"
  5851                Actor:
  5852                  type: "object"
  5853                  properties:
  5854                    ID:
  5855                      description: "The ID of the object emitting the event"
  5856                      type: "string"
  5857                    Attributes:
  5858                      description: "Various key/value attributes of the object, depending on its type"
  5859                      type: "object"
  5860                      additionalProperties:
  5861                        type: "string"
  5862                time:
  5863                  description: "Timestamp of event"
  5864                  type: "integer"
  5865                timeNano:
  5866                  description: "Timestamp of event, with nanosecond accuracy"
  5867                  type: "integer"
  5868                  format: "int64"
  5869            examples:
  5870              application/json:
  5871                Type: "container"
  5872                Action: "create"
  5873                Actor:
  5874                  ID: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
  5875                  Attributes:
  5876                    com.example.some-label: "some-label-value"
  5877                    image: "alpine"
  5878                    name: "my-container"
  5879                time: 1461943101
  5880          400:
  5881            description: "bad parameter"
  5882            schema:
  5883              $ref: "#/definitions/ErrorResponse"
  5884          500:
  5885            description: "server error"
  5886            schema:
  5887              $ref: "#/definitions/ErrorResponse"
  5888        parameters:
  5889          - name: "since"
  5890            in: "query"
  5891            description: "Show events created since this timestamp then stream new events."
  5892            type: "string"
  5893          - name: "until"
  5894            in: "query"
  5895            description: "Show events created until this timestamp then stop streaming."
  5896            type: "string"
  5897          - name: "filters"
  5898            in: "query"
  5899            description: |
  5900              A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:
  5901  
  5902              - `container=<string>` container name or ID
  5903              - `daemon=<string>` daemon name or ID
  5904              - `event=<string>` event type
  5905              - `image=<string>` image name or ID
  5906              - `label=<string>` image or container label
  5907              - `network=<string>` network name or ID
  5908              - `plugin`=<string> plugin name or ID
  5909              - `scope`=<string> local or swarm
  5910              - `type=<string>` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret`
  5911              - `volume=<string>` volume name or ID
  5912            type: "string"
  5913        tags: ["System"]
  5914    /system/df:
  5915      get:
  5916        summary: "Get data usage information"
  5917        operationId: "SystemDataUsage"
  5918        responses:
  5919          200:
  5920            description: "no error"
  5921            schema:
  5922              type: "object"
  5923              properties:
  5924                LayersSize:
  5925                  type: "integer"
  5926                  format: "int64"
  5927                Images:
  5928                  type: "array"
  5929                  items:
  5930                    $ref: "#/definitions/ImageSummary"
  5931                Containers:
  5932                  type: "array"
  5933                  items:
  5934                    $ref: "#/definitions/ContainerSummary"
  5935                Volumes:
  5936                  type: "array"
  5937                  items:
  5938                    $ref: "#/definitions/Volume"
  5939              example:
  5940                LayersSize: 1092588
  5941                Images:
  5942                  -
  5943                    Id: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
  5944                    ParentId: ""
  5945                    RepoTags:
  5946                      - "busybox:latest"
  5947                    RepoDigests:
  5948                      - "busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6"
  5949                    Created: 1466724217
  5950                    Size: 1092588
  5951                    SharedSize: 0
  5952                    VirtualSize: 1092588
  5953                    Labels: {}
  5954                    Containers: 1
  5955                Containers:
  5956                  -
  5957                    Id: "e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148"
  5958                    Names:
  5959                      - "/top"
  5960                    Image: "busybox"
  5961                    ImageID: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
  5962                    Command: "top"
  5963                    Created: 1472592424
  5964                    Ports: []
  5965                    SizeRootFs: 1092588
  5966                    Labels: {}
  5967                    State: "exited"
  5968                    Status: "Exited (0) 56 minutes ago"
  5969                    HostConfig:
  5970                      NetworkMode: "default"
  5971                    NetworkSettings:
  5972                      Networks:
  5973                        bridge:
  5974                          IPAMConfig: null
  5975                          Links: null
  5976                          Aliases: null
  5977                          NetworkID: "d687bc59335f0e5c9ee8193e5612e8aee000c8c62ea170cfb99c098f95899d92"
  5978                          EndpointID: "8ed5115aeaad9abb174f68dcf135b49f11daf597678315231a32ca28441dec6a"
  5979                          Gateway: "172.18.0.1"
  5980                          IPAddress: "172.18.0.2"
  5981                          IPPrefixLen: 16
  5982                          IPv6Gateway: ""
  5983                          GlobalIPv6Address: ""
  5984                          GlobalIPv6PrefixLen: 0
  5985                          MacAddress: "02:42:ac:12:00:02"
  5986                    Mounts: []
  5987                Volumes:
  5988                  -
  5989                    Name: "my-volume"
  5990                    Driver: "local"
  5991                    Mountpoint: ""
  5992                    Labels: null
  5993                    Scope: ""
  5994                    Options: null
  5995                    UsageData:
  5996                      Size: 0
  5997                      RefCount: 0
  5998          500:
  5999            description: "server error"
  6000            schema:
  6001              $ref: "#/definitions/ErrorResponse"
  6002        tags: ["System"]
  6003    /images/{name}/get:
  6004      get:
  6005        summary: "Export an image"
  6006        description: |
  6007          Get a tarball containing all images and metadata for a repository.
  6008  
  6009          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.
  6010  
  6011          ### Image tarball format
  6012  
  6013          An image tarball contains one directory per image layer (named using its long ID), each containing these files:
  6014  
  6015          - `VERSION`: currently `1.0` - the file format version
  6016          - `json`: detailed layer information, similar to `docker inspect layer_id`
  6017          - `layer.tar`: A tarfile containing the filesystem changes in this layer
  6018  
  6019          The `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.
  6020  
  6021          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.
  6022  
  6023          ```json
  6024          {
  6025            "hello-world": {
  6026              "latest": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1"
  6027            }
  6028          }
  6029          ```
  6030        operationId: "ImageGet"
  6031        produces:
  6032          - "application/x-tar"
  6033        responses:
  6034          200:
  6035            description: "no error"
  6036            schema:
  6037              type: "string"
  6038              format: "binary"
  6039          500:
  6040            description: "server error"
  6041            schema:
  6042              $ref: "#/definitions/ErrorResponse"
  6043        parameters:
  6044          - name: "name"
  6045            in: "path"
  6046            description: "Image name or ID"
  6047            type: "string"
  6048            required: true
  6049        tags: ["Image"]
  6050    /images/get:
  6051      get:
  6052        summary: "Export several images"
  6053        description: |
  6054          Get a tarball containing all images and metadata for several image repositories.
  6055  
  6056          For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
  6057  
  6058          For details on the format, see [the export image endpoint](#operation/ImageGet).
  6059        operationId: "ImageGetAll"
  6060        produces:
  6061          - "application/x-tar"
  6062        responses:
  6063          200:
  6064            description: "no error"
  6065            schema:
  6066              type: "string"
  6067              format: "binary"
  6068          500:
  6069            description: "server error"
  6070            schema:
  6071              $ref: "#/definitions/ErrorResponse"
  6072        parameters:
  6073          - name: "names"
  6074            in: "query"
  6075            description: "Image names to filter by"
  6076            type: "array"
  6077            items:
  6078              type: "string"
  6079        tags: ["Image"]
  6080    /images/load:
  6081      post:
  6082        summary: "Import images"
  6083        description: |
  6084          Load a set of images and tags into a repository.
  6085  
  6086          For details on the format, see [the export image endpoint](#operation/ImageGet).
  6087        operationId: "ImageLoad"
  6088        consumes:
  6089          - "application/x-tar"
  6090        produces:
  6091          - "application/json"
  6092        responses:
  6093          200:
  6094            description: "no error"
  6095          500:
  6096            description: "server error"
  6097            schema:
  6098              $ref: "#/definitions/ErrorResponse"
  6099        parameters:
  6100          - name: "imagesTarball"
  6101            in: "body"
  6102            description: "Tar archive containing images"
  6103            schema:
  6104              type: "string"
  6105              format: "binary"
  6106          - name: "quiet"
  6107            in: "query"
  6108            description: "Suppress progress details during load."
  6109            type: "boolean"
  6110            default: false
  6111        tags: ["Image"]
  6112    /containers/{id}/exec:
  6113      post:
  6114        summary: "Create an exec instance"
  6115        description: "Run a command inside a running container."
  6116        operationId: "ContainerExec"
  6117        consumes:
  6118          - "application/json"
  6119        produces:
  6120          - "application/json"
  6121        responses:
  6122          201:
  6123            description: "no error"
  6124            schema:
  6125              $ref: "#/definitions/IdResponse"
  6126          404:
  6127            description: "no such container"
  6128            schema:
  6129              $ref: "#/definitions/ErrorResponse"
  6130            examples:
  6131              application/json:
  6132                message: "No such container: c2ada9df5af8"
  6133          409:
  6134            description: "container is paused"
  6135            schema:
  6136              $ref: "#/definitions/ErrorResponse"
  6137          500:
  6138            description: "Server error"
  6139            schema:
  6140              $ref: "#/definitions/ErrorResponse"
  6141        parameters:
  6142          - name: "execConfig"
  6143            in: "body"
  6144            description: "Exec configuration"
  6145            schema:
  6146              type: "object"
  6147              properties:
  6148                AttachStdin:
  6149                  type: "boolean"
  6150                  description: "Attach to `stdin` of the exec command."
  6151                AttachStdout:
  6152                  type: "boolean"
  6153                  description: "Attach to `stdout` of the exec command."
  6154                AttachStderr:
  6155                  type: "boolean"
  6156                  description: "Attach to `stderr` of the exec command."
  6157                DetachKeys:
  6158                  type: "string"
  6159                  description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
  6160                Tty:
  6161                  type: "boolean"
  6162                  description: "Allocate a pseudo-TTY."
  6163                Env:
  6164                  description: "A list of environment variables in the form `[\"VAR=value\", ...]`."
  6165                  type: "array"
  6166                  items:
  6167                    type: "string"
  6168                Cmd:
  6169                  type: "array"
  6170                  description: "Command to run, as a string or array of strings."
  6171                  items:
  6172                    type: "string"
  6173                Privileged:
  6174                  type: "boolean"
  6175                  description: "Runs the exec process with extended privileges."
  6176                  default: false
  6177                User:
  6178                  type: "string"
  6179                  description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`."
  6180              example:
  6181                AttachStdin: false
  6182                AttachStdout: true
  6183                AttachStderr: true
  6184                DetachKeys: "ctrl-p,ctrl-q"
  6185                Tty: false
  6186                Cmd:
  6187                  - "date"
  6188                Env:
  6189                  - "FOO=bar"
  6190                  - "BAZ=quux"
  6191            required: true
  6192          - name: "id"
  6193            in: "path"
  6194            description: "ID or name of container"
  6195            type: "string"
  6196            required: true
  6197        tags: ["Exec"]
  6198    /exec/{id}/start:
  6199      post:
  6200        summary: "Start an exec instance"
  6201        description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command."
  6202        operationId: "ExecStart"
  6203        consumes:
  6204          - "application/json"
  6205        produces:
  6206          - "application/vnd.docker.raw-stream"
  6207        responses:
  6208          200:
  6209            description: "No error"
  6210          404:
  6211            description: "No such exec instance"
  6212            schema:
  6213              $ref: "#/definitions/ErrorResponse"
  6214          409:
  6215            description: "Container is stopped or paused"
  6216            schema:
  6217              $ref: "#/definitions/ErrorResponse"
  6218        parameters:
  6219          - name: "execStartConfig"
  6220            in: "body"
  6221            schema:
  6222              type: "object"
  6223              properties:
  6224                Detach:
  6225                  type: "boolean"
  6226                  description: "Detach from the command."
  6227                Tty:
  6228                  type: "boolean"
  6229                  description: "Allocate a pseudo-TTY."
  6230              example:
  6231                Detach: false
  6232                Tty: false
  6233          - name: "id"
  6234            in: "path"
  6235            description: "Exec instance ID"
  6236            required: true
  6237            type: "string"
  6238        tags: ["Exec"]
  6239    /exec/{id}/resize:
  6240      post:
  6241        summary: "Resize an exec instance"
  6242        description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance."
  6243        operationId: "ExecResize"
  6244        responses:
  6245          201:
  6246            description: "No error"
  6247          404:
  6248            description: "No such exec instance"
  6249            schema:
  6250              $ref: "#/definitions/ErrorResponse"
  6251        parameters:
  6252          - name: "id"
  6253            in: "path"
  6254            description: "Exec instance ID"
  6255            required: true
  6256            type: "string"
  6257          - name: "h"
  6258            in: "query"
  6259            description: "Height of the TTY session in characters"
  6260            type: "integer"
  6261          - name: "w"
  6262            in: "query"
  6263            description: "Width of the TTY session in characters"
  6264            type: "integer"
  6265        tags: ["Exec"]
  6266    /exec/{id}/json:
  6267      get:
  6268        summary: "Inspect an exec instance"
  6269        description: "Return low-level information about an exec instance."
  6270        operationId: "ExecInspect"
  6271        produces:
  6272          - "application/json"
  6273        responses:
  6274          200:
  6275            description: "No error"
  6276            schema:
  6277              type: "object"
  6278              properties:
  6279                ID:
  6280                  type: "string"
  6281                Running:
  6282                  type: "boolean"
  6283                ExitCode:
  6284                  type: "integer"
  6285                ProcessConfig:
  6286                  $ref: "#/definitions/ProcessConfig"
  6287                OpenStdin:
  6288                  type: "boolean"
  6289                OpenStderr:
  6290                  type: "boolean"
  6291                OpenStdout:
  6292                  type: "boolean"
  6293                ContainerID:
  6294                  type: "string"
  6295                Pid:
  6296                  type: "integer"
  6297                  description: "The system process ID for the exec process."
  6298            examples:
  6299              application/json:
  6300                CanRemove: false
  6301                ContainerID: "b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126"
  6302                DetachKeys: ""
  6303                ExitCode: 2
  6304                ID: "f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b"
  6305                OpenStderr: true
  6306                OpenStdin: true
  6307                OpenStdout: true
  6308                ProcessConfig:
  6309                  arguments:
  6310                    - "-c"
  6311                    - "exit 2"
  6312                  entrypoint: "sh"
  6313                  privileged: false
  6314                  tty: true
  6315                  user: "1000"
  6316                Running: false
  6317                Pid: 42000
  6318          404:
  6319            description: "No such exec instance"
  6320            schema:
  6321              $ref: "#/definitions/ErrorResponse"
  6322          500:
  6323            description: "Server error"
  6324            schema:
  6325              $ref: "#/definitions/ErrorResponse"
  6326        parameters:
  6327          - name: "id"
  6328            in: "path"
  6329            description: "Exec instance ID"
  6330            required: true
  6331            type: "string"
  6332        tags: ["Exec"]
  6333  
  6334    /volumes:
  6335      get:
  6336        summary: "List volumes"
  6337        operationId: "VolumeList"
  6338        produces: ["application/json"]
  6339        responses:
  6340          200:
  6341            description: "Summary volume data that matches the query"
  6342            schema:
  6343              type: "object"
  6344              required: [Volumes, Warnings]
  6345              properties:
  6346                Volumes:
  6347                  type: "array"
  6348                  x-nullable: false
  6349                  description: "List of volumes"
  6350                  items:
  6351                    $ref: "#/definitions/Volume"
  6352                Warnings:
  6353                  type: "array"
  6354                  x-nullable: false
  6355                  description: "Warnings that occurred when fetching the list of volumes"
  6356                  items:
  6357                    type: "string"
  6358  
  6359            examples:
  6360              application/json:
  6361                Volumes:
  6362                  - CreatedAt: "2017-07-19T12:00:26Z"
  6363                    Name: "tardis"
  6364                    Driver: "local"
  6365                    Mountpoint: "/var/lib/docker/volumes/tardis"
  6366                    Labels:
  6367                      com.example.some-label: "some-value"
  6368                      com.example.some-other-label: "some-other-value"
  6369                    Scope: "local"
  6370                    Options:
  6371                      device: "tmpfs"
  6372                      o: "size=100m,uid=1000"
  6373                      type: "tmpfs"
  6374                Warnings: []
  6375          500:
  6376            description: "Server error"
  6377            schema:
  6378              $ref: "#/definitions/ErrorResponse"
  6379        parameters:
  6380          - name: "filters"
  6381            in: "query"
  6382            description: |
  6383              JSON encoded value of the filters (a `map[string][]string`) to
  6384              process on the volumes list. Available filters:
  6385  
  6386              - `dangling=<boolean>` When set to `true` (or `1`), returns all
  6387                 volumes that are not in use by a container. When set to `false`
  6388                 (or `0`), only volumes that are in use by one or more
  6389                 containers are returned.
  6390              - `driver=<volume-driver-name>` Matches volumes based on their driver.
  6391              - `label=<key>` or `label=<key>:<value>` Matches volumes based on
  6392                 the presence of a `label` alone or a `label` and a value.
  6393              - `name=<volume-name>` Matches all or part of a volume name.
  6394            type: "string"
  6395            format: "json"
  6396        tags: ["Volume"]
  6397  
  6398    /volumes/create:
  6399      post:
  6400        summary: "Create a volume"
  6401        operationId: "VolumeCreate"
  6402        consumes: ["application/json"]
  6403        produces: ["application/json"]
  6404        responses:
  6405          201:
  6406            description: "The volume was created successfully"
  6407            schema:
  6408              $ref: "#/definitions/Volume"
  6409          500:
  6410            description: "Server error"
  6411            schema:
  6412              $ref: "#/definitions/ErrorResponse"
  6413        parameters:
  6414          - name: "volumeConfig"
  6415            in: "body"
  6416            required: true
  6417            description: "Volume configuration"
  6418            schema:
  6419              type: "object"
  6420              properties:
  6421                Name:
  6422                  description: "The new volume's name. If not specified, Docker generates a name."
  6423                  type: "string"
  6424                  x-nullable: false
  6425                Driver:
  6426                  description: "Name of the volume driver to use."
  6427                  type: "string"
  6428                  default: "local"
  6429                  x-nullable: false
  6430                DriverOpts:
  6431                  description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific."
  6432                  type: "object"
  6433                  additionalProperties:
  6434                    type: "string"
  6435                Labels:
  6436                  description: "User-defined key/value metadata."
  6437                  type: "object"
  6438                  additionalProperties:
  6439                    type: "string"
  6440              example:
  6441                Name: "tardis"
  6442                Labels:
  6443                  com.example.some-label: "some-value"
  6444                  com.example.some-other-label: "some-other-value"
  6445                Driver: "custom"
  6446        tags: ["Volume"]
  6447  
  6448    /volumes/{name}:
  6449      get:
  6450        summary: "Inspect a volume"
  6451        operationId: "VolumeInspect"
  6452        produces: ["application/json"]
  6453        responses:
  6454          200:
  6455            description: "No error"
  6456            schema:
  6457              $ref: "#/definitions/Volume"
  6458          404:
  6459            description: "No such volume"
  6460            schema:
  6461              $ref: "#/definitions/ErrorResponse"
  6462          500:
  6463            description: "Server error"
  6464            schema:
  6465              $ref: "#/definitions/ErrorResponse"
  6466        parameters:
  6467          - name: "name"
  6468            in: "path"
  6469            required: true
  6470            description: "Volume name or ID"
  6471            type: "string"
  6472        tags: ["Volume"]
  6473  
  6474      delete:
  6475        summary: "Remove a volume"
  6476        description: "Instruct the driver to remove the volume."
  6477        operationId: "VolumeDelete"
  6478        responses:
  6479          204:
  6480            description: "The volume was removed"
  6481          404:
  6482            description: "No such volume or volume driver"
  6483            schema:
  6484              $ref: "#/definitions/ErrorResponse"
  6485          409:
  6486            description: "Volume is in use and cannot be removed"
  6487            schema:
  6488              $ref: "#/definitions/ErrorResponse"
  6489          500:
  6490            description: "Server error"
  6491            schema:
  6492              $ref: "#/definitions/ErrorResponse"
  6493        parameters:
  6494          - name: "name"
  6495            in: "path"
  6496            required: true
  6497            description: "Volume name or ID"
  6498            type: "string"
  6499          - name: "force"
  6500            in: "query"
  6501            description: "Force the removal of the volume"
  6502            type: "boolean"
  6503            default: false
  6504        tags: ["Volume"]
  6505    /volumes/prune:
  6506      post:
  6507        summary: "Delete unused volumes"
  6508        produces:
  6509          - "application/json"
  6510        operationId: "VolumePrune"
  6511        parameters:
  6512          - name: "filters"
  6513            in: "query"
  6514            description: |
  6515              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
  6516  
  6517              Available filters:
  6518              - `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.
  6519            type: "string"
  6520        responses:
  6521          200:
  6522            description: "No error"
  6523            schema:
  6524              type: "object"
  6525              properties:
  6526                VolumesDeleted:
  6527                  description: "Volumes that were deleted"
  6528                  type: "array"
  6529                  items:
  6530                    type: "string"
  6531                SpaceReclaimed:
  6532                  description: "Disk space reclaimed in bytes"
  6533                  type: "integer"
  6534                  format: "int64"
  6535          500:
  6536            description: "Server error"
  6537            schema:
  6538              $ref: "#/definitions/ErrorResponse"
  6539        tags: ["Volume"]
  6540    /networks:
  6541      get:
  6542        summary: "List networks"
  6543        description: |
  6544          Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).
  6545  
  6546          Note that it uses a different, smaller representation of a network than inspecting a single network. For example,
  6547          the list of containers attached to the network is not propagated in API versions 1.28 and up.
  6548        operationId: "NetworkList"
  6549        produces:
  6550          - "application/json"
  6551        responses:
  6552          200:
  6553            description: "No error"
  6554            schema:
  6555              type: "array"
  6556              items:
  6557                $ref: "#/definitions/Network"
  6558            examples:
  6559              application/json:
  6560                - Name: "bridge"
  6561                  Id: "f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566"
  6562                  Created: "2016-10-19T06:21:00.416543526Z"
  6563                  Scope: "local"
  6564                  Driver: "bridge"
  6565                  EnableIPv6: false
  6566                  Internal: false
  6567                  Attachable: false
  6568                  Ingress: false
  6569                  IPAM:
  6570                    Driver: "default"
  6571                    Config:
  6572                      -
  6573                        Subnet: "172.17.0.0/16"
  6574                  Options:
  6575                    com.docker.network.bridge.default_bridge: "true"
  6576                    com.docker.network.bridge.enable_icc: "true"
  6577                    com.docker.network.bridge.enable_ip_masquerade: "true"
  6578                    com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
  6579                    com.docker.network.bridge.name: "docker0"
  6580                    com.docker.network.driver.mtu: "1500"
  6581                - Name: "none"
  6582                  Id: "e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794"
  6583                  Created: "0001-01-01T00:00:00Z"
  6584                  Scope: "local"
  6585                  Driver: "null"
  6586                  EnableIPv6: false
  6587                  Internal: false
  6588                  Attachable: false
  6589                  Ingress: false
  6590                  IPAM:
  6591                    Driver: "default"
  6592                    Config: []
  6593                  Containers: {}
  6594                  Options: {}
  6595                - Name: "host"
  6596                  Id: "13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e"
  6597                  Created: "0001-01-01T00:00:00Z"
  6598                  Scope: "local"
  6599                  Driver: "host"
  6600                  EnableIPv6: false
  6601                  Internal: false
  6602                  Attachable: false
  6603                  Ingress: false
  6604                  IPAM:
  6605                    Driver: "default"
  6606                    Config: []
  6607                  Containers: {}
  6608                  Options: {}
  6609          500:
  6610            description: "Server error"
  6611            schema:
  6612              $ref: "#/definitions/ErrorResponse"
  6613        parameters:
  6614          - name: "filters"
  6615            in: "query"
  6616            description: |
  6617              JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:
  6618  
  6619              - `driver=<driver-name>` Matches a network's driver.
  6620              - `id=<network-id>` Matches all or part of a network ID.
  6621              - `label=<key>` or `label=<key>=<value>` of a network label.
  6622              - `name=<network-name>` Matches all or part of a network name.
  6623              - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`, `global`, or `local`).
  6624              - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks.
  6625            type: "string"
  6626        tags: ["Network"]
  6627  
  6628    /networks/{id}:
  6629      get:
  6630        summary: "Inspect a network"
  6631        operationId: "NetworkInspect"
  6632        produces:
  6633          - "application/json"
  6634        responses:
  6635          200:
  6636            description: "No error"
  6637            schema:
  6638              $ref: "#/definitions/Network"
  6639          404:
  6640            description: "Network not found"
  6641            schema:
  6642              $ref: "#/definitions/ErrorResponse"
  6643          500:
  6644            description: "Server error"
  6645            schema:
  6646              $ref: "#/definitions/ErrorResponse"
  6647        parameters:
  6648          - name: "id"
  6649            in: "path"
  6650            description: "Network ID or name"
  6651            required: true
  6652            type: "string"
  6653          - name: "verbose"
  6654            in: "query"
  6655            description: "Detailed inspect output for troubleshooting"
  6656            type: "boolean"
  6657            default: false
  6658          - name: "scope"
  6659            in: "query"
  6660            description: "Filter the network by scope (swarm, global, or local)"
  6661            type: "string"
  6662        tags: ["Network"]
  6663  
  6664      delete:
  6665        summary: "Remove a network"
  6666        operationId: "NetworkDelete"
  6667        responses:
  6668          204:
  6669            description: "No error"
  6670          403:
  6671            description: "operation not supported for pre-defined networks"
  6672            schema:
  6673              $ref: "#/definitions/ErrorResponse"
  6674          404:
  6675            description: "no such network"
  6676            schema:
  6677              $ref: "#/definitions/ErrorResponse"
  6678          500:
  6679            description: "Server error"
  6680            schema:
  6681              $ref: "#/definitions/ErrorResponse"
  6682        parameters:
  6683          - name: "id"
  6684            in: "path"
  6685            description: "Network ID or name"
  6686            required: true
  6687            type: "string"
  6688        tags: ["Network"]
  6689  
  6690    /networks/create:
  6691      post:
  6692        summary: "Create a network"
  6693        operationId: "NetworkCreate"
  6694        consumes:
  6695          - "application/json"
  6696        produces:
  6697          - "application/json"
  6698        responses:
  6699          201:
  6700            description: "No error"
  6701            schema:
  6702              type: "object"
  6703              properties:
  6704                Id:
  6705                  description: "The ID of the created network."
  6706                  type: "string"
  6707                Warning:
  6708                  type: "string"
  6709              example:
  6710                Id: "22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30"
  6711                Warning: ""
  6712          403:
  6713            description: "operation not supported for pre-defined networks"
  6714            schema:
  6715              $ref: "#/definitions/ErrorResponse"
  6716          404:
  6717            description: "plugin not found"
  6718            schema:
  6719              $ref: "#/definitions/ErrorResponse"
  6720          500:
  6721            description: "Server error"
  6722            schema:
  6723              $ref: "#/definitions/ErrorResponse"
  6724        parameters:
  6725          - name: "networkConfig"
  6726            in: "body"
  6727            description: "Network configuration"
  6728            required: true
  6729            schema:
  6730              type: "object"
  6731              required: ["Name"]
  6732              properties:
  6733                Name:
  6734                  description: "The network's name."
  6735                  type: "string"
  6736                CheckDuplicate:
  6737                  description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions."
  6738                  type: "boolean"
  6739                Driver:
  6740                  description: "Name of the network driver plugin to use."
  6741                  type: "string"
  6742                  default: "bridge"
  6743                Internal:
  6744                  description: "Restrict external access to the network."
  6745                  type: "boolean"
  6746                Attachable:
  6747                  description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode."
  6748                  type: "boolean"
  6749                Ingress:
  6750                  description: "Ingress network is the network which provides the routing-mesh in swarm mode."
  6751                  type: "boolean"
  6752                IPAM:
  6753                  description: "Optional custom IP scheme for the network."
  6754                  $ref: "#/definitions/IPAM"
  6755                EnableIPv6:
  6756                  description: "Enable IPv6 on the network."
  6757                  type: "boolean"
  6758                Options:
  6759                  description: "Network specific options to be used by the drivers."
  6760                  type: "object"
  6761                  additionalProperties:
  6762                    type: "string"
  6763                Labels:
  6764                  description: "User-defined key/value metadata."
  6765                  type: "object"
  6766                  additionalProperties:
  6767                    type: "string"
  6768              example:
  6769                Name: "isolated_nw"
  6770                CheckDuplicate: false
  6771                Driver: "bridge"
  6772                EnableIPv6: true
  6773                IPAM:
  6774                  Driver: "default"
  6775                  Config:
  6776                    - Subnet: "172.20.0.0/16"
  6777                      IPRange: "172.20.10.0/24"
  6778                      Gateway: "172.20.10.11"
  6779                    - Subnet: "2001:db8:abcd::/64"
  6780                      Gateway: "2001:db8:abcd::1011"
  6781                  Options:
  6782                    foo: "bar"
  6783                Internal: true
  6784                Attachable: false
  6785                Ingress: false
  6786                Options:
  6787                  com.docker.network.bridge.default_bridge: "true"
  6788                  com.docker.network.bridge.enable_icc: "true"
  6789                  com.docker.network.bridge.enable_ip_masquerade: "true"
  6790                  com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
  6791                  com.docker.network.bridge.name: "docker0"
  6792                  com.docker.network.driver.mtu: "1500"
  6793                Labels:
  6794                  com.example.some-label: "some-value"
  6795                  com.example.some-other-label: "some-other-value"
  6796        tags: ["Network"]
  6797  
  6798    /networks/{id}/connect:
  6799      post:
  6800        summary: "Connect a container to a network"
  6801        operationId: "NetworkConnect"
  6802        consumes:
  6803          - "application/octet-stream"
  6804        responses:
  6805          200:
  6806            description: "No error"
  6807          403:
  6808            description: "Operation not supported for swarm scoped networks"
  6809            schema:
  6810              $ref: "#/definitions/ErrorResponse"
  6811          404:
  6812            description: "Network or container not found"
  6813            schema:
  6814              $ref: "#/definitions/ErrorResponse"
  6815          500:
  6816            description: "Server error"
  6817            schema:
  6818              $ref: "#/definitions/ErrorResponse"
  6819        parameters:
  6820          - name: "id"
  6821            in: "path"
  6822            description: "Network ID or name"
  6823            required: true
  6824            type: "string"
  6825          - name: "container"
  6826            in: "body"
  6827            required: true
  6828            schema:
  6829              type: "object"
  6830              properties:
  6831                Container:
  6832                  type: "string"
  6833                  description: "The ID or name of the container to connect to the network."
  6834                EndpointConfig:
  6835                  $ref: "#/definitions/EndpointSettings"
  6836              example:
  6837                Container: "3613f73ba0e4"
  6838                EndpointConfig:
  6839                  IPAMConfig:
  6840                    IPv4Address: "172.24.56.89"
  6841                    IPv6Address: "2001:db8::5689"
  6842        tags: ["Network"]
  6843  
  6844    /networks/{id}/disconnect:
  6845      post:
  6846        summary: "Disconnect a container from a network"
  6847        operationId: "NetworkDisconnect"
  6848        consumes:
  6849          - "application/json"
  6850        responses:
  6851          200:
  6852            description: "No error"
  6853          403:
  6854            description: "Operation not supported for swarm scoped networks"
  6855            schema:
  6856              $ref: "#/definitions/ErrorResponse"
  6857          404:
  6858            description: "Network or container not found"
  6859            schema:
  6860              $ref: "#/definitions/ErrorResponse"
  6861          500:
  6862            description: "Server error"
  6863            schema:
  6864              $ref: "#/definitions/ErrorResponse"
  6865        parameters:
  6866          - name: "id"
  6867            in: "path"
  6868            description: "Network ID or name"
  6869            required: true
  6870            type: "string"
  6871          - name: "container"
  6872            in: "body"
  6873            required: true
  6874            schema:
  6875              type: "object"
  6876              properties:
  6877                Container:
  6878                  type: "string"
  6879                  description: "The ID or name of the container to disconnect from the network."
  6880                Force:
  6881                  type: "boolean"
  6882                  description: "Force the container to disconnect from the network."
  6883        tags: ["Network"]
  6884    /networks/prune:
  6885      post:
  6886        summary: "Delete unused networks"
  6887        produces:
  6888          - "application/json"
  6889        operationId: "NetworkPrune"
  6890        parameters:
  6891          - name: "filters"
  6892            in: "query"
  6893            description: |
  6894              Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
  6895  
  6896              Available filters:
  6897              - `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.
  6898              - `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.
  6899            type: "string"
  6900        responses:
  6901          200:
  6902            description: "No error"
  6903            schema:
  6904              type: "object"
  6905              properties:
  6906                NetworksDeleted:
  6907                  description: "Networks that were deleted"
  6908                  type: "array"
  6909                  items:
  6910                    type: "string"
  6911          500:
  6912            description: "Server error"
  6913            schema:
  6914              $ref: "#/definitions/ErrorResponse"
  6915        tags: ["Network"]
  6916    /plugins:
  6917      get:
  6918        summary: "List plugins"
  6919        operationId: "PluginList"
  6920        description: "Returns information about installed plugins."
  6921        produces: ["application/json"]
  6922        responses:
  6923          200:
  6924            description: "No error"
  6925            schema:
  6926              type: "array"
  6927              items:
  6928                $ref: "#/definitions/Plugin"
  6929          500:
  6930            description: "Server error"
  6931            schema:
  6932              $ref: "#/definitions/ErrorResponse"
  6933        parameters:
  6934          - name: "filters"
  6935            in: "query"
  6936            type: "string"
  6937            description: |
  6938              A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:
  6939  
  6940              - `capability=<capability name>`
  6941              - `enable=<true>|<false>`
  6942        tags: ["Plugin"]
  6943  
  6944    /plugins/privileges:
  6945      get:
  6946        summary: "Get plugin privileges"
  6947        operationId: "GetPluginPrivileges"
  6948        responses:
  6949          200:
  6950            description: "no error"
  6951            schema:
  6952              type: "array"
  6953              items:
  6954                description: "Describes a permission the user has to accept upon installing the plugin."
  6955                type: "object"
  6956                properties:
  6957                  Name:
  6958                    type: "string"
  6959                  Description:
  6960                    type: "string"
  6961                  Value:
  6962                    type: "array"
  6963                    items:
  6964                      type: "string"
  6965              example:
  6966                - Name: "network"
  6967                  Description: ""
  6968                  Value:
  6969                    - "host"
  6970                - Name: "mount"
  6971                  Description: ""
  6972                  Value:
  6973                    - "/data"
  6974                - Name: "device"
  6975                  Description: ""
  6976                  Value:
  6977                    - "/dev/cpu_dma_latency"
  6978          500:
  6979            description: "server error"
  6980            schema:
  6981              $ref: "#/definitions/ErrorResponse"
  6982        parameters:
  6983          - name: "remote"
  6984            in: "query"
  6985            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  6986            required: true
  6987            type: "string"
  6988        tags:
  6989          - "Plugin"
  6990  
  6991    /plugins/pull:
  6992      post:
  6993        summary: "Install a plugin"
  6994        operationId: "PluginPull"
  6995        description: |
  6996          Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
  6997        produces:
  6998          - "application/json"
  6999        responses:
  7000          204:
  7001            description: "no error"
  7002          500:
  7003            description: "server error"
  7004            schema:
  7005              $ref: "#/definitions/ErrorResponse"
  7006        parameters:
  7007          - name: "remote"
  7008            in: "query"
  7009            description: |
  7010              Remote reference for plugin to install.
  7011  
  7012              The `:latest` tag is optional, and is used as the default if omitted.
  7013            required: true
  7014            type: "string"
  7015          - name: "name"
  7016            in: "query"
  7017            description: |
  7018              Local name for the pulled plugin.
  7019  
  7020              The `:latest` tag is optional, and is used as the default if omitted.
  7021            required: false
  7022            type: "string"
  7023          - name: "X-Registry-Auth"
  7024            in: "header"
  7025            description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
  7026            type: "string"
  7027          - name: "body"
  7028            in: "body"
  7029            schema:
  7030              type: "array"
  7031              items:
  7032                description: "Describes a permission accepted by the user upon installing the plugin."
  7033                type: "object"
  7034                properties:
  7035                  Name:
  7036                    type: "string"
  7037                  Description:
  7038                    type: "string"
  7039                  Value:
  7040                    type: "array"
  7041                    items:
  7042                      type: "string"
  7043              example:
  7044                - Name: "network"
  7045                  Description: ""
  7046                  Value:
  7047                    - "host"
  7048                - Name: "mount"
  7049                  Description: ""
  7050                  Value:
  7051                    - "/data"
  7052                - Name: "device"
  7053                  Description: ""
  7054                  Value:
  7055                    - "/dev/cpu_dma_latency"
  7056        tags: ["Plugin"]
  7057    /plugins/{name}/json:
  7058      get:
  7059        summary: "Inspect a plugin"
  7060        operationId: "PluginInspect"
  7061        responses:
  7062          200:
  7063            description: "no error"
  7064            schema:
  7065              $ref: "#/definitions/Plugin"
  7066          404:
  7067            description: "plugin is not installed"
  7068            schema:
  7069              $ref: "#/definitions/ErrorResponse"
  7070          500:
  7071            description: "server error"
  7072            schema:
  7073              $ref: "#/definitions/ErrorResponse"
  7074        parameters:
  7075          - name: "name"
  7076            in: "path"
  7077            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7078            required: true
  7079            type: "string"
  7080        tags: ["Plugin"]
  7081    /plugins/{name}:
  7082      delete:
  7083        summary: "Remove a plugin"
  7084        operationId: "PluginDelete"
  7085        responses:
  7086          200:
  7087            description: "no error"
  7088            schema:
  7089              $ref: "#/definitions/Plugin"
  7090          404:
  7091            description: "plugin is not installed"
  7092            schema:
  7093              $ref: "#/definitions/ErrorResponse"
  7094          500:
  7095            description: "server error"
  7096            schema:
  7097              $ref: "#/definitions/ErrorResponse"
  7098        parameters:
  7099          - name: "name"
  7100            in: "path"
  7101            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7102            required: true
  7103            type: "string"
  7104          - name: "force"
  7105            in: "query"
  7106            description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
  7107            type: "boolean"
  7108            default: false
  7109        tags: ["Plugin"]
  7110    /plugins/{name}/enable:
  7111      post:
  7112        summary: "Enable a plugin"
  7113        operationId: "PluginEnable"
  7114        responses:
  7115          200:
  7116            description: "no error"
  7117          404:
  7118            description: "plugin is not installed"
  7119            schema:
  7120              $ref: "#/definitions/ErrorResponse"
  7121          500:
  7122            description: "server error"
  7123            schema:
  7124              $ref: "#/definitions/ErrorResponse"
  7125        parameters:
  7126          - name: "name"
  7127            in: "path"
  7128            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7129            required: true
  7130            type: "string"
  7131          - name: "timeout"
  7132            in: "query"
  7133            description: "Set the HTTP client timeout (in seconds)"
  7134            type: "integer"
  7135            default: 0
  7136        tags: ["Plugin"]
  7137    /plugins/{name}/disable:
  7138      post:
  7139        summary: "Disable a plugin"
  7140        operationId: "PluginDisable"
  7141        responses:
  7142          200:
  7143            description: "no error"
  7144          404:
  7145            description: "plugin is not installed"
  7146            schema:
  7147              $ref: "#/definitions/ErrorResponse"
  7148          500:
  7149            description: "server error"
  7150            schema:
  7151              $ref: "#/definitions/ErrorResponse"
  7152        parameters:
  7153          - name: "name"
  7154            in: "path"
  7155            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7156            required: true
  7157            type: "string"
  7158        tags: ["Plugin"]
  7159    /plugins/{name}/upgrade:
  7160      post:
  7161        summary: "Upgrade a plugin"
  7162        operationId: "PluginUpgrade"
  7163        responses:
  7164          204:
  7165            description: "no error"
  7166          404:
  7167            description: "plugin not installed"
  7168            schema:
  7169              $ref: "#/definitions/ErrorResponse"
  7170          500:
  7171            description: "server error"
  7172            schema:
  7173              $ref: "#/definitions/ErrorResponse"
  7174        parameters:
  7175          - name: "name"
  7176            in: "path"
  7177            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7178            required: true
  7179            type: "string"
  7180          - name: "remote"
  7181            in: "query"
  7182            description: |
  7183              Remote reference to upgrade to.
  7184  
  7185              The `:latest` tag is optional, and is used as the default if omitted.
  7186            required: true
  7187            type: "string"
  7188          - name: "X-Registry-Auth"
  7189            in: "header"
  7190            description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
  7191            type: "string"
  7192          - name: "body"
  7193            in: "body"
  7194            schema:
  7195              type: "array"
  7196              items:
  7197                description: "Describes a permission accepted by the user upon installing the plugin."
  7198                type: "object"
  7199                properties:
  7200                  Name:
  7201                    type: "string"
  7202                  Description:
  7203                    type: "string"
  7204                  Value:
  7205                    type: "array"
  7206                    items:
  7207                      type: "string"
  7208              example:
  7209                - Name: "network"
  7210                  Description: ""
  7211                  Value:
  7212                    - "host"
  7213                - Name: "mount"
  7214                  Description: ""
  7215                  Value:
  7216                    - "/data"
  7217                - Name: "device"
  7218                  Description: ""
  7219                  Value:
  7220                    - "/dev/cpu_dma_latency"
  7221        tags: ["Plugin"]
  7222    /plugins/create:
  7223      post:
  7224        summary: "Create a plugin"
  7225        operationId: "PluginCreate"
  7226        consumes:
  7227          - "application/x-tar"
  7228        responses:
  7229          204:
  7230            description: "no error"
  7231          500:
  7232            description: "server error"
  7233            schema:
  7234              $ref: "#/definitions/ErrorResponse"
  7235        parameters:
  7236          - name: "name"
  7237            in: "query"
  7238            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7239            required: true
  7240            type: "string"
  7241          - name: "tarContext"
  7242            in: "body"
  7243            description: "Path to tar containing plugin rootfs and manifest"
  7244            schema:
  7245              type: "string"
  7246              format: "binary"
  7247        tags: ["Plugin"]
  7248    /plugins/{name}/push:
  7249      post:
  7250        summary: "Push a plugin"
  7251        operationId: "PluginPush"
  7252        description: |
  7253          Push a plugin to the registry.
  7254        parameters:
  7255          - name: "name"
  7256            in: "path"
  7257            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7258            required: true
  7259            type: "string"
  7260        responses:
  7261          200:
  7262            description: "no error"
  7263          404:
  7264            description: "plugin not installed"
  7265            schema:
  7266              $ref: "#/definitions/ErrorResponse"
  7267          500:
  7268            description: "server error"
  7269            schema:
  7270              $ref: "#/definitions/ErrorResponse"
  7271        tags: ["Plugin"]
  7272    /plugins/{name}/set:
  7273      post:
  7274        summary: "Configure a plugin"
  7275        operationId: "PluginSet"
  7276        consumes:
  7277          - "application/json"
  7278        parameters:
  7279          - name: "name"
  7280            in: "path"
  7281            description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
  7282            required: true
  7283            type: "string"
  7284          - name: "body"
  7285            in: "body"
  7286            schema:
  7287              type: "array"
  7288              items:
  7289                type: "string"
  7290              example: ["DEBUG=1"]
  7291        responses:
  7292          204:
  7293            description: "No error"
  7294          404:
  7295            description: "Plugin not installed"
  7296            schema:
  7297              $ref: "#/definitions/ErrorResponse"
  7298          500:
  7299            description: "Server error"
  7300            schema:
  7301              $ref: "#/definitions/ErrorResponse"
  7302        tags: ["Plugin"]
  7303    /nodes:
  7304      get:
  7305        summary: "List nodes"
  7306        operationId: "NodeList"
  7307        responses:
  7308          200:
  7309            description: "no error"
  7310            schema:
  7311              type: "array"
  7312              items:
  7313                $ref: "#/definitions/Node"
  7314          500:
  7315            description: "server error"
  7316            schema:
  7317              $ref: "#/definitions/ErrorResponse"
  7318          503:
  7319            description: "node is not part of a swarm"
  7320            schema:
  7321              $ref: "#/definitions/ErrorResponse"
  7322        parameters:
  7323          - name: "filters"
  7324            in: "query"
  7325            description: |
  7326              Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).
  7327  
  7328              Available filters:
  7329              - `id=<node id>`
  7330              - `label=<engine label>`
  7331              - `membership=`(`accepted`|`pending`)`
  7332              - `name=<node name>`
  7333              - `role=`(`manager`|`worker`)`
  7334            type: "string"
  7335        tags: ["Node"]
  7336    /nodes/{id}:
  7337      get:
  7338        summary: "Inspect a node"
  7339        operationId: "NodeInspect"
  7340        responses:
  7341          200:
  7342            description: "no error"
  7343            schema:
  7344              $ref: "#/definitions/Node"
  7345          404:
  7346            description: "no such node"
  7347            schema:
  7348              $ref: "#/definitions/ErrorResponse"
  7349          500:
  7350            description: "server error"
  7351            schema:
  7352              $ref: "#/definitions/ErrorResponse"
  7353          503:
  7354            description: "node is not part of a swarm"
  7355            schema:
  7356              $ref: "#/definitions/ErrorResponse"
  7357        parameters:
  7358          - name: "id"
  7359            in: "path"
  7360            description: "The ID or name of the node"
  7361            type: "string"
  7362            required: true
  7363        tags: ["Node"]
  7364      delete:
  7365        summary: "Delete a node"
  7366        operationId: "NodeDelete"
  7367        responses:
  7368          200:
  7369            description: "no error"
  7370          404:
  7371            description: "no such node"
  7372            schema:
  7373              $ref: "#/definitions/ErrorResponse"
  7374          500:
  7375            description: "server error"
  7376            schema:
  7377              $ref: "#/definitions/ErrorResponse"
  7378          503:
  7379            description: "node is not part of a swarm"
  7380            schema:
  7381              $ref: "#/definitions/ErrorResponse"
  7382        parameters:
  7383          - name: "id"
  7384            in: "path"
  7385            description: "The ID or name of the node"
  7386            type: "string"
  7387            required: true
  7388          - name: "force"
  7389            in: "query"
  7390            description: "Force remove a node from the swarm"
  7391            default: false
  7392            type: "boolean"
  7393        tags: ["Node"]
  7394    /nodes/{id}/update:
  7395      post:
  7396        summary: "Update a node"
  7397        operationId: "NodeUpdate"
  7398        responses:
  7399          200:
  7400            description: "no error"
  7401          400:
  7402            description: "bad parameter"
  7403            schema:
  7404              $ref: "#/definitions/ErrorResponse"
  7405          404:
  7406            description: "no such node"
  7407            schema:
  7408              $ref: "#/definitions/ErrorResponse"
  7409          500:
  7410            description: "server error"
  7411            schema:
  7412              $ref: "#/definitions/ErrorResponse"
  7413          503:
  7414            description: "node is not part of a swarm"
  7415            schema:
  7416              $ref: "#/definitions/ErrorResponse"
  7417        parameters:
  7418          - name: "id"
  7419            in: "path"
  7420            description: "The ID of the node"
  7421            type: "string"
  7422            required: true
  7423          - name: "body"
  7424            in: "body"
  7425            schema:
  7426              $ref: "#/definitions/NodeSpec"
  7427          - name: "version"
  7428            in: "query"
  7429            description: "The version number of the node object being updated. This is required to avoid conflicting writes."
  7430            type: "integer"
  7431            format: "int64"
  7432            required: true
  7433        tags: ["Node"]
  7434    /swarm:
  7435      get:
  7436        summary: "Inspect swarm"
  7437        operationId: "SwarmInspect"
  7438        responses:
  7439          200:
  7440            description: "no error"
  7441            schema:
  7442              allOf:
  7443                - $ref: "#/definitions/ClusterInfo"
  7444                - type: "object"
  7445                  properties:
  7446                    JoinTokens:
  7447                      description: "The tokens workers and managers need to join the swarm."
  7448                      type: "object"
  7449                      properties:
  7450                        Worker:
  7451                          description: "The token workers can use to join the swarm."
  7452                          type: "string"
  7453                        Manager:
  7454                          description: "The token managers can use to join the swarm."
  7455                          type: "string"
  7456              example:
  7457                CreatedAt: "2016-08-15T16:00:20.349727406Z"
  7458                Spec:
  7459                  Dispatcher:
  7460                    HeartbeatPeriod: 5000000000
  7461                  Orchestration:
  7462                    TaskHistoryRetentionLimit: 10
  7463                  CAConfig:
  7464                    NodeCertExpiry: 7776000000000000
  7465                  Raft:
  7466                    LogEntriesForSlowFollowers: 500
  7467                    HeartbeatTick: 1
  7468                    SnapshotInterval: 10000
  7469                    ElectionTick: 3
  7470                  TaskDefaults: {}
  7471                  EncryptionConfig:
  7472                    AutoLockManagers: false
  7473                  Name: "default"
  7474                JoinTokens:
  7475                  Worker: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a"
  7476                  Manager: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l"
  7477                ID: "70ilmkj2f6sp2137c753w2nmt"
  7478                UpdatedAt: "2016-08-15T16:32:09.623207604Z"
  7479                Version:
  7480                  Index: 51
  7481                RootRotationInProgress: false
  7482                TLSInfo:
  7483                  TrustRoot: |
  7484                    -----BEGIN CERTIFICATE-----
  7485                    MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
  7486                    EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
  7487                    MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
  7488                    A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
  7489                    3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
  7490                    Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
  7491                    PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
  7492                    pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
  7493                    -----END CERTIFICATE-----
  7494                  CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
  7495                  CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
  7496          404:
  7497            description: "no such swarm"
  7498            schema:
  7499              $ref: "#/definitions/ErrorResponse"
  7500          500:
  7501            description: "server error"
  7502            schema:
  7503              $ref: "#/definitions/ErrorResponse"
  7504          503:
  7505            description: "node is not part of a swarm"
  7506            schema:
  7507              $ref: "#/definitions/ErrorResponse"
  7508        tags: ["Swarm"]
  7509    /swarm/init:
  7510      post:
  7511        summary: "Initialize a new swarm"
  7512        operationId: "SwarmInit"
  7513        produces:
  7514          - "application/json"
  7515          - "text/plain"
  7516        responses:
  7517          200:
  7518            description: "no error"
  7519            schema:
  7520              description: "The node ID"
  7521              type: "string"
  7522              example: "7v2t30z9blmxuhnyo6s4cpenp"
  7523          400:
  7524            description: "bad parameter"
  7525            schema:
  7526              $ref: "#/definitions/ErrorResponse"
  7527          500:
  7528            description: "server error"
  7529            schema:
  7530              $ref: "#/definitions/ErrorResponse"
  7531          503:
  7532            description: "node is already part of a swarm"
  7533            schema:
  7534              $ref: "#/definitions/ErrorResponse"
  7535        parameters:
  7536          - name: "body"
  7537            in: "body"
  7538            required: true
  7539            schema:
  7540              type: "object"
  7541              properties:
  7542                ListenAddr:
  7543                  description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used."
  7544                  type: "string"
  7545                AdvertiseAddr:
  7546                  description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
  7547                  type: "string"
  7548                DataPathAddr:
  7549                  description: |
  7550                    Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
  7551                    or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
  7552                    is used.
  7553  
  7554                    The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
  7555                    nodes in order to reach the containers running on this node. Using this parameter it is possible to
  7556                    separate the container data traffic from the management traffic of the cluster.
  7557                  type: "string"
  7558                ForceNewCluster:
  7559                  description: "Force creation of a new swarm."
  7560                  type: "boolean"
  7561                Spec:
  7562                  $ref: "#/definitions/SwarmSpec"
  7563              example:
  7564                ListenAddr: "0.0.0.0:2377"
  7565                AdvertiseAddr: "192.168.1.1:2377"
  7566                ForceNewCluster: false
  7567                Spec:
  7568                  Orchestration: {}
  7569                  Raft: {}
  7570                  Dispatcher: {}
  7571                  CAConfig: {}
  7572                  EncryptionConfig:
  7573                    AutoLockManagers: false
  7574        tags: ["Swarm"]
  7575    /swarm/join:
  7576      post:
  7577        summary: "Join an existing swarm"
  7578        operationId: "SwarmJoin"
  7579        responses:
  7580          200:
  7581            description: "no error"
  7582          400:
  7583            description: "bad parameter"
  7584            schema:
  7585              $ref: "#/definitions/ErrorResponse"
  7586          500:
  7587            description: "server error"
  7588            schema:
  7589              $ref: "#/definitions/ErrorResponse"
  7590          503:
  7591            description: "node is already part of a swarm"
  7592            schema:
  7593              $ref: "#/definitions/ErrorResponse"
  7594        parameters:
  7595          - name: "body"
  7596            in: "body"
  7597            required: true
  7598            schema:
  7599              type: "object"
  7600              properties:
  7601                ListenAddr:
  7602                  description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)."
  7603                  type: "string"
  7604                AdvertiseAddr:
  7605                  description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
  7606                  type: "string"
  7607                DataPathAddr:
  7608                  description: |
  7609                    Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
  7610                    or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
  7611                    is used.
  7612  
  7613                    The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
  7614                    nodes in order to reach the containers running on this node. Using this parameter it is possible to
  7615                    separate the container data traffic from the management traffic of the cluster.
  7616  
  7617                  type: "string"
  7618                RemoteAddrs:
  7619                  description: "Addresses of manager nodes already participating in the swarm."
  7620                  type: "string"
  7621                JoinToken:
  7622                  description: "Secret token for joining this swarm."
  7623                  type: "string"
  7624              example:
  7625                ListenAddr: "0.0.0.0:2377"
  7626                AdvertiseAddr: "192.168.1.1:2377"
  7627                RemoteAddrs:
  7628                  - "node1:2377"
  7629                JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
  7630        tags: ["Swarm"]
  7631    /swarm/leave:
  7632      post:
  7633        summary: "Leave a swarm"
  7634        operationId: "SwarmLeave"
  7635        responses:
  7636          200:
  7637            description: "no error"
  7638          500:
  7639            description: "server error"
  7640            schema:
  7641              $ref: "#/definitions/ErrorResponse"
  7642          503:
  7643            description: "node is not part of a swarm"
  7644            schema:
  7645              $ref: "#/definitions/ErrorResponse"
  7646        parameters:
  7647          - name: "force"
  7648            description: "Force leave swarm, even if this is the last manager or that it will break the cluster."
  7649            in: "query"
  7650            type: "boolean"
  7651            default: false
  7652        tags: ["Swarm"]
  7653    /swarm/update:
  7654      post:
  7655        summary: "Update a swarm"
  7656        operationId: "SwarmUpdate"
  7657        responses:
  7658          200:
  7659            description: "no error"
  7660          400:
  7661            description: "bad parameter"
  7662            schema:
  7663              $ref: "#/definitions/ErrorResponse"
  7664          500:
  7665            description: "server error"
  7666            schema:
  7667              $ref: "#/definitions/ErrorResponse"
  7668          503:
  7669            description: "node is not part of a swarm"
  7670            schema:
  7671              $ref: "#/definitions/ErrorResponse"
  7672        parameters:
  7673          - name: "body"
  7674            in: "body"
  7675            required: true
  7676            schema:
  7677              $ref: "#/definitions/SwarmSpec"
  7678          - name: "version"
  7679            in: "query"
  7680            description: "The version number of the swarm object being updated. This is required to avoid conflicting writes."
  7681            type: "integer"
  7682            format: "int64"
  7683            required: true
  7684          - name: "rotateWorkerToken"
  7685            in: "query"
  7686            description: "Rotate the worker join token."
  7687            type: "boolean"
  7688            default: false
  7689          - name: "rotateManagerToken"
  7690            in: "query"
  7691            description: "Rotate the manager join token."
  7692            type: "boolean"
  7693            default: false
  7694          - name: "rotateManagerUnlockKey"
  7695            in: "query"
  7696            description: "Rotate the manager unlock key."
  7697            type: "boolean"
  7698            default: false
  7699        tags: ["Swarm"]
  7700    /swarm/unlockkey:
  7701      get:
  7702        summary: "Get the unlock key"
  7703        operationId: "SwarmUnlockkey"
  7704        consumes:
  7705          - "application/json"
  7706        responses:
  7707          200:
  7708            description: "no error"
  7709            schema:
  7710              type: "object"
  7711              properties:
  7712                UnlockKey:
  7713                  description: "The swarm's unlock key."
  7714                  type: "string"
  7715              example:
  7716                UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
  7717          500:
  7718            description: "server error"
  7719            schema:
  7720              $ref: "#/definitions/ErrorResponse"
  7721          503:
  7722            description: "node is not part of a swarm"
  7723            schema:
  7724              $ref: "#/definitions/ErrorResponse"
  7725        tags: ["Swarm"]
  7726    /swarm/unlock:
  7727      post:
  7728        summary: "Unlock a locked manager"
  7729        operationId: "SwarmUnlock"
  7730        consumes:
  7731          - "application/json"
  7732        produces:
  7733          - "application/json"
  7734        parameters:
  7735          - name: "body"
  7736            in: "body"
  7737            required: true
  7738            schema:
  7739              type: "object"
  7740              properties:
  7741                UnlockKey:
  7742                  description: "The swarm's unlock key."
  7743                  type: "string"
  7744              example:
  7745                UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
  7746        responses:
  7747          200:
  7748            description: "no error"
  7749          500:
  7750            description: "server error"
  7751            schema:
  7752              $ref: "#/definitions/ErrorResponse"
  7753          503:
  7754            description: "node is not part of a swarm"
  7755            schema:
  7756              $ref: "#/definitions/ErrorResponse"
  7757        tags: ["Swarm"]
  7758    /services:
  7759      get:
  7760        summary: "List services"
  7761        operationId: "ServiceList"
  7762        responses:
  7763          200:
  7764            description: "no error"
  7765            schema:
  7766              type: "array"
  7767              items:
  7768                $ref: "#/definitions/Service"
  7769          500:
  7770            description: "server error"
  7771            schema:
  7772              $ref: "#/definitions/ErrorResponse"
  7773          503:
  7774            description: "node is not part of a swarm"
  7775            schema:
  7776              $ref: "#/definitions/ErrorResponse"
  7777        parameters:
  7778          - name: "filters"
  7779            in: "query"
  7780            type: "string"
  7781            description: |
  7782              A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:
  7783  
  7784              - `id=<service id>`
  7785              - `label=<service label>`
  7786              - `mode=["replicated"|"global"]`
  7787              - `name=<service name>`
  7788        tags: ["Service"]
  7789    /services/create:
  7790      post:
  7791        summary: "Create a service"
  7792        operationId: "ServiceCreate"
  7793        consumes:
  7794          - "application/json"
  7795        produces:
  7796          - "application/json"
  7797        responses:
  7798          201:
  7799            description: "no error"
  7800            schema:
  7801              type: "object"
  7802              properties:
  7803                ID:
  7804                  description: "The ID of the created service."
  7805                  type: "string"
  7806                Warning:
  7807                  description: "Optional warning message"
  7808                  type: "string"
  7809              example:
  7810                ID: "ak7w3gjqoa3kuz8xcpnyy0pvl"
  7811                Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
  7812          400:
  7813            description: "bad parameter"
  7814            schema:
  7815              $ref: "#/definitions/ErrorResponse"
  7816          403:
  7817            description: "network is not eligible for services"
  7818            schema:
  7819              $ref: "#/definitions/ErrorResponse"
  7820          409:
  7821            description: "name conflicts with an existing service"
  7822            schema:
  7823              $ref: "#/definitions/ErrorResponse"
  7824          500:
  7825            description: "server error"
  7826            schema:
  7827              $ref: "#/definitions/ErrorResponse"
  7828          503:
  7829            description: "node is not part of a swarm"
  7830            schema:
  7831              $ref: "#/definitions/ErrorResponse"
  7832        parameters:
  7833          - name: "body"
  7834            in: "body"
  7835            required: true
  7836            schema:
  7837              allOf:
  7838                - $ref: "#/definitions/ServiceSpec"
  7839                - type: "object"
  7840                  example:
  7841                    Name: "web"
  7842                    TaskTemplate:
  7843                      ContainerSpec:
  7844                        Image: "nginx:alpine"
  7845                        Mounts:
  7846                          -
  7847                            ReadOnly: true
  7848                            Source: "web-data"
  7849                            Target: "/usr/share/nginx/html"
  7850                            Type: "volume"
  7851                            VolumeOptions:
  7852                              DriverConfig: {}
  7853                              Labels:
  7854                                com.example.something: "something-value"
  7855                        Hosts: ["10.10.10.10 host1", "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"]
  7856                        User: "33"
  7857                        DNSConfig:
  7858                          Nameservers: ["8.8.8.8"]
  7859                          Search: ["example.org"]
  7860                          Options: ["timeout:3"]
  7861                        Secrets:
  7862                          -
  7863                            File:
  7864                              Name: "www.example.org.key"
  7865                              UID: "33"
  7866                              GID: "33"
  7867                              Mode: 384
  7868                            SecretID: "fpjqlhnwb19zds35k8wn80lq9"
  7869                            SecretName: "example_org_domain_key"
  7870                      LogDriver:
  7871                        Name: "json-file"
  7872                        Options:
  7873                          max-file: "3"
  7874                          max-size: "10M"
  7875                      Placement: {}
  7876                      Resources:
  7877                        Limits:
  7878                          MemoryBytes: 104857600
  7879                        Reservations: {}
  7880                      RestartPolicy:
  7881                        Condition: "on-failure"
  7882                        Delay: 10000000000
  7883                        MaxAttempts: 10
  7884                    Mode:
  7885                      Replicated:
  7886                        Replicas: 4
  7887                    UpdateConfig:
  7888                      Parallelism: 2
  7889                      Delay: 1000000000
  7890                      FailureAction: "pause"
  7891                      Monitor: 15000000000
  7892                      MaxFailureRatio: 0.15
  7893                    RollbackConfig:
  7894                      Parallelism: 1
  7895                      Delay: 1000000000
  7896                      FailureAction: "pause"
  7897                      Monitor: 15000000000
  7898                      MaxFailureRatio: 0.15
  7899                    EndpointSpec:
  7900                      Ports:
  7901                        -
  7902                          Protocol: "tcp"
  7903                          PublishedPort: 8080
  7904                          TargetPort: 80
  7905                    Labels:
  7906                      foo: "bar"
  7907          - name: "X-Registry-Auth"
  7908            in: "header"
  7909            description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
  7910            type: "string"
  7911        tags: ["Service"]
  7912    /services/{id}:
  7913      get:
  7914        summary: "Inspect a service"
  7915        operationId: "ServiceInspect"
  7916        responses:
  7917          200:
  7918            description: "no error"
  7919            schema:
  7920              $ref: "#/definitions/Service"
  7921          404:
  7922            description: "no such service"
  7923            schema:
  7924              $ref: "#/definitions/ErrorResponse"
  7925          500:
  7926            description: "server error"
  7927            schema:
  7928              $ref: "#/definitions/ErrorResponse"
  7929          503:
  7930            description: "node is not part of a swarm"
  7931            schema:
  7932              $ref: "#/definitions/ErrorResponse"
  7933        parameters:
  7934          - name: "id"
  7935            in: "path"
  7936            description: "ID or name of service."
  7937            required: true
  7938            type: "string"
  7939          - name: "insertDefaults"
  7940            in: "query"
  7941            description: "Fill empty fields with default values."
  7942            type: "boolean"
  7943            default: false
  7944        tags: ["Service"]
  7945      delete:
  7946        summary: "Delete a service"
  7947        operationId: "ServiceDelete"
  7948        responses:
  7949          200:
  7950            description: "no error"
  7951          404:
  7952            description: "no such service"
  7953            schema:
  7954              $ref: "#/definitions/ErrorResponse"
  7955          500:
  7956            description: "server error"
  7957            schema:
  7958              $ref: "#/definitions/ErrorResponse"
  7959          503:
  7960            description: "node is not part of a swarm"
  7961            schema:
  7962              $ref: "#/definitions/ErrorResponse"
  7963        parameters:
  7964          - name: "id"
  7965            in: "path"
  7966            description: "ID or name of service."
  7967            required: true
  7968            type: "string"
  7969        tags: ["Service"]
  7970    /services/{id}/update:
  7971      post:
  7972        summary: "Update a service"
  7973        operationId: "ServiceUpdate"
  7974        consumes: ["application/json"]
  7975        produces: ["application/json"]
  7976        responses:
  7977          200:
  7978            description: "no error"
  7979            schema:
  7980              $ref: "#/definitions/ServiceUpdateResponse"
  7981          400:
  7982            description: "bad parameter"
  7983            schema:
  7984              $ref: "#/definitions/ErrorResponse"
  7985          404:
  7986            description: "no such service"
  7987            schema:
  7988              $ref: "#/definitions/ErrorResponse"
  7989          500:
  7990            description: "server error"
  7991            schema:
  7992              $ref: "#/definitions/ErrorResponse"
  7993          503:
  7994            description: "node is not part of a swarm"
  7995            schema:
  7996              $ref: "#/definitions/ErrorResponse"
  7997        parameters:
  7998          - name: "id"
  7999            in: "path"
  8000            description: "ID or name of service."
  8001            required: true
  8002            type: "string"
  8003          - name: "body"
  8004            in: "body"
  8005            required: true
  8006            schema:
  8007              allOf:
  8008                - $ref: "#/definitions/ServiceSpec"
  8009                - type: "object"
  8010                  example:
  8011                    Name: "top"
  8012                    TaskTemplate:
  8013                      ContainerSpec:
  8014                        Image: "busybox"
  8015                        Args:
  8016                          - "top"
  8017                      Resources:
  8018                        Limits: {}
  8019                        Reservations: {}
  8020                      RestartPolicy:
  8021                        Condition: "any"
  8022                        MaxAttempts: 0
  8023                      Placement: {}
  8024                      ForceUpdate: 0
  8025                    Mode:
  8026                      Replicated:
  8027                        Replicas: 1
  8028                    UpdateConfig:
  8029                      Parallelism: 2
  8030                      Delay: 1000000000
  8031                      FailureAction: "pause"
  8032                      Monitor: 15000000000
  8033                      MaxFailureRatio: 0.15
  8034                    RollbackConfig:
  8035                      Parallelism: 1
  8036                      Delay: 1000000000
  8037                      FailureAction: "pause"
  8038                      Monitor: 15000000000
  8039                      MaxFailureRatio: 0.15
  8040                    EndpointSpec:
  8041                      Mode: "vip"
  8042  
  8043          - name: "version"
  8044            in: "query"
  8045            description: "The version number of the service object being updated. This is required to avoid conflicting writes."
  8046            required: true
  8047            type: "integer"
  8048          - name: "registryAuthFrom"
  8049            in: "query"
  8050            type: "string"
  8051            description: "If the X-Registry-Auth header is not specified, this
  8052    parameter indicates where to find registry authorization credentials. The
  8053    valid values are `spec` and `previous-spec`."
  8054            default: "spec"
  8055          - name: "rollback"
  8056            in: "query"
  8057            type: "string"
  8058            description: "Set to this parameter to `previous` to cause a
  8059    server-side rollback to the previous service spec. The supplied spec will be
  8060    ignored in this case."
  8061          - name: "X-Registry-Auth"
  8062            in: "header"
  8063            description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
  8064            type: "string"
  8065  
  8066        tags: ["Service"]
  8067    /services/{id}/logs:
  8068      get:
  8069        summary: "Get service logs"
  8070        description: |
  8071          Get `stdout` and `stderr` logs from a service.
  8072  
  8073          **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
  8074        operationId: "ServiceLogs"
  8075        produces:
  8076          - "application/vnd.docker.raw-stream"
  8077          - "application/json"
  8078        responses:
  8079          101:
  8080            description: "logs returned as a stream"
  8081            schema:
  8082              type: "string"
  8083              format: "binary"
  8084          200:
  8085            description: "logs returned as a string in response body"
  8086            schema:
  8087              type: "string"
  8088          404:
  8089            description: "no such service"
  8090            schema:
  8091              $ref: "#/definitions/ErrorResponse"
  8092            examples:
  8093              application/json:
  8094                message: "No such service: c2ada9df5af8"
  8095          500:
  8096            description: "server error"
  8097            schema:
  8098              $ref: "#/definitions/ErrorResponse"
  8099          503:
  8100            description: "node is not part of a swarm"
  8101            schema:
  8102              $ref: "#/definitions/ErrorResponse"
  8103        parameters:
  8104          - name: "id"
  8105            in: "path"
  8106            required: true
  8107            description: "ID or name of the service"
  8108            type: "string"
  8109          - name: "details"
  8110            in: "query"
  8111            description: "Show service context and extra details provided to logs."
  8112            type: "boolean"
  8113            default: false
  8114          - name: "follow"
  8115            in: "query"
  8116            description: |
  8117              Return the logs as a stream.
  8118  
  8119              This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
  8120            type: "boolean"
  8121            default: false
  8122          - name: "stdout"
  8123            in: "query"
  8124            description: "Return logs from `stdout`"
  8125            type: "boolean"
  8126            default: false
  8127          - name: "stderr"
  8128            in: "query"
  8129            description: "Return logs from `stderr`"
  8130            type: "boolean"
  8131            default: false
  8132          - name: "since"
  8133            in: "query"
  8134            description: "Only return logs since this time, as a UNIX timestamp"
  8135            type: "integer"
  8136            default: 0
  8137          - name: "timestamps"
  8138            in: "query"
  8139            description: "Add timestamps to every log line"
  8140            type: "boolean"
  8141            default: false
  8142          - name: "tail"
  8143            in: "query"
  8144            description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
  8145            type: "string"
  8146            default: "all"
  8147        tags: ["Service"]
  8148    /tasks:
  8149      get:
  8150        summary: "List tasks"
  8151        operationId: "TaskList"
  8152        produces:
  8153          - "application/json"
  8154        responses:
  8155          200:
  8156            description: "no error"
  8157            schema:
  8158              type: "array"
  8159              items:
  8160                $ref: "#/definitions/Task"
  8161              example:
  8162                - ID: "0kzzo1i0y4jz6027t0k7aezc7"
  8163                  Version:
  8164                    Index: 71
  8165                  CreatedAt: "2016-06-07T21:07:31.171892745Z"
  8166                  UpdatedAt: "2016-06-07T21:07:31.376370513Z"
  8167                  Spec:
  8168                    ContainerSpec:
  8169                      Image: "redis"
  8170                    Resources:
  8171                      Limits: {}
  8172                      Reservations: {}
  8173                    RestartPolicy:
  8174                      Condition: "any"
  8175                      MaxAttempts: 0
  8176                    Placement: {}
  8177                  ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  8178                  Slot: 1
  8179                  NodeID: "60gvrl6tm78dmak4yl7srz94v"
  8180                  Status:
  8181                    Timestamp: "2016-06-07T21:07:31.290032978Z"
  8182                    State: "running"
  8183                    Message: "started"
  8184                    ContainerStatus:
  8185                      ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
  8186                      PID: 677
  8187                  DesiredState: "running"
  8188                  NetworksAttachments:
  8189                    - Network:
  8190                        ID: "4qvuz4ko70xaltuqbt8956gd1"
  8191                        Version:
  8192                          Index: 18
  8193                        CreatedAt: "2016-06-07T20:31:11.912919752Z"
  8194                        UpdatedAt: "2016-06-07T21:07:29.955277358Z"
  8195                        Spec:
  8196                          Name: "ingress"
  8197                          Labels:
  8198                            com.docker.swarm.internal: "true"
  8199                          DriverConfiguration: {}
  8200                          IPAMOptions:
  8201                            Driver: {}
  8202                            Configs:
  8203                              - Subnet: "10.255.0.0/16"
  8204                                Gateway: "10.255.0.1"
  8205                        DriverState:
  8206                          Name: "overlay"
  8207                          Options:
  8208                            com.docker.network.driver.overlay.vxlanid_list: "256"
  8209                        IPAMOptions:
  8210                          Driver:
  8211                            Name: "default"
  8212                          Configs:
  8213                            - Subnet: "10.255.0.0/16"
  8214                              Gateway: "10.255.0.1"
  8215                      Addresses:
  8216                        - "10.255.0.10/16"
  8217                - ID: "1yljwbmlr8er2waf8orvqpwms"
  8218                  Version:
  8219                    Index: 30
  8220                  CreatedAt: "2016-06-07T21:07:30.019104782Z"
  8221                  UpdatedAt: "2016-06-07T21:07:30.231958098Z"
  8222                  Name: "hopeful_cori"
  8223                  Spec:
  8224                    ContainerSpec:
  8225                      Image: "redis"
  8226                    Resources:
  8227                      Limits: {}
  8228                      Reservations: {}
  8229                    RestartPolicy:
  8230                      Condition: "any"
  8231                      MaxAttempts: 0
  8232                    Placement: {}
  8233                  ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
  8234                  Slot: 1
  8235                  NodeID: "60gvrl6tm78dmak4yl7srz94v"
  8236                  Status:
  8237                    Timestamp: "2016-06-07T21:07:30.202183143Z"
  8238                    State: "shutdown"
  8239                    Message: "shutdown"
  8240                    ContainerStatus:
  8241                      ContainerID: "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"
  8242                  DesiredState: "shutdown"
  8243                  NetworksAttachments:
  8244                    - Network:
  8245                        ID: "4qvuz4ko70xaltuqbt8956gd1"
  8246                        Version:
  8247                          Index: 18
  8248                        CreatedAt: "2016-06-07T20:31:11.912919752Z"
  8249                        UpdatedAt: "2016-06-07T21:07:29.955277358Z"
  8250                        Spec:
  8251                          Name: "ingress"
  8252                          Labels:
  8253                            com.docker.swarm.internal: "true"
  8254                          DriverConfiguration: {}
  8255                          IPAMOptions:
  8256                            Driver: {}
  8257                            Configs:
  8258                              - Subnet: "10.255.0.0/16"
  8259                                Gateway: "10.255.0.1"
  8260                        DriverState:
  8261                          Name: "overlay"
  8262                          Options:
  8263                            com.docker.network.driver.overlay.vxlanid_list: "256"
  8264                        IPAMOptions:
  8265                          Driver:
  8266                            Name: "default"
  8267                          Configs:
  8268                            - Subnet: "10.255.0.0/16"
  8269                              Gateway: "10.255.0.1"
  8270                      Addresses:
  8271                        - "10.255.0.5/16"
  8272          500:
  8273            description: "server error"
  8274            schema:
  8275              $ref: "#/definitions/ErrorResponse"
  8276          503:
  8277            description: "node is not part of a swarm"
  8278            schema:
  8279              $ref: "#/definitions/ErrorResponse"
  8280        parameters:
  8281          - name: "filters"
  8282            in: "query"
  8283            type: "string"
  8284            description: |
  8285              A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:
  8286  
  8287              - `desired-state=(running | shutdown | accepted)`
  8288              - `id=<task id>`
  8289              - `label=key` or `label="key=value"`
  8290              - `name=<task name>`
  8291              - `node=<node id or name>`
  8292              - `service=<service name>`
  8293        tags: ["Task"]
  8294    /tasks/{id}:
  8295      get:
  8296        summary: "Inspect a task"
  8297        operationId: "TaskInspect"
  8298        produces:
  8299          - "application/json"
  8300        responses:
  8301          200:
  8302            description: "no error"
  8303            schema:
  8304              $ref: "#/definitions/Task"
  8305          404:
  8306            description: "no such task"
  8307            schema:
  8308              $ref: "#/definitions/ErrorResponse"
  8309          500:
  8310            description: "server error"
  8311            schema:
  8312              $ref: "#/definitions/ErrorResponse"
  8313          503:
  8314            description: "node is not part of a swarm"
  8315            schema:
  8316              $ref: "#/definitions/ErrorResponse"
  8317        parameters:
  8318          - name: "id"
  8319            in: "path"
  8320            description: "ID of the task"
  8321            required: true
  8322            type: "string"
  8323        tags: ["Task"]
  8324    /tasks/{id}/logs:
  8325      get:
  8326        summary: "Get task logs"
  8327        description: |
  8328          Get `stdout` and `stderr` logs from a task.
  8329  
  8330          **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
  8331        operationId: "TaskLogs"
  8332        produces:
  8333          - "application/vnd.docker.raw-stream"
  8334          - "application/json"
  8335        responses:
  8336          101:
  8337            description: "logs returned as a stream"
  8338            schema:
  8339              type: "string"
  8340              format: "binary"
  8341          200:
  8342            description: "logs returned as a string in response body"
  8343            schema:
  8344              type: "string"
  8345          404:
  8346            description: "no such task"
  8347            schema:
  8348              $ref: "#/definitions/ErrorResponse"
  8349            examples:
  8350              application/json:
  8351                message: "No such task: c2ada9df5af8"
  8352          500:
  8353            description: "server error"
  8354            schema:
  8355              $ref: "#/definitions/ErrorResponse"
  8356          503:
  8357            description: "node is not part of a swarm"
  8358            schema:
  8359              $ref: "#/definitions/ErrorResponse"
  8360        parameters:
  8361          - name: "id"
  8362            in: "path"
  8363            required: true
  8364            description: "ID of the task"
  8365            type: "string"
  8366          - name: "details"
  8367            in: "query"
  8368            description: "Show task context and extra details provided to logs."
  8369            type: "boolean"
  8370            default: false
  8371          - name: "follow"
  8372            in: "query"
  8373            description: |
  8374              Return the logs as a stream.
  8375  
  8376              This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
  8377            type: "boolean"
  8378            default: false
  8379          - name: "stdout"
  8380            in: "query"
  8381            description: "Return logs from `stdout`"
  8382            type: "boolean"
  8383            default: false
  8384          - name: "stderr"
  8385            in: "query"
  8386            description: "Return logs from `stderr`"
  8387            type: "boolean"
  8388            default: false
  8389          - name: "since"
  8390            in: "query"
  8391            description: "Only return logs since this time, as a UNIX timestamp"
  8392            type: "integer"
  8393            default: 0
  8394          - name: "timestamps"
  8395            in: "query"
  8396            description: "Add timestamps to every log line"
  8397            type: "boolean"
  8398            default: false
  8399          - name: "tail"
  8400            in: "query"
  8401            description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
  8402            type: "string"
  8403            default: "all"
  8404    /secrets:
  8405      get:
  8406        summary: "List secrets"
  8407        operationId: "SecretList"
  8408        produces:
  8409          - "application/json"
  8410        responses:
  8411          200:
  8412            description: "no error"
  8413            schema:
  8414              type: "array"
  8415              items:
  8416                $ref: "#/definitions/Secret"
  8417              example:
  8418                - ID: "blt1owaxmitz71s9v5zh81zun"
  8419                  Version:
  8420                    Index: 85
  8421                  CreatedAt: "2017-07-20T13:55:28.678958722Z"
  8422                  UpdatedAt: "2017-07-20T13:55:28.678958722Z"
  8423                  Spec:
  8424                    Name: "mysql-passwd"
  8425                    Labels:
  8426                      some.label: "some.value"
  8427                    Driver:
  8428                      Name: "secret-bucket"
  8429                      Options:
  8430                        OptionA: "value for driver option A"
  8431                        OptionB: "value for driver option B"
  8432                - ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8433                  Version:
  8434                    Index: 11
  8435                  CreatedAt: "2016-11-05T01:20:17.327670065Z"
  8436                  UpdatedAt: "2016-11-05T01:20:17.327670065Z"
  8437                  Spec:
  8438                    Name: "app-dev.crt"
  8439                    Labels:
  8440                      foo: "bar"
  8441          500:
  8442            description: "server error"
  8443            schema:
  8444              $ref: "#/definitions/ErrorResponse"
  8445          503:
  8446            description: "node is not part of a swarm"
  8447            schema:
  8448              $ref: "#/definitions/ErrorResponse"
  8449        parameters:
  8450          - name: "filters"
  8451            in: "query"
  8452            type: "string"
  8453            description: |
  8454              A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
  8455  
  8456              - `id=<secret id>`
  8457              - `label=<key> or label=<key>=value`
  8458              - `name=<secret name>`
  8459              - `names=<secret name>`
  8460        tags: ["Secret"]
  8461    /secrets/create:
  8462      post:
  8463        summary: "Create a secret"
  8464        operationId: "SecretCreate"
  8465        consumes:
  8466          - "application/json"
  8467        produces:
  8468          - "application/json"
  8469        responses:
  8470          201:
  8471            description: "no error"
  8472            schema:
  8473              type: "object"
  8474              properties:
  8475                ID:
  8476                  description: "The ID of the created secret."
  8477                  type: "string"
  8478              example:
  8479                ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8480          409:
  8481            description: "name conflicts with an existing object"
  8482            schema:
  8483              $ref: "#/definitions/ErrorResponse"
  8484          500:
  8485            description: "server error"
  8486            schema:
  8487              $ref: "#/definitions/ErrorResponse"
  8488          503:
  8489            description: "node is not part of a swarm"
  8490            schema:
  8491              $ref: "#/definitions/ErrorResponse"
  8492        parameters:
  8493          - name: "body"
  8494            in: "body"
  8495            schema:
  8496              allOf:
  8497                - $ref: "#/definitions/SecretSpec"
  8498                - type: "object"
  8499                  example:
  8500                    Name: "app-key.crt"
  8501                    Labels:
  8502                      foo: "bar"
  8503                    Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
  8504                    Driver:
  8505                      Name: "secret-bucket"
  8506                      Options:
  8507                        OptionA: "value for driver option A"
  8508                        OptionB: "value for driver option B"
  8509        tags: ["Secret"]
  8510    /secrets/{id}:
  8511      get:
  8512        summary: "Inspect a secret"
  8513        operationId: "SecretInspect"
  8514        produces:
  8515          - "application/json"
  8516        responses:
  8517          200:
  8518            description: "no error"
  8519            schema:
  8520              $ref: "#/definitions/Secret"
  8521            examples:
  8522              application/json:
  8523                ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8524                Version:
  8525                  Index: 11
  8526                CreatedAt: "2016-11-05T01:20:17.327670065Z"
  8527                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
  8528                Spec:
  8529                  Name: "app-dev.crt"
  8530                  Labels:
  8531                    foo: "bar"
  8532                  Driver:
  8533                    Name: "secret-bucket"
  8534                    Options:
  8535                      OptionA: "value for driver option A"
  8536                      OptionB: "value for driver option B"
  8537  
  8538          404:
  8539            description: "secret not found"
  8540            schema:
  8541              $ref: "#/definitions/ErrorResponse"
  8542          500:
  8543            description: "server error"
  8544            schema:
  8545              $ref: "#/definitions/ErrorResponse"
  8546          503:
  8547            description: "node is not part of a swarm"
  8548            schema:
  8549              $ref: "#/definitions/ErrorResponse"
  8550        parameters:
  8551          - name: "id"
  8552            in: "path"
  8553            required: true
  8554            type: "string"
  8555            description: "ID of the secret"
  8556        tags: ["Secret"]
  8557      delete:
  8558        summary: "Delete a secret"
  8559        operationId: "SecretDelete"
  8560        produces:
  8561          - "application/json"
  8562        responses:
  8563          204:
  8564            description: "no error"
  8565          404:
  8566            description: "secret not found"
  8567            schema:
  8568              $ref: "#/definitions/ErrorResponse"
  8569          500:
  8570            description: "server error"
  8571            schema:
  8572              $ref: "#/definitions/ErrorResponse"
  8573          503:
  8574            description: "node is not part of a swarm"
  8575            schema:
  8576              $ref: "#/definitions/ErrorResponse"
  8577        parameters:
  8578          - name: "id"
  8579            in: "path"
  8580            required: true
  8581            type: "string"
  8582            description: "ID of the secret"
  8583        tags: ["Secret"]
  8584    /secrets/{id}/update:
  8585      post:
  8586        summary: "Update a Secret"
  8587        operationId: "SecretUpdate"
  8588        responses:
  8589          200:
  8590            description: "no error"
  8591          400:
  8592            description: "bad parameter"
  8593            schema:
  8594              $ref: "#/definitions/ErrorResponse"
  8595          404:
  8596            description: "no such secret"
  8597            schema:
  8598              $ref: "#/definitions/ErrorResponse"
  8599          500:
  8600            description: "server error"
  8601            schema:
  8602              $ref: "#/definitions/ErrorResponse"
  8603          503:
  8604            description: "node is not part of a swarm"
  8605            schema:
  8606              $ref: "#/definitions/ErrorResponse"
  8607        parameters:
  8608          - name: "id"
  8609            in: "path"
  8610            description: "The ID or name of the secret"
  8611            type: "string"
  8612            required: true
  8613          - name: "body"
  8614            in: "body"
  8615            schema:
  8616              $ref: "#/definitions/SecretSpec"
  8617            description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values."
  8618          - name: "version"
  8619            in: "query"
  8620            description: "The version number of the secret object being updated. This is required to avoid conflicting writes."
  8621            type: "integer"
  8622            format: "int64"
  8623            required: true
  8624        tags: ["Secret"]
  8625    /configs:
  8626      get:
  8627        summary: "List configs"
  8628        operationId: "ConfigList"
  8629        produces:
  8630          - "application/json"
  8631        responses:
  8632          200:
  8633            description: "no error"
  8634            schema:
  8635              type: "array"
  8636              items:
  8637                $ref: "#/definitions/Config"
  8638              example:
  8639                - ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8640                  Version:
  8641                    Index: 11
  8642                  CreatedAt: "2016-11-05T01:20:17.327670065Z"
  8643                  UpdatedAt: "2016-11-05T01:20:17.327670065Z"
  8644                  Spec:
  8645                    Name: "server.conf"
  8646          500:
  8647            description: "server error"
  8648            schema:
  8649              $ref: "#/definitions/ErrorResponse"
  8650          503:
  8651            description: "node is not part of a swarm"
  8652            schema:
  8653              $ref: "#/definitions/ErrorResponse"
  8654        parameters:
  8655          - name: "filters"
  8656            in: "query"
  8657            type: "string"
  8658            description: |
  8659              A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:
  8660  
  8661              - `id=<config id>`
  8662              - `label=<key> or label=<key>=value`
  8663              - `name=<config name>`
  8664              - `names=<config name>`
  8665        tags: ["Config"]
  8666    /configs/create:
  8667      post:
  8668        summary: "Create a config"
  8669        operationId: "ConfigCreate"
  8670        consumes:
  8671          - "application/json"
  8672        produces:
  8673          - "application/json"
  8674        responses:
  8675          201:
  8676            description: "no error"
  8677            schema:
  8678              type: "object"
  8679              properties:
  8680                ID:
  8681                  description: "The ID of the created config."
  8682                  type: "string"
  8683              example:
  8684                ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8685          409:
  8686            description: "name conflicts with an existing object"
  8687            schema:
  8688              $ref: "#/definitions/ErrorResponse"
  8689          500:
  8690            description: "server error"
  8691            schema:
  8692              $ref: "#/definitions/ErrorResponse"
  8693          503:
  8694            description: "node is not part of a swarm"
  8695            schema:
  8696              $ref: "#/definitions/ErrorResponse"
  8697        parameters:
  8698          - name: "body"
  8699            in: "body"
  8700            schema:
  8701              allOf:
  8702                - $ref: "#/definitions/ConfigSpec"
  8703                - type: "object"
  8704                  example:
  8705                    Name: "server.conf"
  8706                    Labels:
  8707                      foo: "bar"
  8708                    Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
  8709        tags: ["Config"]
  8710    /configs/{id}:
  8711      get:
  8712        summary: "Inspect a config"
  8713        operationId: "ConfigInspect"
  8714        produces:
  8715          - "application/json"
  8716        responses:
  8717          200:
  8718            description: "no error"
  8719            schema:
  8720              $ref: "#/definitions/Config"
  8721            examples:
  8722              application/json:
  8723                ID: "ktnbjxoalbkvbvedmg1urrz8h"
  8724                Version:
  8725                  Index: 11
  8726                CreatedAt: "2016-11-05T01:20:17.327670065Z"
  8727                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
  8728                Spec:
  8729                  Name: "app-dev.crt"
  8730          404:
  8731            description: "config not found"
  8732            schema:
  8733              $ref: "#/definitions/ErrorResponse"
  8734          500:
  8735            description: "server error"
  8736            schema:
  8737              $ref: "#/definitions/ErrorResponse"
  8738          503:
  8739            description: "node is not part of a swarm"
  8740            schema:
  8741              $ref: "#/definitions/ErrorResponse"
  8742        parameters:
  8743          - name: "id"
  8744            in: "path"
  8745            required: true
  8746            type: "string"
  8747            description: "ID of the config"
  8748        tags: ["Config"]
  8749      delete:
  8750        summary: "Delete a config"
  8751        operationId: "ConfigDelete"
  8752        produces:
  8753          - "application/json"
  8754        responses:
  8755          204:
  8756            description: "no error"
  8757          404:
  8758            description: "config not found"
  8759            schema:
  8760              $ref: "#/definitions/ErrorResponse"
  8761          500:
  8762            description: "server error"
  8763            schema:
  8764              $ref: "#/definitions/ErrorResponse"
  8765          503:
  8766            description: "node is not part of a swarm"
  8767            schema:
  8768              $ref: "#/definitions/ErrorResponse"
  8769        parameters:
  8770          - name: "id"
  8771            in: "path"
  8772            required: true
  8773            type: "string"
  8774            description: "ID of the config"
  8775        tags: ["Config"]
  8776    /configs/{id}/update:
  8777      post:
  8778        summary: "Update a Config"
  8779        operationId: "ConfigUpdate"
  8780        responses:
  8781          200:
  8782            description: "no error"
  8783          400:
  8784            description: "bad parameter"
  8785            schema:
  8786              $ref: "#/definitions/ErrorResponse"
  8787          404:
  8788            description: "no such config"
  8789            schema:
  8790              $ref: "#/definitions/ErrorResponse"
  8791          500:
  8792            description: "server error"
  8793            schema:
  8794              $ref: "#/definitions/ErrorResponse"
  8795          503:
  8796            description: "node is not part of a swarm"
  8797            schema:
  8798              $ref: "#/definitions/ErrorResponse"
  8799        parameters:
  8800          - name: "id"
  8801            in: "path"
  8802            description: "The ID or name of the config"
  8803            type: "string"
  8804            required: true
  8805          - name: "body"
  8806            in: "body"
  8807            schema:
  8808              $ref: "#/definitions/ConfigSpec"
  8809            description: "The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values."
  8810          - name: "version"
  8811            in: "query"
  8812            description: "The version number of the config object being updated. This is required to avoid conflicting writes."
  8813            type: "integer"
  8814            format: "int64"
  8815            required: true
  8816        tags: ["Config"]
  8817    /distribution/{name}/json:
  8818      get:
  8819        summary: "Get image information from the registry"
  8820        description: "Return image digest and platform information by contacting the registry."
  8821        operationId: "DistributionInspect"
  8822        produces:
  8823          - "application/json"
  8824        responses:
  8825          200:
  8826            description: "descriptor and platform information"
  8827            schema:
  8828              type: "object"
  8829              x-go-name: DistributionInspect
  8830              required: [Descriptor, Platforms]
  8831              properties:
  8832                Descriptor:
  8833                  type: "object"
  8834                  description: "A descriptor struct containing digest, media type, and size"
  8835                  properties:
  8836                    MediaType:
  8837                      type: "string"
  8838                    Size:
  8839                      type: "integer"
  8840                      format: "int64"
  8841                    Digest:
  8842                      type: "string"
  8843                    URLs:
  8844                      type: "array"
  8845                      items:
  8846                        type: "string"
  8847                Platforms:
  8848                  type: "array"
  8849                  description: "An array containing all platforms supported by the image"
  8850                  items:
  8851                    type: "object"
  8852                    properties:
  8853                      Architecture:
  8854                        type: "string"
  8855                      OS:
  8856                        type: "string"
  8857                      OSVersion:
  8858                        type: "string"
  8859                      OSFeatures:
  8860                        type: "array"
  8861                        items:
  8862                          type: "string"
  8863                      Variant:
  8864                        type: "string"
  8865                      Features:
  8866                        type: "array"
  8867                        items:
  8868                          type: "string"
  8869            examples:
  8870              application/json:
  8871                Descriptor:
  8872                  MediaType: "application/vnd.docker.distribution.manifest.v2+json"
  8873                  Digest: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96"
  8874                  Size: 3987495
  8875                  URLs:
  8876                    - ""
  8877                Platforms:
  8878                  - Architecture: "amd64"
  8879                    OS: "linux"
  8880                    OSVersion: ""
  8881                    OSFeatures:
  8882                      - ""
  8883                    Variant: ""
  8884                    Features:
  8885                      - ""
  8886          401:
  8887            description: "Failed authentication or no image found"
  8888            schema:
  8889              $ref: "#/definitions/ErrorResponse"
  8890            examples:
  8891              application/json:
  8892                message: "No such image: someimage (tag: latest)"
  8893          500:
  8894            description: "Server error"
  8895            schema:
  8896              $ref: "#/definitions/ErrorResponse"
  8897        parameters:
  8898          - name: "name"
  8899            in: "path"
  8900            description: "Image name or id"
  8901            type: "string"
  8902            required: true
  8903        tags: ["Distribution"]
  8904    /session:
  8905      post:
  8906        summary: "Initialize interactive session"
  8907        description: |
  8908          Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities.
  8909  
  8910          > **Note**: This endpoint is *experimental* and only available if the daemon is started with experimental
  8911          > features enabled. The specifications for this endpoint may still change in a future version of the API.
  8912  
  8913          ### Hijacking
  8914  
  8915          This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection.
  8916  
  8917          For example, the client sends this request to upgrade the connection:
  8918  
  8919          ```
  8920          POST /session HTTP/1.1
  8921          Upgrade: h2c
  8922          Connection: Upgrade
  8923          ```
  8924  
  8925          The Docker daemon will respond with a `101 UPGRADED` response follow with the raw stream:
  8926  
  8927          ```
  8928          HTTP/1.1 101 UPGRADED
  8929          Connection: Upgrade
  8930          Upgrade: h2c
  8931          ```
  8932        operationId: "Session"
  8933        produces:
  8934          - "application/vnd.docker.raw-stream"
  8935        responses:
  8936          101:
  8937            description: "no error, hijacking successful"
  8938          400:
  8939            description: "bad parameter"
  8940            schema:
  8941              $ref: "#/definitions/ErrorResponse"
  8942          500:
  8943            description: "server error"
  8944            schema:
  8945              $ref: "#/definitions/ErrorResponse"
  8946        tags: ["Session (experimental)"]