render_cdk 0.0.2

This crate provides a streamlined interface for interacting with Render, a platform that allows you to build, deploy, and scale your apps with ease.
Documentation
# Render CDK Documentation

## Overview

`render_cdk` provides a streamlined interface for interacting with Render, a platform that allows you to build, deploy, and scale your apps with ease. This crate _abstracts_ Render's API, making it easier to work with Render cloud _**programmatically**_.

### Crate Information

-   **Name:** render_cdk
-   **Version:** 0.0.1
-   **Authors:** Irfan Ghat
-   **Description:** This crate provides a streamlined interface for interacting with Render, a platform that allows you to build, deploy, and scale your apps with ease.
-   **Homepage:** [Cloud Application Hosting for Developers | Render]https://render.com/
-   **Repository:** [Render (github.com)]https://github.com/renderinc
-   **License:** MIT

### Current Features

Work on the resource management module is currently under way. The API supports many of the same actions available from the Render Dashboard. It currently provides endpoints for managing:

-   Services
-   Deploys
-   Custom domains
-   Jobs

The CDK will provide an abstraction that will make it easier to work with the Render cloud programmatically.

## Environment Manager

### Code Sample

Here is an example of how to use the `EnvironmentManager` to retrieve your API key from environment variables:

```rust
#![allow(unused)]

use dotenv::dotenv;

#[derive(Debug)]
#[allow(non_snake_case)]
pub struct EnvironmentManager {
    pub API_KEY: String,
}

impl EnvironmentManager {
    pub fn retrieve_api_key() -> Self {
        dotenv().ok();

        let api_key = std::env::var_os("API_KEY").expect("[API_KEY] must be set.");

        Self {
            API_KEY: api_key.into_string().unwrap(),
        }
    }
}
``` 

### Configuration

To configure the environment variables for use with the `render_cdk`, you need to set the `API_KEY` environment variable. You can do this by creating a `.env` file in the root of your project with the following content:

```.env
API_KEY=rnd_xxxxXXXXxxxxXXXXxxxXX
``` 

Make sure to replace `rnd_xxxxXXXXxxxxXXXXxxxXX` with your actual Render API key.

## Getting Started

### Prerequisites

Before using `render_cdk`, ensure you have the following installed:

-   Rust (latest stable version recommended)
-   Cargo (comes with Rust)

### Installation

Add `render_cdk` to your `Cargo.toml`:

```toml
[dependencies]
render_cdk = "0.0.1"
``` 

### Usage

Here is a basic example of how to use the `render_cdk` crate to interact with Render's API:

```rust
use render_cdk::EnvironmentManager;

fn main() {
    let env_manager = EnvironmentManager::retrieve_api_key();
    println!("API Key: {}", env_manager.API_KEY);

    // Your code to interact with Render's API
}
``` 

## Service Manager

### Code Sample

Here's a sample using the `list_all_services` method from the `ServiceManager`:

```rust
#![allow(unused)]

use render_cdk::environment_management::prelude::*;
use render_cdk::resource_management::prelude::*;
use tokio::main;

#[main]
async fn main() {
    let services = ServiceManager::list_all_services("20").await;
    // Process the services as needed
}
``` 

## Contributing

Contributions are welcome! Please see the [repository](https://github.com/lexara-prime-ai/RENDER_CDK) for more information on how to contribute.

## License

This project is licensed under the MIT License. See the [LICENSE](https://github.com/lexara-prime-ai/MPESA_SDK/blob/master/LICENSE) file for details.

## Contact

For questions, issues, or suggestions, please open an issue on the [repository](https://github.com/lexara-prime-ai/RENDER_CDK).


* Thank you for using `render_cdk`! We hope this documentation helps you get started quickly.