Client Bindings

Python Client

The pulp-rpm-client package on PyPI provides bindings for all API calls in the pulp_rpm API documentation. It is currently published daily and with every RC.

The pulpcore-client package on PyPI provides bindings for all API calls in the pulpcore API documentation. It is currently published daily and with every RC.

Ruby Client

The pulp_rpm_client Ruby Gem on rubygems.org provides bindings for all API calls in the pulp_rpm API documentation. It is currently published daily and with every RC.

The pulpcore_client Ruby Gem on rubygems.org provides bindings for all API calls in the pulpcore API documentation. It is currently published daily and with every RC.

Client in a language of your choice

A client can be generated using Pulp’s OpenAPI schema and any of the available generators.

Generating a client is a two step process:

1) Download the OpenAPI schema for pulpcore and all installed plugins:

curl -o api.json http://<pulp-hostname>:24817/pulp/api/v3/docs/api.json

The OpenAPI schema for a specific plugin can be downloaded by specifying the plugin’s module name as a GET parameter. For example for pulp_rpm only endpoints use a query like this:

curl -o api.json http://<pulp-hostname>:24817/pulp/api/v3/docs/api.json?plugin=pulp_rpm

2) Generate a client using openapi-generator.

The schema can then be used as input to the openapi-generator-cli. The documentation on getting started with openapi-generator-cli is available on openapi-generator.tech.

Generating a client for a dev environment

The pulp dev environment provided by pulp_installer introduces a set of useful aliases, such as pbindings.

Examples:

  • generating python bindings for pulp_rpm:

pbindings pulp_rpm python
  • generating ruby bindings for pulp_rpm with ‘3.0.0rc1.dev.10’ version

pbindings pulp_rpm ruby 3.0.0rc1.dev.10