github.com/rumpl/bof@v23.0.0-rc.2+incompatible/api/swagger.yaml (about)

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