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