Client Bindings
===============
Python Client
-------------
The `pulp-ansible-client package `_ on PyPI provides
bindings for all API calls in the `pulp_ansible API documentation <../restapi.html>`_. 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_ansible_client Ruby Gem `_ on rubygems.org
provides bindings for all API calls in the `pulp_ansible API documentation <../restapi.html>`_. 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:**
.. code-block:: bash
curl -o api.json http://: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_ansible`` only endpoints use a query like this:
.. code-block:: bash
curl -o api.json http://:24817/pulp/api/v3/docs/api.json?plugin=pulp_ansible
**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 on dev environment
--------------------------------------
Pulp dev environment provided by `pulp_installer `_
introduces a set of useful
`aliases `_,
like `pbindings`.
Examples:
- generating python bindings for pulp_ansible:
.. code-block:: bash
pbindings pulp_ansible python
- generating ruby bindings for pulp_ansible with '3.0.0rc1.dev.10' version
.. code-block:: bash
pbindings pulp_ansible ruby 3.0.0rc1.dev.10