CDP API overview
CDP provides a REST API that enables you to access CDP functionality from a script, or to integrate CDP features with an application. In practice you can use the CDP API to script repetitive tasks, manage CDP resources, or even create custom applications.
The CDP API contains much of the functionality within the Management Console and Data Hub, as well as Cloudera Machine Learning, Data Warehouse, and Operational Database. For a complete CDP API reference, see the CDP Control Plane Public API Documentation.
Before you can use the CDP API, you must generate an API access key pair, which consists of an access key ID and a private key. You can generate the API access key through the Management Console.
There are multiple ways to access the API:
- CDP CLI client
- CDP SDK for Java
- Directly, through a tool such as
cdpcurl
Getting started with the CDP API
Getting started with the CDP API involves determining the best method for using the API, generating an API access key, and understanding permissions in the CDP API.
API access methods
CDP offers a CLI client, and all API commands have a CLI equivalent. See the CLI documentation for more details.
Java programmers might prefer to use the CDP SDK for Java. For more information, see the SDK documentation.
Alternatively, you can access API endpoints directly through your chosen HTTP client, such
as curl. Cloudera offers cdpcurl
, which is a Python command line tool that
you can use to directly make CDP API calls, or embed in an application.
cdpcurl
returns JSON output for ease of use. It is based on awscurl and installation and usage are similar. Like the CDP CLI
and SDK, cdpcurl
has built-in CDP request signing to construct the headers
required to make an API call. However, if you want to use a different HTTP client, such as
curl, you can use a script within cdpcurl
to generate the required
headers.
You can also use the CDP API service definition files to create your own client-side code. The service definitions are in OpenAPI / Swagger 2.0 format and can be accessed here.
Generating an API access key
A CDP user account must have API access credentials (an API access key and private key) to
access the CDP API through the CLI or other means. To use the CLI client, you configure the
CDP client with the API access key and private key. To make API calls with
cdpcurl
, you pass the API access key and private key to
cdpcurl
.
Permissions
You are restricted to making API calls that are permissible based upon your user roles and resource roles. For more information on user roles, see the topic Understanding Roles and Resource Roles in the Management Console documentation.
Request signing
cdpcurl
, the CDP SDK, and CDP CLI offer built-in request signing, but
if you use a different HTTP client to make an API call, you must generate the required
headers.
A CDP API call requires a request signature to be passed in the "x-altus-auth" header, along
with a corresponding timestamp in the "x-altus-date" header. cdpcurl
constructs the headers automatically. However, if you would rather use a different HTTP
client, such as ordinary curl
, you can use the cdpv1sign
script within cdpcurl
to generate these required headers.
You can then parse the header values from the script output and feed them to your preferred client. Note that CDP API services will reject calls with timestamps too far in the past, so generate new headers for each call.
For example:
$ cdpv1sign -X POST https://api.us-west-1.cdp.cloudera.com/api/v1/environments2/listEnvironments
Content-Type: application/json
x-altus-date: Fri, 28 Aug 2020 20:38:38 GMT
x-altus-auth: (long string value)
The request signing specification is available here.
CDP API reference
The CDP API reference documentation is available here. Use this documentation to find the desired API endpoint, request parameters, and responses.