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