[][src]Crate cp_api


The cp_api crate provides a simple way to use the Check Point Management API.

This handles the Web Services communcation by creating a Client to send a Request and then receive a Response.

Getting Started

// Build a Client.
let mut client = Client::new("", 443);

// Set a binary DER encoded certificate.

// Login to the API.
let login = client.login("user", "pass")?;
if login.is_not_success() {
    let msg = format!("Failed to login: {}", login.data["message"]);
    return Err(Error::Custom(msg));

// Perform an API call to add a new host object.
let payload = json!({
    "name": "host1",
    "ip-address": ""
let add_host = client.call("add-host", payload)?;
if add_host.is_not_success() {
    let msg = format!("Failed to add-host: {}", add_host.data["message"]);
    return Err(Error::Custom(msg));

// Show that added host.
let host1 = client.call("show-host", json!({"name": "host1"}))?;
if host1.is_not_success() {
    let msg = format!("Failed to show-host: {}", host1.data["message"]);
    return Err(Error::Custom(msg));
println!("{} - {}", host1.data["name"], host1.data["ipv4-address"]);

// Peform an API query to show all the host objects.
let all_hosts = client.query("show-hosts", "standard")?;
if all_hosts.is_not_success() {
    let msg = format!("Failed to show-hosts: {}", all_hosts.data["message"]);
    return Err(Error::Custom(msg));
for host in &all_hosts.objects {
    println!("{} - {}", host["name"], host["ipv4-address"]);

// Logout of the API.
let logout = client.logout()?;
if logout.is_not_success() {
    let msg = format!("Failed to logout: {}", logout.data["message"]);
    return Err(Error::Custom(msg));



A Client to communicate with the API.


A Response from the API.



The errors that can occur.

Type Definitions


A Result alias where the Err is cp_api::Error.