github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/pkg/varlink/io.podman.varlink (about)

     1  # Podman Service Interface and API description.  The master version of this document can be found
     2  # in the [API.md](https://github.com/containers/podman/blob/master/API.md) file in the upstream libpod repository.
     3  interface io.podman
     4  
     5  type Volume (
     6    name: string,
     7    labels: [string]string,
     8    mountPoint: string,
     9    driver: string,
    10    options: [string]string
    11  )
    12  
    13  type NotImplemented (
    14      comment: string
    15  )
    16  
    17  type StringResponse (
    18      message: string
    19  )
    20  
    21  type RemoveImageResponse (
    22      untagged: []string,
    23      deleted: string
    24  )
    25  
    26  type LogLine (
    27      device: string,
    28      parseLogType : string,
    29      time: string,
    30      msg: string,
    31      cid: string
    32  )
    33  
    34  # ContainerChanges describes the return struct for ListContainerChanges
    35  type ContainerChanges (
    36     changed: []string,
    37     added: []string,
    38     deleted: []string
    39  )
    40  
    41  type ImageSaveOptions (
    42      name: string,
    43      format: string,
    44      output: string,
    45      outputType: string,
    46      moreTags: []string,
    47      quiet: bool,
    48      compress: bool
    49  )
    50  
    51  type VolumeCreateOpts (
    52     volumeName: string,
    53     driver: string,
    54     labels: [string]string,
    55     options: [string]string
    56  )
    57  
    58  type VolumeRemoveOpts (
    59     volumes: []string,
    60     all: bool,
    61     force: bool
    62  )
    63  
    64  type Image (
    65    id: string,
    66    digest: string,
    67    digests: []string,
    68    parentId: string,
    69    repoTags: []string,
    70    repoDigests: []string,
    71    created: string, # as RFC3339
    72    size: int,
    73    virtualSize: int,
    74    containers: int,
    75    labels: [string]string,
    76    isParent: bool,
    77    topLayer: string,
    78    readOnly: bool,
    79    history: []string
    80  )
    81  
    82  # ImageHistory describes the returned structure from ImageHistory.
    83  type ImageHistory (
    84      id: string,
    85      created: string, # as RFC3339
    86      createdBy: string,
    87      tags: []string,
    88      size: int,
    89      comment: string
    90  )
    91  
    92  # Represents a single search result from SearchImages
    93  type ImageSearchResult (
    94      description: string,
    95      is_official: bool,
    96      is_automated: bool,
    97      registry: string,
    98      name: string,
    99      star_count: int
   100  )
   101  
   102  type ImageSearchFilter (
   103      is_official: ?bool,
   104      is_automated: ?bool,
   105      star_count: int
   106  )
   107  
   108  type AuthConfig (
   109      username: string,
   110      password: string
   111  )
   112  
   113  type KubePodService (
   114      pod: string,
   115      service: string
   116  )
   117  
   118  type Container (
   119      id: string,
   120      image: string,
   121      imageid: string,
   122      command: []string,
   123      createdat: string, # as RFC3339
   124      runningfor: string,
   125      status: string,
   126      ports: []ContainerPortMappings,
   127      rootfssize: int,
   128      rwsize: int,
   129      names: string,
   130      labels: [string]string,
   131      mounts: []ContainerMount,
   132      containerrunning: bool,
   133      namespaces: ContainerNameSpace
   134  )
   135  
   136  # ContainerStats is the return struct for the stats of a container
   137  type ContainerStats (
   138      id: string,
   139      name: string,
   140      cpu: float,
   141      cpu_nano: int,
   142      system_nano: int,
   143      mem_usage: int,
   144      mem_limit: int,
   145      mem_perc: float,
   146      net_input: int,
   147      net_output: int,
   148      block_output: int,
   149      block_input: int,
   150      pids: int
   151  )
   152  
   153  type PsOpts (
   154      all: bool,
   155      filters: ?[]string,
   156      last: ?int,
   157      latest: ?bool,
   158      noTrunc: ?bool,
   159      pod: ?bool,
   160      quiet: ?bool,
   161      size: ?bool,
   162      sort: ?string,
   163      sync: ?bool
   164  )
   165  
   166  type PsContainer (
   167      id: string,
   168      image: string,
   169      command: string,
   170      created: string,
   171      ports: string,
   172      names: string,
   173      isInfra: bool,
   174      status: string,
   175      state: string,
   176      pidNum: int,
   177      rootFsSize: int,
   178      rwSize: int,
   179      pod: string,
   180      createdAt: string,
   181      exitedAt: string,
   182      startedAt: string,
   183      labels: [string]string,
   184      nsPid: string,
   185      cgroup: string,
   186      ipc: string,
   187      mnt: string,
   188      net: string,
   189      pidNs: string,
   190      user: string,
   191      uts: string,
   192      mounts: string
   193  )
   194  
   195  # ContainerMount describes the struct for mounts in a container
   196  type ContainerMount (
   197      destination: string,
   198      type: string,
   199      source: string,
   200      options: []string
   201  )
   202  
   203  # ContainerPortMappings describes the struct for portmappings in an existing container
   204  type ContainerPortMappings (
   205      host_port: string,
   206      host_ip: string,
   207      protocol: string,
   208      container_port: string
   209  )
   210  
   211  # ContainerNamespace describes the namespace structure for an existing container
   212  type ContainerNameSpace (
   213      user: string,
   214      uts: string,
   215      pidns: string,
   216      pid: string,
   217      cgroup: string,
   218      net: string,
   219      mnt: string,
   220      ipc: string
   221  )
   222  
   223  # InfoDistribution describes the host's distribution
   224  type InfoDistribution (
   225      distribution: string,
   226      version: string
   227  )
   228  
   229  # InfoHost describes the host stats portion of PodmanInfo
   230  type InfoHost (
   231      buildah_version: string,
   232      distribution: InfoDistribution,
   233      mem_free: int,
   234      mem_total: int,
   235      swap_free: int,
   236      swap_total: int,
   237      arch: string,
   238      cpus: int,
   239      hostname: string,
   240      kernel: string,
   241      os: string,
   242      uptime: string,
   243      eventlogger: string
   244  )
   245  
   246  # InfoGraphStatus describes the detailed status of the storage driver
   247  type InfoGraphStatus (
   248      backing_filesystem: string,
   249      native_overlay_diff: string,
   250      supports_d_type: string
   251  )
   252  
   253  # InfoRegistry describes the host's registry information
   254  type InfoRegistry (
   255      search: []string,
   256      insecure: []string,
   257      blocked: []string
   258  )
   259  
   260  # InfoStore describes the host's storage information
   261  type InfoStore (
   262      containers: int,
   263      images: int,
   264      graph_driver_name: string,
   265      graph_driver_options: string,
   266      graph_root: string,
   267      graph_status: InfoGraphStatus,
   268      run_root: string
   269  )
   270  
   271  # InfoPodman provides details on the Podman binary
   272  type InfoPodmanBinary (
   273      compiler: string,
   274      go_version: string,
   275      podman_version: string,
   276      git_commit: string
   277  )
   278  
   279  # PodmanInfo describes the Podman host and build
   280  type PodmanInfo (
   281      host: InfoHost,
   282      registries: InfoRegistry,
   283      store: InfoStore,
   284      podman: InfoPodmanBinary
   285  )
   286  
   287  # Sockets describes sockets location for a container
   288  type Sockets(
   289      container_id: string,
   290      io_socket: string,
   291      control_socket: string
   292  )
   293  
   294  # Create is an input structure for creating containers.
   295  # args[0] is the image name or id
   296  # args[1-] are the new commands if changed
   297  type Create (
   298      args: []string,
   299      addHost: ?[]string,
   300      annotation: ?[]string,
   301      attach: ?[]string,
   302      blkioWeight: ?string,
   303      blkioWeightDevice: ?[]string,
   304      capAdd: ?[]string,
   305      capDrop: ?[]string,
   306      cgroupParent: ?string,
   307      cidFile: ?string,
   308      conmonPidfile: ?string,
   309      command: ?[]string,
   310      cpuPeriod: ?int,
   311      cpuQuota: ?int,
   312      cpuRtPeriod: ?int,
   313      cpuRtRuntime: ?int,
   314      cpuShares: ?int,
   315      cpus: ?float,
   316      cpuSetCpus: ?string,
   317      cpuSetMems: ?string,
   318      detach: ?bool,
   319      detachKeys: ?string,
   320      device: ?[]string,
   321      deviceReadBps: ?[]string,
   322      deviceReadIops: ?[]string,
   323      deviceWriteBps: ?[]string,
   324      deviceWriteIops: ?[]string,
   325      dns: ?[]string,
   326      dnsOpt: ?[]string,
   327      dnsSearch: ?[]string,
   328      dnsServers: ?[]string,
   329      entrypoint: ?string,
   330      env:  ?[]string,
   331      envFile: ?[]string,
   332      expose: ?[]string,
   333      gidmap: ?[]string,
   334      groupadd: ?[]string,
   335      healthcheckCommand: ?string,
   336      healthcheckInterval: ?string,
   337      healthcheckRetries: ?int,
   338      healthcheckStartPeriod: ?string,
   339      healthcheckTimeout:?string,
   340      hostname: ?string,
   341      imageVolume: ?string,
   342      init: ?bool,
   343      initPath: ?string,
   344      interactive: ?bool,
   345      ip: ?string,
   346      ipc: ?string,
   347      kernelMemory: ?string,
   348      label: ?[]string,
   349      labelFile: ?[]string,
   350      logDriver: ?string,
   351      logOpt: ?[]string,
   352      macAddress: ?string,
   353      memory: ?string,
   354      memoryReservation: ?string,
   355      memorySwap: ?string,
   356      memorySwappiness: ?int,
   357      name: ?string,
   358      network: ?string,
   359      noHosts: ?bool,
   360      oomKillDisable: ?bool,
   361      oomScoreAdj: ?int,
   362      overrideArch: ?string,
   363      overrideOS: ?string,
   364      pid: ?string,
   365      pidsLimit: ?int,
   366      pod: ?string,
   367      privileged: ?bool,
   368      publish: ?[]string,
   369      publishAll: ?bool,
   370      pull: ?string,
   371      quiet: ?bool,
   372      readonly: ?bool,
   373      readonlytmpfs: ?bool,
   374      restart: ?string,
   375      rm: ?bool,
   376      rootfs: ?bool,
   377      securityOpt: ?[]string,
   378      shmSize: ?string,
   379      stopSignal: ?string,
   380      stopTimeout: ?int,
   381      storageOpt: ?[]string,
   382      subuidname: ?string,
   383      subgidname: ?string,
   384      sysctl: ?[]string,
   385      systemd: ?string,
   386      tmpfs: ?[]string,
   387      tty: ?bool,
   388      uidmap: ?[]string,
   389      ulimit: ?[]string,
   390      user: ?string,
   391      userns: ?string,
   392      uts: ?string,
   393      mount: ?[]string,
   394      volume: ?[]string,
   395      volumesFrom: ?[]string,
   396      workDir: ?string
   397  )
   398  
   399  # BuildOptions are are used to describe describe physical attributes of the build
   400  type BuildOptions (
   401      addHosts: []string,
   402      cgroupParent: string,
   403      cpuPeriod: int,
   404      cpuQuota: int,
   405      cpuShares: int,
   406      cpusetCpus: string,
   407      cpusetMems: string,
   408      memory: int,
   409      memorySwap: int,
   410      shmSize: string,
   411      ulimit: []string,
   412      volume: []string
   413  )
   414  
   415  # BuildInfo is used to describe user input for building images
   416  type BuildInfo (
   417      architecture: string,
   418      addCapabilities: []string,
   419      additionalTags: []string,
   420      annotations: []string,
   421      buildArgs: [string]string,
   422      buildOptions: BuildOptions,
   423      cniConfigDir: string,
   424      cniPluginDir: string,
   425      compression: string,
   426      contextDir: string,
   427      defaultsMountFilePath: string,
   428      devices: []string,
   429      dockerfiles: []string,
   430      dropCapabilities: []string,
   431      err: string,
   432      forceRmIntermediateCtrs: bool,
   433      iidfile: string,
   434      label: []string,
   435      layers: bool,
   436      nocache: bool,
   437      os: string,
   438      out: string,
   439      output: string,
   440      outputFormat: string,
   441      pullPolicy: string,
   442      quiet: bool,
   443      remoteIntermediateCtrs: bool,
   444      reportWriter: string,
   445      runtimeArgs: []string,
   446      signBy: string,
   447      squash: bool,
   448      target: string,
   449      transientMounts: []string
   450  )
   451  
   452  # MoreResponse is a struct for when responses from varlink requires longer output
   453  type MoreResponse (
   454      logs: []string,
   455      id: string
   456  )
   457  
   458  # ListPodContainerInfo is a returned struct for describing containers
   459  # in a pod.
   460  type ListPodContainerInfo (
   461      name: string,
   462      id: string,
   463      status: string
   464  )
   465  
   466  # PodCreate is an input structure for creating pods.
   467  # It emulates options to podman pod create. The infraCommand and
   468  # infraImage options are currently NotSupported.
   469  type PodCreate (
   470      name: string,
   471      cgroupParent: string,
   472      labels: [string]string,
   473      share: []string,
   474      infra: bool,
   475      infraCommand: string,
   476      infraImage: string,
   477      publish: []string
   478  )
   479  
   480  # ListPodData is the returned struct for an individual pod
   481  type ListPodData (
   482      id: string,
   483      name: string,
   484      createdat: string,
   485      cgroup: string,
   486      status: string,
   487      labels: [string]string,
   488      numberofcontainers: string,
   489      containersinfo: []ListPodContainerInfo
   490  )
   491  
   492  type PodContainerErrorData (
   493      containerid: string,
   494      reason: string
   495  )
   496  
   497  # Runlabel describes the required input for container runlabel
   498  type Runlabel(
   499      image: string,
   500      authfile: string,
   501      display: bool,
   502      name: string,
   503      pull: bool,
   504      label: string,
   505      extraArgs: []string,
   506      opts: [string]string
   507  )
   508  
   509  # Event describes a libpod struct
   510  type Event(
   511      # TODO: make status and type a enum at some point?
   512      # id is the container, volume, pod, image ID
   513      id: string,
   514      # image is the image name where applicable
   515      image: string,
   516      # name is the name of the pod, container, image
   517      name: string,
   518      # status describes the event that happened (i.e. create, remove, ...)
   519      status: string,
   520      # time the event happened
   521      time: string,
   522      # type describes object the event happened with (image, container...)
   523      type: string
   524  )
   525  
   526  type DiffInfo(
   527      # path that is different
   528      path: string,
   529      # Add, Delete, Modify
   530      changeType: string
   531  )
   532  
   533  type ExecOpts(
   534      # container name or id
   535      name: string,
   536      # Create pseudo tty
   537      tty: bool,
   538      # privileged access in container
   539      privileged: bool,
   540      # command to execute in container
   541      cmd: []string,
   542      # user to use in container
   543      user: ?string,
   544      # workdir to run command in container
   545      workdir: ?string,
   546      # slice of keyword=value environment variables
   547      env: ?[]string,
   548      # string of detach keys
   549      detachKeys: ?string
   550  )
   551  
   552  # GetVersion returns version and build information of the podman service
   553  method GetVersion() -> (
   554      version: string,
   555      go_version: string,
   556      git_commit: string,
   557      built: string, # as RFC3339
   558      os_arch: string,
   559      remote_api_version: int
   560  )
   561  
   562  # Reset resets Podman back to its initial state.
   563  # Removes all Pods, Containers, Images and Volumes
   564  method Reset() -> ()
   565  
   566  # GetInfo returns a [PodmanInfo](#PodmanInfo) struct that describes podman and its host such as storage stats,
   567  # build information of Podman, and system-wide registries.
   568  method GetInfo() -> (info: PodmanInfo)
   569  
   570  # ListContainers returns information about all containers.
   571  # See also [GetContainer](#GetContainer).
   572  method ListContainers() -> (containers: []Container)
   573  
   574  method Ps(opts: PsOpts) -> (containers: []PsContainer)
   575  
   576  method GetContainersByStatus(status: []string) -> (containerS: []Container)
   577  
   578  method Top (nameOrID: string, descriptors: []string) -> (top: []string)
   579  
   580  # HealthCheckRun executes defined container's healthcheck command
   581  # and returns the container's health status.
   582  method HealthCheckRun (nameOrID: string) -> (healthCheckStatus: string)
   583  
   584  # GetContainer returns information about a single container.  If a container
   585  # with the given id doesn't exist, a [ContainerNotFound](#ContainerNotFound)
   586  # error will be returned.  See also [ListContainers](ListContainers) and
   587  # [InspectContainer](#InspectContainer).
   588  method GetContainer(id: string) -> (container: Container)
   589  
   590  # GetContainersByContext allows you to get a list of container ids depending on all, latest, or a list of
   591  # container names.  The definition of latest container means the latest by creation date.  In a multi-
   592  # user environment, results might differ from what you expect.
   593  method GetContainersByContext(all: bool, latest: bool, args: []string) -> (containers: []string)
   594  
   595  # CreateContainer creates a new container from an image.  It uses a [Create](#Create) type for input.
   596  method CreateContainer(create: Create) -> (container: string)
   597  
   598  # InspectContainer data takes a name or ID of a container returns the inspection
   599  # data in string format.  You can then serialize the string into JSON.  A [ContainerNotFound](#ContainerNotFound)
   600  # error will be returned if the container cannot be found. See also [InspectImage](#InspectImage).
   601  method InspectContainer(name: string) -> (container: string)
   602  
   603  # ListContainerProcesses takes a name or ID of a container and returns the processes
   604  # running inside the container as array of strings.  It will accept an array of string
   605  # arguments that represent ps options.  If the container cannot be found, a [ContainerNotFound](#ContainerNotFound)
   606  # error will be returned.
   607  # #### Example
   608  # ~~~
   609  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ListContainerProcesses '{"name": "135d71b9495f", "opts": []}'
   610  # {
   611  #   "container": [
   612  #     "  UID   PID  PPID  C STIME TTY          TIME CMD",
   613  #     "    0 21220 21210  0 09:05 pts/0    00:00:00 /bin/sh",
   614  #     "    0 21232 21220  0 09:05 pts/0    00:00:00 top",
   615  #     "    0 21284 21220  0 09:05 pts/0    00:00:00 vi /etc/hosts"
   616  #   ]
   617  # }
   618  # ~~~
   619  method ListContainerProcesses(name: string, opts: []string) -> (container: []string)
   620  
   621  # GetContainerLogs takes a name or ID of a container and returns the logs of that container.
   622  # If the container cannot be found, a [ContainerNotFound](#ContainerNotFound) error will be returned.
   623  # The container logs are returned as an array of strings.  GetContainerLogs will honor the streaming
   624  # capability of varlink if the client invokes it.
   625  method GetContainerLogs(name: string) -> (container: []string)
   626  
   627  method GetContainersLogs(names: []string, follow: bool, latest: bool, since: string, tail: int, timestamps: bool) -> (log: LogLine)
   628  
   629  # ListContainerChanges takes a name or ID of a container and returns changes between the container and
   630  # its base image. It returns a struct of changed, deleted, and added path names.
   631  method ListContainerChanges(name: string) -> (container: ContainerChanges)
   632  
   633  # ExportContainer creates an image from a container.  It takes the name or ID of a container and a
   634  # path representing the target tarfile.  If the container cannot be found, a [ContainerNotFound](#ContainerNotFound)
   635  # error will be returned.
   636  # The return value is the written tarfile.
   637  # #### Example
   638  # ~~~
   639  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ExportContainer '{"name": "flamboyant_payne", "path": "/tmp/payne.tar" }'
   640  # {
   641  #   "tarfile": "/tmp/payne.tar"
   642  # }
   643  # ~~~
   644  method ExportContainer(name: string, path: string) -> (tarfile: string)
   645  
   646  # GetContainerStats takes the name or ID of a container and returns a single ContainerStats structure which
   647  # contains attributes like memory and cpu usage.  If the container cannot be found, a
   648  # [ContainerNotFound](#ContainerNotFound) error will be returned. If the container is not running, a [NoContainerRunning](#NoContainerRunning)
   649  # error will be returned
   650  # #### Example
   651  # ~~~
   652  # $ varlink call -m unix:/run/podman/io.podman/io.podman.GetContainerStats '{"name": "c33e4164f384"}'
   653  # {
   654  #   "container": {
   655  #     "block_input": 0,
   656  #     "block_output": 0,
   657  #     "cpu": 2.571123918839990154678e-08,
   658  #     "cpu_nano": 49037378,
   659  #     "id": "c33e4164f384aa9d979072a63319d66b74fd7a128be71fa68ede24f33ec6cfee",
   660  #     "mem_limit": 33080606720,
   661  #     "mem_perc": 2.166828456524753747370e-03,
   662  #     "mem_usage": 716800,
   663  #     "name": "competent_wozniak",
   664  #     "net_input": 768,
   665  #     "net_output": 5910,
   666  #     "pids": 1,
   667  #     "system_nano": 10000000
   668  #   }
   669  # }
   670  # ~~~
   671  method GetContainerStats(name: string) -> (container: ContainerStats)
   672  
   673  # GetContainerStatsWithHistory takes a previous set of container statistics and uses libpod functions
   674  # to calculate the containers statistics based on current and previous measurements.
   675  method GetContainerStatsWithHistory(previousStats: ContainerStats) -> (container: ContainerStats)
   676  
   677  # This method has not be implemented yet.
   678  # method ResizeContainerTty() -> (notimplemented: NotImplemented)
   679  
   680  # StartContainer starts a created or stopped container. It takes the name or ID of container.  It returns
   681  # the container ID once started.  If the container cannot be found, a [ContainerNotFound](#ContainerNotFound)
   682  # error will be returned.  See also [CreateContainer](#CreateContainer).
   683  method StartContainer(name: string) -> (container: string)
   684  
   685  # StopContainer stops a container given a timeout.  It takes the name or ID of a container as well as a
   686  # timeout value.  The timeout value the time before a forcible stop to the container is applied.  It
   687  # returns the container ID once stopped. If the container cannot be found, a [ContainerNotFound](#ContainerNotFound)
   688  # error will be returned instead. See also [KillContainer](KillContainer).
   689  # #### Error
   690  # ~~~
   691  # $ varlink call -m unix:/run/podman/io.podman/io.podman.StopContainer '{"name": "135d71b9495f", "timeout": 5}'
   692  # {
   693  #   "container": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6"
   694  # }
   695  # ~~~
   696  method StopContainer(name: string, timeout: int) -> (container: string)
   697  
   698  # InitContainer initializes the given container. It accepts a container name or
   699  # ID, and will initialize the container matching that ID if possible, and error
   700  # if not. Containers can only be initialized when they are in the Created or
   701  # Exited states. Initialization prepares a container to be started, but does not
   702  # start the container. It is intended to be used to debug a container's state
   703  # prior to starting it.
   704  method InitContainer(name: string) -> (container: string)
   705  
   706  # RestartContainer will restart a running container given a container name or ID and timeout value. The timeout
   707  # value is the time before a forcible stop is used to stop the container.  If the container cannot be found by
   708  # name or ID, a [ContainerNotFound](#ContainerNotFound)  error will be returned; otherwise, the ID of the
   709  # container will be returned.
   710  method RestartContainer(name: string, timeout: int) -> (container: string)
   711  
   712  # KillContainer takes the name or ID of a container as well as a signal to be applied to the container.  Once the
   713  # container has been killed, the container's ID is returned.  If the container cannot be found, a
   714  # [ContainerNotFound](#ContainerNotFound) error is returned. See also [StopContainer](StopContainer).
   715  method KillContainer(name: string, signal: int) -> (container: string)
   716  
   717  # This method has not be implemented yet.
   718  # method UpdateContainer() -> (notimplemented: NotImplemented)
   719  
   720  # This method has not be implemented yet.
   721  # method RenameContainer() -> (notimplemented: NotImplemented)
   722  
   723  # PauseContainer takes the name or ID of container and pauses it.  If the container cannot be found,
   724  # a [ContainerNotFound](#ContainerNotFound) error will be returned; otherwise the ID of the container is returned.
   725  # See also [UnpauseContainer](#UnpauseContainer).
   726  method PauseContainer(name: string) -> (container: string)
   727  
   728  # UnpauseContainer takes the name or ID of container and unpauses a paused container.  If the container cannot be
   729  # found, a [ContainerNotFound](#ContainerNotFound) error will be returned; otherwise the ID of the container is returned.
   730  # See also [PauseContainer](#PauseContainer).
   731  method UnpauseContainer(name: string) -> (container: string)
   732  
   733  # Attach takes the name or ID of a container and sets up the ability to remotely attach to its console. The start
   734  # bool is whether you wish to start the container in question first.
   735  method Attach(name: string, detachKeys: string, start: bool) -> ()
   736  
   737  method AttachControl(name: string) -> ()
   738  
   739  # GetAttachSockets takes the name or ID of an existing container.  It returns file paths for two sockets needed
   740  # to properly communicate with a container.  The first is the actual I/O socket that the container uses.  The
   741  # second is a "control" socket where things like resizing the TTY events are sent. If the container cannot be
   742  # found, a [ContainerNotFound](#ContainerNotFound) error will be returned.
   743  # #### Example
   744  # ~~~
   745  # $ varlink call -m unix:/run/io.podman/io.podman.GetAttachSockets '{"name": "b7624e775431219161"}'
   746  # {
   747  #   "sockets": {
   748  #     "container_id": "b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca",
   749  #     "control_socket": "/var/lib/containers/storage/overlay-containers/b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca/userdata/ctl",
   750  #     "io_socket": "/var/run/libpod/socket/b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca/attach"
   751  #   }
   752  # }
   753  # ~~~
   754  method GetAttachSockets(name: string) -> (sockets: Sockets)
   755  
   756  # WaitContainer takes the name or ID of a container and waits the given interval in milliseconds until the container
   757  # stops.  Upon stopping, the return code of the container is returned. If the container container cannot be found by ID
   758  # or name, a [ContainerNotFound](#ContainerNotFound) error is returned.
   759  method WaitContainer(name: string, interval: int) -> (exitcode: int)
   760  
   761  # RemoveContainer requires the name or ID of a container as well as a boolean that
   762  # indicates whether a container should be forcefully removed (e.g., by stopping it), and a boolean
   763  # indicating whether to remove builtin volumes. Upon successful removal of the
   764  # container, its ID is returned.  If the
   765  # container cannot be found by name or ID, a [ContainerNotFound](#ContainerNotFound) error will be returned.
   766  # See also [EvictContainer](EvictContainer).
   767  # #### Example
   768  # ~~~
   769  # $ varlink call -m unix:/run/podman/io.podman/io.podman.RemoveContainer '{"name": "62f4fd98cb57"}'
   770  # {
   771  #   "container": "62f4fd98cb57f529831e8f90610e54bba74bd6f02920ffb485e15376ed365c20"
   772  # }
   773  # ~~~
   774  method RemoveContainer(name: string, force: bool, removeVolumes: bool) -> (container: string)
   775  
   776  # EvictContainer requires the name or ID of a container as well as a boolean that
   777  # indicates to remove builtin volumes. Upon successful eviction of the container,
   778  # its ID is returned.  If the container cannot be found by name or ID,
   779  # a [ContainerNotFound](#ContainerNotFound) error will be returned.
   780  # See also [RemoveContainer](RemoveContainer).
   781  # #### Example
   782  # ~~~
   783  # $ varlink call -m unix:/run/podman/io.podman/io.podman.EvictContainer '{"name": "62f4fd98cb57"}'
   784  # {
   785  #   "container": "62f4fd98cb57f529831e8f90610e54bba74bd6f02920ffb485e15376ed365c20"
   786  # }
   787  # ~~~
   788  method EvictContainer(name: string, removeVolumes: bool) -> (container: string)
   789  
   790  # DeleteStoppedContainers will delete all containers that are not running. It will return a list the deleted
   791  # container IDs.  See also [RemoveContainer](RemoveContainer).
   792  # #### Example
   793  # ~~~
   794  # $ varlink call -m unix:/run/podman/io.podman/io.podman.DeleteStoppedContainers
   795  # {
   796  #   "containers": [
   797  #     "451410b931d00def8aa9b4f8084e4d4a39e5e04ea61f358cf53a5cf95afcdcee",
   798  #     "8b60f754a3e01389494a9581ade97d35c2765b6e2f19acd2d3040c82a32d1bc0",
   799  #     "cf2e99d4d3cad6073df199ed32bbe64b124f3e1aba6d78821aa8460e70d30084",
   800  #     "db901a329587312366e5ecff583d08f0875b4b79294322df67d90fc6eed08fc1"
   801  #   ]
   802  # }
   803  # ~~~
   804  method DeleteStoppedContainers() -> (containers: []string)
   805  
   806  # ListImages returns information about the images that are currently in storage.
   807  # See also [InspectImage](#InspectImage).
   808  method ListImages() -> (images: []Image)
   809  
   810  # ListImagesWithFilters returns information about the images that are currently in storage
   811  # after one or more filters has been applied.
   812  # See also [InspectImage](#InspectImage).
   813  method ListImagesWithFilters(filters: []string) -> (images: []Image)
   814  
   815  # GetImage returns information about a single image in storage.
   816  # If the image caGetImage returns be found, [ImageNotFound](#ImageNotFound) will be returned.
   817  method GetImage(id: string) -> (image: Image)
   818  
   819  # BuildImage takes a [BuildInfo](#BuildInfo) structure and builds an image.  At a minimum, you must provide the
   820  # contextDir tarball path, the 'dockerfiles' path, and 'output' option in the BuildInfo structure.  The 'output'
   821  # options is the name of the of the resulting build. It will return a [MoreResponse](#MoreResponse) structure
   822  # that contains the build logs and resulting image ID.
   823  # #### Example
   824  # ~~~
   825  # $ sudo varlink call -m unix:///run/podman/io.podman/io.podman.BuildImage '{"build":{"contextDir":"/tmp/t/context.tar","dockerfiles":["Dockerfile"], "output":"foobar"}}'
   826  # {
   827  #  "image": {
   828  #    "id": "",
   829  #    "logs": [
   830  #      "STEP 1: FROM alpine\n"
   831  #    ]
   832  #  }
   833  # }
   834  # {
   835  #  "image": {
   836  #    "id": "",
   837  #    "logs": [
   838  #      "STEP 2: COMMIT foobar\n"
   839  #    ]
   840  #  }
   841  # }
   842  # {
   843  #  "image": {
   844  #    "id": "",
   845  #    "logs": [
   846  #      "b7b28af77ffec6054d13378df4fdf02725830086c7444d9c278af25312aa39b9\n"
   847  #    ]
   848  #  }
   849  # }
   850  # {
   851  #  "image": {
   852  #    "id": "b7b28af77ffec6054d13378df4fdf02725830086c7444d9c278af25312aa39b9",
   853  #    "logs": []
   854  #  }
   855  # }
   856  # ~~~
   857  method BuildImage(build: BuildInfo) -> (image: MoreResponse)
   858  
   859  # This function is not implemented yet.
   860  # method CreateImage() -> (notimplemented: NotImplemented)
   861  
   862  # InspectImage takes the name or ID of an image and returns a string representation of data associated with the
   863  #image.  You must serialize the string into JSON to use it further.  An [ImageNotFound](#ImageNotFound) error will
   864  # be returned if the image cannot be found.
   865  method InspectImage(name: string) -> (image: string)
   866  
   867  # HistoryImage takes the name or ID of an image and returns information about its history and layers.  The returned
   868  # history is in the form of an array of ImageHistory structures.  If the image cannot be found, an
   869  # [ImageNotFound](#ImageNotFound) error is returned.
   870  method HistoryImage(name: string) -> (history: []ImageHistory)
   871  
   872  # PushImage takes two input arguments: the name or ID of an image, the fully-qualified destination name of the image,
   873  # It will return an [ImageNotFound](#ImageNotFound) error if
   874  # the image cannot be found in local storage; otherwise it will return a [MoreResponse](#MoreResponse)
   875  method PushImage(name: string, tag: string, compress: bool, format: string, removeSignatures: bool, signBy: string) -> (reply: MoreResponse)
   876  
   877  # TagImage takes the name or ID of an image in local storage as well as the desired tag name.  If the image cannot
   878  # be found, an [ImageNotFound](#ImageNotFound) error will be returned; otherwise, the ID of the image is returned on success.
   879  method TagImage(name: string, tagged: string) -> (image: string)
   880  
   881  # UntagImage takes the name or ID of an image in local storage as well as the
   882  # tag name to be removed.  If the image cannot be found, an
   883  # [ImageNotFound](#ImageNotFound) error will be returned; otherwise, the ID of
   884  # the image is returned on success.
   885  method UntagImage(name: string, tag: string) -> (image: string)
   886  
   887  # RemoveImage takes the name or ID of an image as well as a boolean that determines if containers using that image
   888  # should be deleted.  If the image cannot be found, an [ImageNotFound](#ImageNotFound) error will be returned.  The
   889  # ID of the removed image is returned when complete.  See also [DeleteUnusedImages](DeleteUnusedImages).
   890  # #### Example
   891  # ~~~
   892  # varlink call -m unix:/run/podman/io.podman/io.podman.RemoveImage '{"name": "registry.fedoraproject.org/fedora", "force": true}'
   893  # {
   894  #   "image": "426866d6fa419873f97e5cbd320eeb22778244c1dfffa01c944db3114f55772e"
   895  # }
   896  # ~~~
   897  method RemoveImage(name: string, force: bool) -> (image: string)
   898  
   899  # RemoveImageWithResponse takes the name or ID of an image as well as a boolean that determines if containers using that image
   900  # should be deleted.  If the image cannot be found, an [ImageNotFound](#ImageNotFound) error will be returned. The response is
   901  # in the form of a RemoveImageResponse .
   902  method RemoveImageWithResponse(name: string, force: bool) -> (response: RemoveImageResponse)
   903  
   904  # SearchImages searches available registries for images that contain the
   905  # contents of "query" in their name. If "limit" is given, limits the amount of
   906  # search results per registry.
   907  method SearchImages(query: string, limit: ?int, filter: ImageSearchFilter) -> (results: []ImageSearchResult)
   908  
   909  # DeleteUnusedImages deletes any images not associated with a container.  The IDs of the deleted images are returned
   910  # in a string array.
   911  # #### Example
   912  # ~~~
   913  # $ varlink call -m unix:/run/podman/io.podman/io.podman.DeleteUnusedImages
   914  # {
   915  #   "images": [
   916  #     "166ea6588079559c724c15223f52927f514f73dd5c5cf2ae2d143e3b2e6e9b52",
   917  #     "da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e",
   918  #     "3ef70f7291f47dfe2b82931a993e16f5a44a0e7a68034c3e0e086d77f5829adc",
   919  #     "59788edf1f3e78cd0ebe6ce1446e9d10788225db3dedcfd1a59f764bad2b2690"
   920  #   ]
   921  # }
   922  # ~~~
   923  method DeleteUnusedImages() -> (images: []string)
   924  
   925  # Commit, creates an image from an existing container. It requires the name or
   926  # ID of the container as well as the resulting image name.  Optionally, you can define an author and message
   927  # to be added to the resulting image.  You can also define changes to the resulting image for the following
   928  # attributes: _CMD, ENTRYPOINT, ENV, EXPOSE, LABEL, ONBUILD, STOPSIGNAL, USER, VOLUME, and WORKDIR_.  To pause the
   929  # container while it is being committed, pass a _true_ bool for the pause argument.  If the container cannot
   930  # be found by the ID or name provided, a (ContainerNotFound)[#ContainerNotFound] error will be returned; otherwise,
   931  # the resulting image's ID will be returned as a string inside a MoreResponse.
   932  method Commit(name: string, image_name: string, changes: []string, author: string, message: string, pause: bool, manifestType: string) -> (reply: MoreResponse)
   933  
   934  # ImportImage imports an image from a source (like tarball) into local storage.  The image can have additional
   935  # descriptions added to it using the message and changes options. See also [ExportImage](ExportImage).
   936  method ImportImage(source: string, reference: string, message: string, changes: []string, delete: bool) -> (image: string)
   937  
   938  # ExportImage takes the name or ID of an image and exports it to a destination like a tarball.  There is also
   939  # a boolean option to force compression.  It also takes in a string array of tags to be able to save multiple
   940  # tags of the same image to a tarball (each tag should be of the form <image>:<tag>).  Upon completion, the ID
   941  # of the image is returned. If the image cannot be found in local storage, an [ImageNotFound](#ImageNotFound)
   942  # error will be returned. See also [ImportImage](ImportImage).
   943  method ExportImage(name: string, destination: string, compress: bool, tags: []string) -> (image: string)
   944  
   945  # PullImage pulls an image from a repository to local storage.  After a successful pull, the image id and logs
   946  # are returned as a [MoreResponse](#MoreResponse).  This connection also will handle a WantsMores request to send
   947  # status as it occurs.
   948  method PullImage(name: string, creds: AuthConfig) -> (reply: MoreResponse)
   949  
   950  # CreatePod creates a new empty pod.  It uses a [PodCreate](#PodCreate) type for input.
   951  # On success, the ID of the newly created pod will be returned.
   952  # #### Example
   953  # ~~~
   954  # $ varlink call unix:/run/podman/io.podman/io.podman.CreatePod '{"create": {"name": "test"}}'
   955  # {
   956  #   "pod": "b05dee7bd4ccfee688099fe1588a7a898d6ddd6897de9251d4671c9b0feacb2a"
   957  # }
   958  #
   959  # $ varlink call unix:/run/podman/io.podman/io.podman.CreatePod '{"create": {"infra": true, "share": ["ipc", "net", "uts"]}}'
   960  # {
   961  #   "pod": "d7697449a8035f613c1a8891286502aca68fff7d5d49a85279b3bda229af3b28"
   962  # }
   963  # ~~~
   964  method CreatePod(create: PodCreate) -> (pod: string)
   965  
   966  # ListPods returns a list of pods in no particular order.  They are
   967  # returned as an array of ListPodData structs.  See also [GetPod](#GetPod).
   968  # #### Example
   969  # ~~~
   970  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ListPods
   971  # {
   972  #   "pods": [
   973  #     {
   974  #       "cgroup": "machine.slice",
   975  #       "containersinfo": [
   976  #         {
   977  #           "id": "00c130a45de0411f109f1a0cfea2e298df71db20fa939de5cab8b2160a36be45",
   978  #           "name": "1840835294cf-infra",
   979  #           "status": "running"
   980  #         },
   981  #         {
   982  #           "id": "49a5cce72093a5ca47c6de86f10ad7bb36391e2d89cef765f807e460865a0ec6",
   983  #           "name": "upbeat_murdock",
   984  #           "status": "running"
   985  #         }
   986  #       ],
   987  #       "createdat": "2018-12-07 13:10:15.014139258 -0600 CST",
   988  #       "id": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f",
   989  #       "name": "foobar",
   990  #       "numberofcontainers": "2",
   991  #       "status": "Running"
   992  #     },
   993  #     {
   994  #       "cgroup": "machine.slice",
   995  #       "containersinfo": [
   996  #         {
   997  #           "id": "1ca4b7bbba14a75ba00072d4b705c77f3df87db0109afaa44d50cb37c04a477e",
   998  #           "name": "784306f655c6-infra",
   999  #           "status": "running"
  1000  #         }
  1001  #       ],
  1002  #       "createdat": "2018-12-07 13:09:57.105112457 -0600 CST",
  1003  #       "id": "784306f655c6200aea321dd430ba685e9b2cc1f7d7528a72f3ff74ffb29485a2",
  1004  #       "name": "nostalgic_pike",
  1005  #       "numberofcontainers": "1",
  1006  #       "status": "Running"
  1007  #     }
  1008  #   ]
  1009  # }
  1010  # ~~~
  1011  method ListPods() -> (pods: []ListPodData)
  1012  
  1013  # GetPod takes a name or ID of a pod and returns single [ListPodData](#ListPodData)
  1014  # structure.  A [PodNotFound](#PodNotFound) error will be returned if the pod cannot be found.
  1015  # See also [ListPods](ListPods).
  1016  # #### Example
  1017  # ~~~
  1018  # $ varlink call -m unix:/run/podman/io.podman/io.podman.GetPod '{"name": "foobar"}'
  1019  # {
  1020  #   "pod": {
  1021  #     "cgroup": "machine.slice",
  1022  #     "containersinfo": [
  1023  #       {
  1024  #         "id": "00c130a45de0411f109f1a0cfea2e298df71db20fa939de5cab8b2160a36be45",
  1025  #         "name": "1840835294cf-infra",
  1026  #         "status": "running"
  1027  #       },
  1028  #       {
  1029  #         "id": "49a5cce72093a5ca47c6de86f10ad7bb36391e2d89cef765f807e460865a0ec6",
  1030  #         "name": "upbeat_murdock",
  1031  #         "status": "running"
  1032  #       }
  1033  #     ],
  1034  #     "createdat": "2018-12-07 13:10:15.014139258 -0600 CST",
  1035  #     "id": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f",
  1036  #     "name": "foobar",
  1037  #     "numberofcontainers": "2",
  1038  #     "status": "Running"
  1039  #   }
  1040  # }
  1041  # ~~~
  1042  method GetPod(name: string) -> (pod: ListPodData)
  1043  
  1044  # InspectPod takes the name or ID of an image and returns a string representation of data associated with the
  1045  # pod.  You must serialize the string into JSON to use it further.  A [PodNotFound](#PodNotFound) error will
  1046  # be returned if the pod cannot be found.
  1047  method InspectPod(name: string) -> (pod: string)
  1048  
  1049  # StartPod starts containers in a pod.  It takes the name or ID of pod.  If the pod cannot be found, a [PodNotFound](#PodNotFound)
  1050  # error will be returned.  Containers in a pod are started independently. If there is an error starting one container, the ID of those containers
  1051  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1052  # If the pod was started with no errors, the pod ID is returned.
  1053  # See also [CreatePod](#CreatePod).
  1054  # #### Example
  1055  # ~~~
  1056  # $ varlink call -m unix:/run/podman/io.podman/io.podman.StartPod '{"name": "135d71b9495f"}'
  1057  # {
  1058  #   "pod": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6",
  1059  # }
  1060  # ~~~
  1061  method StartPod(name: string) -> (pod: string)
  1062  
  1063  # StopPod stops containers in a pod.  It takes the name or ID of a pod and a timeout.
  1064  # If the pod cannot be found, a [PodNotFound](#PodNotFound) error will be returned instead.
  1065  # Containers in a pod are stopped independently. If there is an error stopping one container, the ID of those containers
  1066  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1067  # If the pod was stopped with no errors, the pod ID is returned.
  1068  # See also [KillPod](KillPod).
  1069  # #### Example
  1070  # ~~~
  1071  # $ varlink call -m unix:/run/podman/io.podman/io.podman.StopPod '{"name": "135d71b9495f"}'
  1072  # {
  1073  #   "pod": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6"
  1074  # }
  1075  # ~~~
  1076  method StopPod(name: string, timeout: int) -> (pod: string)
  1077  
  1078  # RestartPod will restart containers in a pod given a pod name or ID. Containers in
  1079  # the pod that are running will be stopped, then all stopped containers will be run.
  1080  # If the pod cannot be found by name or ID, a [PodNotFound](#PodNotFound) error will be returned.
  1081  # Containers in a pod are restarted independently. If there is an error restarting one container, the ID of those containers
  1082  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1083  # If the pod was restarted with no errors, the pod ID is returned.
  1084  # #### Example
  1085  # ~~~
  1086  # $ varlink call -m unix:/run/podman/io.podman/io.podman.RestartPod '{"name": "135d71b9495f"}'
  1087  # {
  1088  #   "pod": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6"
  1089  # }
  1090  # ~~~
  1091  method RestartPod(name: string) -> (pod: string)
  1092  
  1093  # KillPod takes the name or ID of a pod as well as a signal to be applied to the pod.  If the pod cannot be found, a
  1094  # [PodNotFound](#PodNotFound) error is returned.
  1095  # Containers in a pod are killed independently. If there is an error killing one container, the ID of those containers
  1096  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1097  # If the pod was killed with no errors, the pod ID is returned.
  1098  # See also [StopPod](StopPod).
  1099  # #### Example
  1100  # ~~~
  1101  # $ varlink call -m unix:/run/podman/io.podman/io.podman.KillPod '{"name": "foobar", "signal": 15}'
  1102  # {
  1103  #   "pod": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f"
  1104  # }
  1105  # ~~~
  1106  method KillPod(name: string, signal: int) -> (pod: string)
  1107  
  1108  # PausePod takes the name or ID of a pod and pauses the running containers associated with it.  If the pod cannot be found,
  1109  # a [PodNotFound](#PodNotFound) error will be returned.
  1110  # Containers in a pod are paused independently. If there is an error pausing one container, the ID of those containers
  1111  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1112  # If the pod was paused with no errors, the pod ID is returned.
  1113  # See also [UnpausePod](#UnpausePod).
  1114  # #### Example
  1115  # ~~~
  1116  # $ varlink call -m unix:/run/podman/io.podman/io.podman.PausePod '{"name": "foobar"}'
  1117  # {
  1118  #   "pod": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f"
  1119  # }
  1120  # ~~~
  1121  method PausePod(name: string) -> (pod: string)
  1122  
  1123  # UnpausePod takes the name or ID of a pod and unpauses the paused containers associated with it.  If the pod cannot be
  1124  # found, a [PodNotFound](#PodNotFound) error will be returned.
  1125  # Containers in a pod are unpaused independently. If there is an error unpausing one container, the ID of those containers
  1126  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1127  # If the pod was unpaused with no errors, the pod ID is returned.
  1128  # See also [PausePod](#PausePod).
  1129  # #### Example
  1130  # ~~~
  1131  # $ varlink call -m unix:/run/podman/io.podman/io.podman.UnpausePod '{"name": "foobar"}'
  1132  # {
  1133  #   "pod": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f"
  1134  # }
  1135  # ~~~
  1136  method UnpausePod(name: string) -> (pod: string)
  1137  
  1138  # RemovePod takes the name or ID of a pod as well a boolean representing whether a running
  1139  # container in the pod can be stopped and removed.  If a pod has containers associated with it, and force is not true,
  1140  # an error will occur.
  1141  # If the pod cannot be found by name or ID, a [PodNotFound](#PodNotFound) error will be returned.
  1142  # Containers in a pod are removed independently. If there is an error removing any container, the ID of those containers
  1143  # will be returned in a list, along with the ID of the pod in a [PodContainerError](#PodContainerError).
  1144  # If the pod was removed with no errors, the pod ID is returned.
  1145  # #### Example
  1146  # ~~~
  1147  # $ varlink call -m unix:/run/podman/io.podman/io.podman.RemovePod '{"name": "62f4fd98cb57", "force": "true"}'
  1148  # {
  1149  #   "pod": "62f4fd98cb57f529831e8f90610e54bba74bd6f02920ffb485e15376ed365c20"
  1150  # }
  1151  # ~~~
  1152  method RemovePod(name: string, force: bool) -> (pod: string)
  1153  
  1154  # This method has not be implemented yet.
  1155  # method WaitPod() -> (notimplemented: NotImplemented)
  1156  
  1157  method TopPod(pod: string, latest: bool, descriptors: []string) -> (stats: []string)
  1158  
  1159  # GetPodStats takes the name or ID of a pod and returns a pod name and slice of ContainerStats structure which
  1160  # contains attributes like memory and cpu usage.  If the pod cannot be found, a [PodNotFound](#PodNotFound)
  1161  # error will be returned.  If the pod has no running containers associated with it, a [NoContainerRunning](#NoContainerRunning)
  1162  # error will be returned.
  1163  # #### Example
  1164  # ~~~
  1165  # $ varlink call unix:/run/podman/io.podman/io.podman.GetPodStats '{"name": "7f62b508b6f12b11d8fe02e"}'
  1166  # {
  1167  #   "containers": [
  1168  #     {
  1169  #       "block_input": 0,
  1170  #       "block_output": 0,
  1171  #       "cpu": 2.833470544016107524276e-08,
  1172  #       "cpu_nano": 54363072,
  1173  #       "id": "a64b51f805121fe2c5a3dc5112eb61d6ed139e3d1c99110360d08b58d48e4a93",
  1174  #       "mem_limit": 12276146176,
  1175  #       "mem_perc": 7.974359265237864966003e-03,
  1176  #       "mem_usage": 978944,
  1177  #       "name": "quirky_heisenberg",
  1178  #       "net_input": 866,
  1179  #       "net_output": 7388,
  1180  #       "pids": 1,
  1181  #       "system_nano": 20000000
  1182  #     }
  1183  #   ],
  1184  #   "pod": "7f62b508b6f12b11d8fe02e0db4de6b9e43a7d7699b33a4fc0d574f6e82b4ebd"
  1185  # }
  1186  # ~~~
  1187  method GetPodStats(name: string) -> (pod: string, containers: []ContainerStats)
  1188  
  1189  # GetPodsByStatus searches for pods whose status is included in statuses
  1190  method GetPodsByStatus(statuses: []string) -> (pods: []string)
  1191  
  1192  # ImageExists talks a full or partial image ID or name and returns an int as to whether
  1193  # the image exists in local storage. An int result of 0 means the image does exist in
  1194  # local storage; whereas 1 indicates the image does not exists in local storage.
  1195  # #### Example
  1196  # ~~~
  1197  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ImageExists '{"name": "imageddoesntexist"}'
  1198  # {
  1199  #   "exists": 1
  1200  # }
  1201  # ~~~
  1202  method ImageExists(name: string) -> (exists: int)
  1203  
  1204  # ImageTree returns the image tree for the provided image name or ID
  1205  # #### Example
  1206  # ~~~
  1207  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ImageTree '{"name": "alpine"}'
  1208  # {
  1209  #   "tree":  "Image ID: e7d92cdc71fe\nTags:     [docker.io/library/alpine:latest]\nSize:     5.861MB\nImage Layers\n└──  ID: 5216338b40a7 Size: 5.857MB Top Layer of: [docker.io/library/alpine:latest]\n"
  1210  # }
  1211  # ~~~
  1212  method ImageTree(name: string, whatRequires: bool) -> (tree: string)
  1213  
  1214  # ContainerExists takes a full or partial container ID or name and returns an int as to
  1215  # whether the container exists in local storage.  A result of 0 means the container does
  1216  # exists; whereas a result of 1 means it could not be found.
  1217  # #### Example
  1218  # ~~~
  1219  # $ varlink call -m unix:/run/podman/io.podman/io.podman.ContainerExists '{"name": "flamboyant_payne"}'{
  1220  #   "exists": 0
  1221  # }
  1222  # ~~~
  1223  method ContainerExists(name: string) -> (exists: int)
  1224  
  1225  # ContainerCheckPoint performs a checkpopint on a container by its name or full/partial container
  1226  # ID.  On successful checkpoint, the id of the checkpointed container is returned.
  1227  method ContainerCheckpoint(name: string, keep: bool, leaveRunning: bool, tcpEstablished: bool) -> (id: string)
  1228  
  1229  # ContainerRestore restores a container that has been checkpointed.  The container to be restored can
  1230  # be identified by its name or full/partial container ID.  A successful restore will result in the return
  1231  # of the container's ID.
  1232  method ContainerRestore(name: string, keep: bool, tcpEstablished: bool) -> (id: string)
  1233  
  1234  # ContainerRunlabel runs executes a command as described by a given container image label.
  1235  method ContainerRunlabel(runlabel: Runlabel) -> ()
  1236  
  1237  # ExecContainer executes a command in the given container.
  1238  method ExecContainer(opts: ExecOpts) -> ()
  1239  
  1240  # ListContainerMounts gathers all the mounted container mount points and returns them as an array
  1241  # of strings
  1242  # #### Example
  1243  # ~~~
  1244  # $ varlink call unix:/run/podman/io.podman/io.podman.ListContainerMounts
  1245  # {
  1246  #   "mounts": {
  1247  #     "04e4c255269ed2545e7f8bd1395a75f7949c50c223415c00c1d54bfa20f3b3d9": "/var/lib/containers/storage/overlay/a078925828f57e20467ca31cfca8a849210d21ec7e5757332b72b6924f441c17/merged",
  1248  #     "1d58c319f9e881a644a5122ff84419dccf6d138f744469281446ab243ef38924": "/var/lib/containers/storage/overlay/948fcf93f8cb932f0f03fd52e3180a58627d547192ffe3b88e0013b98ddcd0d2/merged"
  1249  #   }
  1250  # }
  1251  # ~~~
  1252  method ListContainerMounts() -> (mounts: [string]string)
  1253  
  1254  # MountContainer mounts a container by name or full/partial ID.  Upon a successful mount, the destination
  1255  # mount is returned as a string.
  1256  # #### Example
  1257  # ~~~
  1258  # $ varlink call -m unix:/run/podman/io.podman/io.podman.MountContainer '{"name": "jolly_shannon"}'{
  1259  #   "path": "/var/lib/containers/storage/overlay/419eeb04e783ea159149ced67d9fcfc15211084d65e894792a96bedfae0470ca/merged"
  1260  # }
  1261  # ~~~
  1262  method MountContainer(name: string) -> (path: string)
  1263  
  1264  # UnmountContainer umounts a container by its name or full/partial container ID.
  1265  # #### Example
  1266  # ~~~
  1267  # $ varlink call -m unix:/run/podman/io.podman/io.podman.UnmountContainer '{"name": "jolly_shannon", "force": false}'
  1268  # {}
  1269  # ~~~
  1270  method  UnmountContainer(name: string, force: bool) -> ()
  1271  
  1272  # ImagesPrune removes all unused images from the local store.  Upon successful pruning,
  1273  # the IDs of the removed images are returned.
  1274  method ImagesPrune(all: bool, filter: []string) -> (pruned: []string)
  1275  
  1276  # This function is not implemented yet.
  1277  # method ListContainerPorts(name: string) -> (notimplemented: NotImplemented)
  1278  
  1279  # GenerateKube generates a Kubernetes v1 Pod description of a Podman container or pod
  1280  # and its containers. The description is in YAML.  See also [ReplayKube](ReplayKube).
  1281  method GenerateKube(name: string, service: bool) -> (pod: KubePodService)
  1282  
  1283  # ReplayKube recreates a pod and its containers based on a Kubernetes v1 Pod description (in YAML)
  1284  # like that created by GenerateKube. See also [GenerateKube](GenerateKube).
  1285  # method ReplayKube() -> (notimplemented: NotImplemented)
  1286  
  1287  # ContainerConfig returns a container's config in string form. This call is for
  1288  # development of Podman only and generally should not be used.
  1289  method ContainerConfig(name: string) -> (config: string)
  1290  
  1291  # ContainerArtifacts returns a container's artifacts in string form.  This call is for
  1292  # development of Podman only and generally should not be used.
  1293  method ContainerArtifacts(name: string, artifactName: string) -> (config: string)
  1294  
  1295  # ContainerInspectData returns a container's inspect data in string form.  This call is for
  1296  # development of Podman only and generally should not be used.
  1297  method ContainerInspectData(name: string, size: bool) -> (config: string)
  1298  
  1299  # ContainerStateData returns a container's state config in string form.  This call is for
  1300  # development of Podman only and generally should not be used.
  1301  method ContainerStateData(name: string) -> (config: string)
  1302  
  1303  # PodStateData returns inspectr level information of a given pod in string form.  This call is for
  1304  # development of Podman only and generally should not be used.
  1305  method PodStateData(name: string) -> (config: string)
  1306  
  1307  # This call is for the development of Podman only and should not be used.
  1308  method CreateFromCC(in: []string) -> (id: string)
  1309  
  1310  # Spec returns the oci spec for a container.  This call is for development of Podman only and generally should not be used.
  1311  method Spec(name: string) -> (config: string)
  1312  
  1313  # Sendfile allows a remote client to send a file to the host
  1314  method SendFile(type: string, length: int) -> (file_handle: string)
  1315  
  1316  # ReceiveFile allows the host to send a remote client a file
  1317  method ReceiveFile(path: string, delete: bool) -> (len: int)
  1318  
  1319  # VolumeCreate creates a volume on a remote host
  1320  method VolumeCreate(options: VolumeCreateOpts) -> (volumeName: string)
  1321  
  1322  # VolumeRemove removes a volume on a remote host
  1323  method VolumeRemove(options: VolumeRemoveOpts) -> (successes: []string, failures: [string]string)
  1324  
  1325  # GetVolumes gets slice of the volumes on a remote host
  1326  method GetVolumes(args: []string, all: bool) -> (volumes: []Volume)
  1327  
  1328  # InspectVolume inspects a single volume. Returns inspect JSON in the form of a
  1329  # string.
  1330  method InspectVolume(name: string) -> (volume: string)
  1331  
  1332  # VolumesPrune removes unused volumes on the host
  1333  method VolumesPrune() -> (prunedNames: []string, prunedErrors: []string)
  1334  
  1335  # ImageSave allows you to save an image from the local image storage to a tarball
  1336  method ImageSave(options: ImageSaveOptions) -> (reply: MoreResponse)
  1337  
  1338  # GetPodsByContext allows you to get a list pod ids depending on all, latest, or a list of
  1339  # pod names.  The definition of latest pod means the latest by creation date.  In a multi-
  1340  # user environment, results might differ from what you expect.
  1341  method GetPodsByContext(all: bool, latest: bool, args: []string) -> (pods: []string)
  1342  
  1343  # LoadImage allows you to load an image into local storage from a tarball.
  1344  method LoadImage(name: string, inputFile: string, quiet: bool, deleteFile: bool) -> (reply: MoreResponse)
  1345  
  1346  # GetEvents returns known libpod events filtered by the options provided.
  1347  method GetEvents(filter: []string, since: string, until: string) -> (events: Event)
  1348  
  1349  # Diff returns a diff between libpod objects
  1350  method Diff(name: string) -> (diffs: []DiffInfo)
  1351  
  1352  # GetLayersMapWithImageInfo is for the development of Podman and should not be used.
  1353  method GetLayersMapWithImageInfo() -> (layerMap: string)
  1354  
  1355  # BuildImageHierarchyMap is for the development of Podman and should not be used.
  1356  method BuildImageHierarchyMap(name: string) -> (imageInfo: string)
  1357  
  1358  # ImageNotFound means the image could not be found by the provided name or ID in local storage.
  1359  error ImageNotFound (id: string, reason: string)
  1360  
  1361  # ContainerNotFound means the container could not be found by the provided name or ID in local storage.
  1362  error ContainerNotFound (id: string, reason: string)
  1363  
  1364  # NoContainerRunning means none of the containers requested are running in a command that requires a running container.
  1365  error NoContainerRunning ()
  1366  
  1367  # PodNotFound means the pod could not be found by the provided name or ID in local storage.
  1368  error PodNotFound (name: string, reason: string)
  1369  
  1370  # VolumeNotFound means the volume could not be found by the name or ID in local storage.
  1371  error VolumeNotFound (id: string, reason: string)
  1372  
  1373  # PodContainerError means a container associated with a pod failed to perform an operation. It contains
  1374  # a container ID of the container that failed.
  1375  error PodContainerError (podname: string, errors: []PodContainerErrorData)
  1376  
  1377  # NoContainersInPod means a pod has no containers on which to perform the operation. It contains
  1378  # the pod ID.
  1379  error NoContainersInPod (name: string)
  1380  
  1381  # InvalidState indicates that a container or pod was in an improper state for the requested operation
  1382  error InvalidState (id: string, reason: string)
  1383  
  1384  # ErrorOccurred is a generic error for an error that occurs during the execution.  The actual error message
  1385  # is includes as part of the error's text.
  1386  error ErrorOccurred (reason: string)
  1387  
  1388  # RuntimeErrors generally means a runtime could not be found or gotten.
  1389  error RuntimeError (reason: string)
  1390  
  1391  # The Podman endpoint requires that you use a streaming connection.
  1392  error WantsMoreRequired (reason: string)
  1393  
  1394  # Container is already stopped
  1395  error ErrCtrStopped (id: string)
  1396  
  1397  # This function requires CGroupsV2 to run in rootless mode.
  1398  error ErrRequiresCgroupsV2ForRootless(reason: string)