github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/docs/api/v1.43.yaml (about)

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