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