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