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