Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/podman-pods-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
contact:
email: podman@lists.podman.io
name: Podman
url: https://podman.io/community/
description: 'This documentation describes the Podman v2.x+ RESTful API. It consists of a Docker-compatible
API and a Libpod API providing support for Podman’s unique features such as pods.
To start the service and keep it running for 5,000 seconds (-t 0 runs forever):
podman system service -t 5000 &
You can then use cURL on the socket using requests documented below.
NOTE: if you install the package podman-docker, it will create a symbolic
link for /run/docker.sock to /run/podman/podman.sock
NOTE: Some fields in the API response JSON are encoded as omitempty, which means that
if said field has a zero value, they will not be encoded in the API response. This
is a feature to help reduce the size of the JSON responses returned via the API.
NOTE: Due to the limitations of [go-swagger](https://github.com/go-swagger/go-swagger),
some field values that have a complex type show up as null in the docs as well as in the
API responses. This is because the zero value for the field type is null. The field
description in the docs will state what type the field is expected to be for such cases.
See podman-system-service(1) for more information.
Quick Examples:
''podman info''
curl --unix-socket /run/podman/podman.sock http://d/v6.0.0/libpod/info
''podman pull quay.io/containers/podman''
curl -XPOST --unix-socket /run/podman/podman.sock -v ''http://d/v6.0.0/images/create?fromImage=quay.io%2Fcontainers%2Fpodman''
''podman list images''
curl --unix-socket /run/podman/podman.sock -v ''http://d/v6.0.0/libpod/images/json'' | jq'
license:
name: Apache-2.0
url: https://opensource.org/licenses/Apache-2.0
termsOfService: https://github.com/containers/podman/blob/913caaa9b1de2b63692c9bae15120208194c9eb3/LICENSE
title: supports a RESTful API for the Libpod library artifacts Pods API
version: 5.0.0
x-logo:
- url: https://raw.githubusercontent.com/containers/libpod/main/logo/podman-logo.png
- altText: Podman logo
servers:
- url: http://podman.io/
- url: https://podman.io/
tags:
- description: Actions related to pods
name: pods
paths:
/libpod/generate/{name}/systemd:
get:
description: Generate Systemd Units based on a pod or container.
operationId: GenerateSystemdLibpod
parameters:
- description: Name or ID of the container or pod.
in: path
name: name
required: true
schema:
type: string
- description: Use container/pod names instead of IDs.
in: query
name: useName
schema:
type: boolean
default: false
- description: Create a new container instead of starting an existing one.
in: query
name: new
schema:
type: boolean
default: false
- description: Do not generate the header including the Podman version and the timestamp.
in: query
name: noHeader
schema:
type: boolean
default: false
- description: Start timeout in seconds.
in: query
name: startTimeout
schema:
type: integer
default: 0
- description: Stop timeout in seconds.
in: query
name: stopTimeout
schema:
type: integer
default: 10
- description: Systemd restart-policy.
in: query
name: restartPolicy
schema:
type: string
enum:
- 'no'
- on-success
- on-failure
- on-abnormal
- on-watchdog
- on-abort
- always
default: on-failure
- description: Systemd unit name prefix for containers.
in: query
name: containerPrefix
schema:
type: string
default: container
- description: Systemd unit name prefix for pods.
in: query
name: podPrefix
schema:
type: string
default: pod
- description: Systemd unit name separator between name/id and prefix.
in: query
name: separator
schema:
type: string
default: '-'
- description: Configures the time to sleep before restarting a service.
in: query
name: restartSec
schema:
type: integer
default: 0
- description: Systemd Wants list for the container or pods.
in: query
name: wants
schema:
type: array
items:
type: string
default: []
- description: Systemd After list for the container or pods.
in: query
name: after
schema:
type: array
items:
type: string
default: []
- description: Systemd Requires list for the container or pods.
in: query
name: requires
schema:
type: array
items:
type: string
default: []
- description: Set environment variables to the systemd unit files.
in: query
name: additionalEnvVariables
schema:
type: array
items:
type: string
default: []
- description: Add template specifier for the systemd unit file names.
in: query
name: templateUnitFile
schema:
type: boolean
default: false
responses:
'200':
description: no error
content:
application/json:
schema:
additionalProperties:
type: string
type: object
'500':
$ref: '#/components/responses/internalError'
summary: Generate Systemd Units
tags:
- pods
/libpod/generate/kube:
get:
description: Generate Kubernetes YAML based on a pod or container.
operationId: GenerateKubeLibpod
parameters:
- description: Name or ID of the container or pod.
in: query
name: names
required: true
schema:
type: array
items:
type: string
- description: Generate YAML for a Kubernetes service object.
in: query
name: service
schema:
type: boolean
default: false
- description: Generate YAML for the given Kubernetes kind.
in: query
name: type
schema:
type: string
default: pod
- description: Set the replica number for Deployment kind.
in: query
name: replicas
schema:
type: integer
format: int32
default: 0
- description: don't truncate annotations to the Kubernetes maximum length of 63 characters
in: query
name: noTrunc
schema:
type: boolean
default: false
- description: add podman-only reserved annotations in generated YAML file (cannot be used by Kubernetes)
in: query
name: podmanOnly
schema:
type: boolean
default: false
responses:
'200':
description: Kubernetes YAML file describing pod
content:
text/vnd.yaml:
schema:
format: binary
type: string
application/json:
schema:
format: binary
type: string
'500':
$ref: '#/components/responses/internalError'
summary: Generate a Kubernetes YAML file.
tags:
- pods
/libpod/kube/apply:
post:
description: Deploy a podman container, pod, volume, or Kubernetes yaml to a Kubernetes cluster.
operationId: KubeApplyLibpod
parameters:
- description: Path to the CA cert file for the Kubernetes cluster.
in: query
name: caCertFile
schema:
type: string
- description: Path to the kubeconfig file for the Kubernetes cluster.
in: query
name: kubeConfig
schema:
type: string
- description: The namespace to deploy the workload to on the Kubernetes cluster.
in: query
name: namespace
schema:
type: string
- description: Create a service object for the container being deployed.
in: query
name: service
schema:
type: boolean
- description: Path to the Kubernetes yaml file to deploy.
in: query
name: file
schema:
type: string
responses:
'200':
description: Kubernetes YAML file successfully deployed to cluster
content:
application/json:
schema:
format: binary
type: string
'500':
$ref: '#/components/responses/internalError'
summary: Apply a podman workload or Kubernetes YAML file.
tags:
- pods
requestBody:
content:
application/json:
schema:
type: string
application/x-tar:
schema:
type: string
description: Kubernetes YAML file.
/libpod/play/kube:
delete:
description: Tears down pods, secrets, and volumes defined in a YAML file
operationId: PlayKubeDownLibpod
parameters:
- description: Remove volumes.
in: query
name: force
schema:
type: boolean
default: false
responses:
'200':
$ref: '#/components/responses/playKubeResponseLibpod'
'500':
$ref: '#/components/responses/internalError'
summary: Remove resources created from kube play
tags:
- pods
post:
description: "Create and run pods based on a Kubernetes YAML file.\n\n### Content-Type\n\nThen endpoint support two Content-Type\n - `plain/text` for yaml format\n - `application/x-tar` for sending context(s) required for building images\n\n#### Tar format\n\nThe tar format must contain a `play.yaml` file at the root that will be used.\nIf the file format requires context to build an image, it uses the image name and\ncheck for corresponding folder.\n\nFor example, the client sends a tar file with the following structure:\n\n```\n└── content.tar\n ├── play.yaml\n └── foobar/\n └── Containerfile\n```\n\nThe `play.yaml` is the following, the `foobar` image means we are looking for a context with this name.\n```\napiVersion: v1\nkind: Pod\nmetadata:\nname: demo-build-remote\nspec:\ncontainers:\n - name: container\n image: foobar\n```\n"
operationId: PlayKubeLibpod
parameters:
- in: header
name: Content-Type
schema:
type: string
enum:
- plain/text
- application/x-tar
default: plain/text
- description: JSON encoded value of annotations (a map[string]string).
in: query
name: annotations
schema:
type: string
- description: Logging driver for the containers in the pod.
in: query
name: logDriver
schema:
type: string
- description: logging driver options
in: query
name: logOptions
schema:
type: array
items:
type: string
- description: USe the network mode or specify an array of networks.
in: query
name: network
schema:
type: array
items:
type: string
- description: do not setup /etc/hosts file in container
in: query
name: noHosts
schema:
type: boolean
default: false
- description: use annotations that are not truncated to the Kubernetes maximum length of 63 characters
in: query
name: noTrunc
schema:
type: boolean
default: false
- description: publish a container's port, or a range of ports, to the host
in: query
name: publishPorts
schema:
type: array
items:
type: string
- description: Whether to publish all ports defined in the K8S YAML file (containerPort, hostPort), if false only hostPort will be published
in: query
name: publishAllPorts
schema:
type: boolean
- description: replace existing pods and containers
in: query
name: replace
schema:
type: boolean
default: false
- description: Starts a service container before all pods.
in: query
name: serviceContainer
schema:
type: boolean
default: false
- description: Start the pod after creating it.
in: query
name: start
schema:
type: boolean
default: true
- description: Static IPs used for the pods.
in: query
name: staticIPs
schema:
type: array
items:
type: string
- description: Static MACs used for the pods.
in: query
name: staticMACs
schema:
type: array
items:
type: string
- description: Require HTTPS and verify signatures when contacting registries.
in: query
name: tlsVerify
schema:
type: boolean
default: true
- description: Set the user namespace mode for the pods.
in: query
name: userns
schema:
type: string
- description: Clean up all objects created when a SIGTERM is received or pods exit.
in: query
name: wait
schema:
type: boolean
default: false
- description: Build the images with corresponding context.
in: query
name: build
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/playKubeResponseLibpod'
'500':
$ref: '#/components/responses/internalError'
summary: Play a Kubernetes YAML file.
tags:
- pods
requestBody:
content:
application/json:
schema:
type: string
application/x-tar:
schema:
type: string
description: Kubernetes YAML file.
/libpod/pods/{name}:
delete:
operationId: PodDeleteLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
- description: force removal of a running pod by first stopping all containers, then removing all containers in the pod
in: query
name: force
schema:
type: boolean
- description: number of seconds to wait before killing containers in pod
in: query
name: timeout
schema:
type: integer
responses:
'200':
$ref: '#/components/responses/podRmResponse'
'400':
$ref: '#/components/responses/badParamError'
'404':
$ref: '#/components/responses/podNotFound'
'500':
$ref: '#/components/responses/internalError'
summary: Remove pod
tags:
- pods
/libpod/pods/{name}/exists:
get:
description: Check if a pod exists by name or ID
operationId: PodExistsLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: pod exists
'404':
$ref: '#/components/responses/podNotFound'
'500':
$ref: '#/components/responses/internalError'
summary: Pod exists
tags:
- pods
/libpod/pods/{name}/json:
get:
operationId: PodInspectLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podInspectResponse'
'404':
$ref: '#/components/responses/podNotFound'
'500':
$ref: '#/components/responses/internalError'
summary: Inspect pod
tags:
- pods
/libpod/pods/{name}/kill:
post:
operationId: PodKillLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
- description: signal to be sent to pod
in: query
name: signal
schema:
type: string
default: SIGKILL
responses:
'200':
$ref: '#/components/responses/podKillResponse'
'400':
$ref: '#/components/responses/badParamError'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podKillResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Kill a pod
tags:
- pods
/libpod/pods/{name}/pause:
post:
description: Pause a pod
operationId: PodPauseLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podPauseResponse'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podPauseResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Pause a pod
tags:
- pods
/libpod/pods/{name}/restart:
post:
operationId: PodRestartLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podRestartResponse'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podRestartResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Restart a pod
tags:
- pods
/libpod/pods/{name}/start:
post:
operationId: PodStartLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podStartResponse'
'304':
$ref: '#/components/responses/podAlreadyStartedError'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podStartResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Start a pod
tags:
- pods
/libpod/pods/{name}/stop:
post:
operationId: PodStopLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
- description: timeout
in: query
name: t
schema:
type: integer
responses:
'200':
$ref: '#/components/responses/podStopResponse'
'304':
$ref: '#/components/responses/podAlreadyStoppedError'
'400':
$ref: '#/components/responses/badParamError'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podStopResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Stop a pod
tags:
- pods
/libpod/pods/{name}/top:
get:
description: List processes running inside a pod
operationId: PodTopLibpod
parameters:
- description: Name of pod to query for processes
in: path
name: name
required: true
schema:
type: string
- description: when true, repeatedly stream the latest output (As of version 4.0)
in: query
name: stream
schema:
type: boolean
- description: if streaming, delay in seconds between updates. Must be >1. (As of version 4.0)
in: query
name: delay
schema:
type: integer
default: 5
- description: 'arguments to pass to ps such as aux.
'
in: query
name: ps_args
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podTopResponse'
'404':
$ref: '#/components/responses/podNotFound'
'500':
$ref: '#/components/responses/internalError'
summary: List processes
tags:
- pods
/libpod/pods/{name}/unpause:
post:
operationId: PodUnpauseLibpod
parameters:
- description: the name or ID of the pod
in: path
name: name
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podUnpauseResponse'
'404':
$ref: '#/components/responses/podNotFound'
'409':
$ref: '#/components/responses/podUnpauseResponse'
'500':
$ref: '#/components/responses/internalError'
summary: Unpause a pod
tags:
- pods
/libpod/pods/create:
post:
operationId: PodCreateLibpod
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/IDResponse'
'400':
$ref: '#/components/responses/badParamError'
'409':
description: status conflict
content:
application/json:
schema:
description: message describing error
type: string
'500':
$ref: '#/components/responses/internalError'
summary: Create a pod
tags:
- pods
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PodSpecGenerator'
application/x-tar:
schema:
$ref: '#/components/schemas/PodSpecGenerator'
description: attributes for creating a pod
/libpod/pods/json:
get:
operationId: PodListLibpod
parameters:
- description: "JSON encoded value of the filters (a map[string][]string) to process on the pods list. Available filters:\n - `id=<pod-id>` Matches all of pod id.\n - `label=<key>` or `label=<key>:<value>` Matches pods based on the presence of a label alone or a label and a value.\n - `name=<pod-name>` Matches all of pod name.\n - `until=<timestamp>` List pods 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.\n - `status=<pod-status>` Pod's status: `stopped`, `running`, `paused`, `exited`, `dead`, `created`, `degraded`.\n - `network=<pod-network>` Name or full ID of network.\n - `ctr-names=<pod-ctr-names>` Container name within the pod.\n - `ctr-ids=<pod-ctr-ids>` Container ID within the pod.\n - `ctr-status=<pod-ctr-status>` Container status within the pod.\n - `ctr-number=<pod-ctr-number>` Number of containers in the pod.\n"
in: query
name: filters
schema:
type: string
responses:
'200':
$ref: '#/components/responses/podsListResponse'
'400':
$ref: '#/components/responses/badParamError'
'500':
$ref: '#/components/responses/internalError'
summary: List pods
tags:
- pods
/libpod/pods/prune:
post:
operationId: PodPruneLibpod
responses:
'200':
$ref: '#/components/responses/podPruneResponse'
'400':
$ref: '#/components/responses/badParamError'
'409':
description: pod already exists
'500':
$ref: '#/components/responses/internalError'
summary: Prune unused pods
tags:
- pods
/libpod/pods/stats:
get:
description: Display a live stream of resource usage statistics for the containers in one or more pods
operationId: PodStatsAllLibpod
parameters:
- description: Provide statistics for all running pods.
in: query
name: all
schema:
type: boolean
- description: Names or IDs of pods.
in: query
name: namesOrIDs
schema:
type: array
items:
type: string
- description: Stream the output
in: query
name: stream
schema:
type: boolean
default: false
- description: Time in seconds between stats reports
in: query
name: delay
schema:
type: integer
default: 5
responses:
'200':
$ref: '#/components/responses/podStatsResponse'
'404':
$ref: '#/components/responses/podNotFound'
'500':
$ref: '#/components/responses/internalError'
summary: Statistics for one or more pods
tags:
- pods
components:
schemas:
NamedVolume:
description: 'NamedVolume holds information about a named volume that will be mounted into
the container.'
properties:
Dest:
description: 'Destination to mount the named volume within the container. Must be
an absolute path. Path will be created if it does not exist.'
type: string
IsAnonymous:
description: 'IsAnonymous sets the named volume as anonymous even if it has a name
This is used for emptyDir volumes from a kube yaml'
type: boolean
Name:
description: 'Name is the name of the named volume to be mounted. May be empty.
If empty, a new named volume with a pseudorandomly generated name
will be mounted at the given destination.'
type: string
Options:
description: Options are options that the named volume will be mounted with.
items:
type: string
type: array
SubPath:
description: SubPath stores the sub directory of the named volume to be mounted in the container
type: string
type: object
x-go-package: go.podman.io/podman/v6/pkg/specgen
LinuxMemory:
description: LinuxMemory for Linux cgroup 'memory' resource management
properties:
checkBeforeUpdate:
description: 'CheckBeforeUpdate enables checking if a new memory limit is lower
than the current usage during update, and if so, rejecting the new
limit.'
type: boolean
x-go-name: CheckBeforeUpdate
disableOOMKiller:
description: DisableOOMKiller disables the OOM killer for out of memory conditions
type: boolean
x-go-name: DisableOOMKiller
kernel:
description: 'Kernel memory limit (in bytes).
Deprecated: kernel-memory limits are not supported in cgroups v2, and
were obsoleted in [kernel v5.4]. This field should no longer be used,
as it may be ignored by runtimes.
[kernel v5.4]: https://github.com/torvalds/linux/commit/0158115f702b0ba208ab0'
format: int64
type: integer
x-go-name: Kernel
kernelTCP:
description: Kernel memory limit for tcp (in bytes)
format: int64
type: integer
x-go-name: KernelTCP
limit:
description: Memory limit (in bytes).
format: int64
type: integer
x-go-name: Limit
reservation:
description: Memory reservation or soft_limit (in bytes).
format: int64
type: integer
x-go-name: Reservation
swap:
description: Total memory limit (memory + swap).
format: int64
type: integer
x-go-name: Swap
swappiness:
description: How aggressive the kernel will swap memory pages.
format: uint64
type: integer
x-go-name: Swappiness
useHierarchy:
description: Enables hierarchical memory accounting
type: boolean
x-go-name: UseHierarchy
type: object
x-go-package: github.com/opencontainers/runtime-spec/specs-go
LinuxBlockIO:
description: LinuxBlockIO for Linux cgroup 'blkio' resource management
properties:
leafWeight:
description: Specifies tasks' weight in the given cgroup while competing with the cgroup's child cgroups, CFQ scheduler only
format: uint16
type: integer
x-go-name: LeafWeight
throttleReadBpsDevice:
description: IO read rate limit per cgroup per device, bytes per second
items:
$ref: '#/components/schemas/LinuxThrottleDevice'
type: array
x-go-name: ThrottleReadBpsDevice
throttleReadIOPSDevice:
description: IO read rate limit per cgroup per device, IO per second
items:
$ref: '#/components/schemas/LinuxThrottleDevice'
type: array
x-go-name: ThrottleReadIOPSDevice
throttleWriteBpsDevice:
description: IO write rate limit per cgroup per device, bytes per second
items:
$ref: '#/components/schemas/LinuxThrottleDevice'
type: array
x-go-name: ThrottleWriteBpsDevice
throttleWriteIOPSDevice:
description: IO write rate limit per cgroup per device, IO per second
items:
$ref: '#/components/schemas/LinuxThrottleDevice'
type: array
x-go-name: ThrottleWriteIOPSDevice
weight:
description: Specifies per cgroup weight
format: uint16
type: integer
x-go-name: Weight
weightDevice:
description: Weight per cgroup per device, can override BlkioWeight
items:
$ref: '#/components/schemas/LinuxWeightDevice'
type: array
x-go-name: WeightDevice
type: object
x-go-package: github.com/opencontainers/runtime-spec/specs-go
LinuxThrottleDevice:
description: LinuxThrottleDevice struct holds a `major:minor rate_per_second` pair
properties:
major:
description: Major is the device's major number.
format: int64
type: integer
x-go-name: Major
minor:
description: Minor is the device's minor number.
format: int64
type: integer
x-go-name: Minor
rate:
description: Rate is the IO rate limit per cgroup per device
format: uint64
type: integer
x-go-name: Rate
type: object
x-go-package: github.com/opencontainers/runtime-spec/specs-go
ClusterOptions:
title: ClusterOptions specifies options for a Cluster volume.
type: object
x-go-package: github.com/moby/moby/api/types/mount
FileMode:
description: 'The bits have the same definition on all systems, so that
information about files can be moved from one system
to another portably. Not all bits apply to all systems.
The only required bit is [ModeDir] for directories.'
format: uint32
title: A FileMode represents a file's mode and permission bits.
type: integer
x-go-package: os
Namespace:
description: Namespace describes the namespace
properties:
nsmode:
$ref: '#/components/schemas/NamespaceMode'
value:
type: string
x-go-name: Value
type: object
x-go-package: go.podman.io/podman/v6/pkg/specgen
Propagation:
title: Propagation represents the propagation of a mount.
type: string
x-go-package: github.com/moby/moby/api/types/mount
Consistency:
title: Consistency represents the consistency requirements of a mount.
type: string
x-go-package: github.com/moby/moby/api/types/mount
InspectHostPort:
description: 'InspectHostPort provides information on a port on the host that a container''s
port is bound
# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/podman/refs/heads/main/openapi/podman-pods-api-openapi.yml