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