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