github.com/moby/docker@v26.1.3+incompatible/docs/api/v1.42.yaml (about)

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