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