Metadata-Version: 2.4
Name: exalsius_api_client
Version: 1.45.3
Summary: exalsius API
Home-page: 
Author: Contact our support
Author-email: Contact our support <support@exalsius.ai>
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
Keywords: OpenAPI,OpenAPI-Generator,exalsius API
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# exalsius-api-client
The exalsius REST API enables programmatic access to GPU infrastructure management and orchestration capabilities.
Access the API through the `exls` command-line tool or integrate it directly into your applications using standard HTTP requests.
The API covers several areas:
* **GPU Market Offers** Browse and compare GPU instance pricing across public cloud providers and hyperscalers.
* **Operator Integration** Coordinates with the [exalsius-operator](https://github.com/exalsius/exalsius-operator) running in a management Kubernetes cluster to handle infrastructure provisioning and node lifecycle management.
* **Node Management** Import cloud-provider instances or self-managed nodes (via SSH) into your node pool. Hardware characteristics of self-managed nodes are discovered automatically.
* **Cluster Provisioning** Create and manage Kubernetes clusters on supported cloud providers or self-managed bare-metal infrastructure.
* **Service Deployment** Deploy infrastructure services such as the NVIDIA GPU Operator, KubeRay, Flyte, or Kubeflow onto your clusters.
* **Workspace Deployment** Provision application workloads including Jupyter Notebook servers, LLM inference services, and other compute workloads on your clusters.


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.45.3
- Package version: 1.45.3
- Generator version: 7.14.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://exalsius.ai](https://exalsius.ai)

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import exalsius_api_client
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import exalsius_api_client
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import exalsius_api_client
from exalsius_api_client.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.exalsius.ai/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = exalsius_api_client.Configuration(
    host = "https://api.exalsius.ai/v1"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

configuration.access_token = os.environ["ACCESS_TOKEN"]


# Enter a context with an instance of the API client
with exalsius_api_client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = exalsius_api_client.ClustersApi(api_client)
    cluster_id = 'cluster_id_example' # str | 
    cluster_add_node_request = {"nodes_to_add":[{"node_id":"123e4567-e89b-12d3-a456-426614174001","node_role":"CONTROL_PLANE"}]} # ClusterAddNodeRequest | 

    try:
        # Add nodes to a cluster
        api_response = api_instance.add_nodes(cluster_id, cluster_add_node_request)
        print("The response of ClustersApi->add_nodes:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling ClustersApi->add_nodes: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *https://api.exalsius.ai/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ClustersApi* | [**add_nodes**](docs/ClustersApi.md#add_nodes) | **POST** /cluster/{cluster_id}/nodes | Add nodes to a cluster
*ClustersApi* | [**adopt_cluster**](docs/ClustersApi.md#adopt_cluster) | **POST** /clusters/adopt | Adopt a cluster
*ClustersApi* | [**create_cluster**](docs/ClustersApi.md#create_cluster) | **POST** /clusters | Create a cluster
*ClustersApi* | [**delete_cluster**](docs/ClustersApi.md#delete_cluster) | **DELETE** /cluster/{cluster_id} | Delete (tear-down) a cluster
*ClustersApi* | [**delete_node_from_cluster**](docs/ClustersApi.md#delete_node_from_cluster) | **DELETE** /cluster/{cluster_id}/nodes/{node_id} | Delete a node from a cluster
*ClustersApi* | [**deploy_cluster**](docs/ClustersApi.md#deploy_cluster) | **POST** /cluster/{cluster_id}/deploy | Deploy a new cluster
*ClustersApi* | [**describe_cluster**](docs/ClustersApi.md#describe_cluster) | **GET** /cluster/{cluster_id} | Get details of a single cluster
*ClustersApi* | [**get_cluster_kubeconfig**](docs/ClustersApi.md#get_cluster_kubeconfig) | **GET** /cluster/{cluster_id}/kubeconfig | Get the kubeconfig for a cluster
*ClustersApi* | [**get_cluster_logs**](docs/ClustersApi.md#get_cluster_logs) | **GET** /cluster/{cluster_id}/logs | Get cluster logs
*ClustersApi* | [**get_cluster_resources**](docs/ClustersApi.md#get_cluster_resources) | **GET** /cluster/{cluster_id}/resources | List available / occupied resources in the cluster
*ClustersApi* | [**get_nodes**](docs/ClustersApi.md#get_nodes) | **GET** /cluster/{cluster_id}/nodes | Get nodes of a cluster
*ClustersApi* | [**list_clusters**](docs/ClustersApi.md#list_clusters) | **GET** /clusters | List all clusters
*ColoniesApi* | [**create_colony**](docs/ColoniesApi.md#create_colony) | **POST** /colonies | Create a colony
*ColoniesApi* | [**delete_colony**](docs/ColoniesApi.md#delete_colony) | **DELETE** /colony/{colony_id} | Delete (tear-down) a colony
*ColoniesApi* | [**describe_colony**](docs/ColoniesApi.md#describe_colony) | **GET** /colony/{colony_id} | Get details of a single colony
*ColoniesApi* | [**get_colony_kubeconfig**](docs/ColoniesApi.md#get_colony_kubeconfig) | **GET** /colony/{colony_id}/kubeconfig | Get the kubeconfig for a colony
*ColoniesApi* | [**list_colonies**](docs/ColoniesApi.md#list_colonies) | **GET** /colonies | List all colonies
*ManagementApi* | [**add_ssh_key**](docs/ManagementApi.md#add_ssh_key) | **POST** /management/ssh-keys | Add an SSH key
*ManagementApi* | [**delete_ssh_key**](docs/ManagementApi.md#delete_ssh_key) | **DELETE** /management/ssh-key/{ssh_key_id} | Delete an SSH key
*ManagementApi* | [**generate_self_register_token**](docs/ManagementApi.md#generate_self_register_token) | **POST** /management/self-register-token | Generate a self-register token
*ManagementApi* | [**get_dashboard_url**](docs/ManagementApi.md#get_dashboard_url) | **GET** /management/dashboard-url | Get dashboard URL
*ManagementApi* | [**get_self_register_token**](docs/ManagementApi.md#get_self_register_token) | **GET** /management/self-register-token | Get the active self-register token
*ManagementApi* | [**list_cluster_templates**](docs/ManagementApi.md#list_cluster_templates) | **GET** /management/cluster-templates | List all cluster templates
*ManagementApi* | [**list_credentials**](docs/ManagementApi.md#list_credentials) | **GET** /management/credentials | List all cloud provider credentials
*ManagementApi* | [**list_service_templates**](docs/ManagementApi.md#list_service_templates) | **GET** /management/service-templates | List all available service templates
*ManagementApi* | [**list_ssh_keys**](docs/ManagementApi.md#list_ssh_keys) | **GET** /management/ssh-keys | List all SSH keys
*ManagementApi* | [**list_workspace_templates**](docs/ManagementApi.md#list_workspace_templates) | **GET** /management/workspace-templates | List all workspace templates
*NodesApi* | [**delete_node**](docs/NodesApi.md#delete_node) | **DELETE** /node/{node_id} | Delete a node from the pool
*NodesApi* | [**describe_node**](docs/NodesApi.md#describe_node) | **GET** /node/{node_id} | Get details of a single node in the node pool (self-managed or cloud)
*NodesApi* | [**import_node_from_offer**](docs/NodesApi.md#import_node_from_offer) | **POST** /node/import/offer/{offer_id} | Import a node from an offer
*NodesApi* | [**import_ssh**](docs/NodesApi.md#import_ssh) | **POST** /node/import/ssh | Import a self-managed node via SSH
*NodesApi* | [**list_nodes**](docs/NodesApi.md#list_nodes) | **GET** /nodes | List all imported nodes in the node pool
*NodesApi* | [**patch_node**](docs/NodesApi.md#patch_node) | **PATCH** /node/{node_id} | Patch a node
*NodesApi* | [**self_register_node**](docs/NodesApi.md#self_register_node) | **POST** /node/self-register | Self-register a node using a registration token
*OffersApi* | [**get_offers**](docs/OffersApi.md#get_offers) | **GET** /offers | List and filter current GPU on-demand and spot market offers
*OffersApi* | [**get_offers_filter_metadata**](docs/OffersApi.md#get_offers_filter_metadata) | **GET** /offers/metadata | List available offer filters and metric ranges
*PerformancePredictionApi* | [**get_performance_prediction**](docs/PerformancePredictionApi.md#get_performance_prediction) | **POST** /performance-prediction | Get runtime performance predictions for a GPU-accelerated workload configuration
*ServicesApi* | [**create_service_deployment**](docs/ServicesApi.md#create_service_deployment) | **POST** /services | Create a service deployment
*ServicesApi* | [**delete_service_deployment**](docs/ServicesApi.md#delete_service_deployment) | **DELETE** /service/{service_deployment_id} | Delete a service deployment
*ServicesApi* | [**describe_service_deployment**](docs/ServicesApi.md#describe_service_deployment) | **GET** /service/{service_deployment_id} | Get details of a single service deployment
*ServicesApi* | [**list_services_deployments**](docs/ServicesApi.md#list_services_deployments) | **GET** /services | List all service deployments
*VramPredictionApi* | [**get_vram_prediction**](docs/VramPredictionApi.md#get_vram_prediction) | **POST** /vram-prediction | Get the VRAM prediction for LLM fine-tuning
*VramPredictionApi* | [**get_vram_prediction_metadata**](docs/VramPredictionApi.md#get_vram_prediction_metadata) | **GET** /vram-prediction/metadata | List available models and the range of parameters for VRAM prediction endpoint
*WorkspacesApi* | [**create_workspace**](docs/WorkspacesApi.md#create_workspace) | **POST** /workspaces | Create a workspace
*WorkspacesApi* | [**delete_workspace**](docs/WorkspacesApi.md#delete_workspace) | **DELETE** /workspace/{workspace_id} | Delete a workspace
*WorkspacesApi* | [**describe_workspace**](docs/WorkspacesApi.md#describe_workspace) | **GET** /workspace/{workspace_id} | Get details of a single workspace
*WorkspacesApi* | [**get_workspace_logs**](docs/WorkspacesApi.md#get_workspace_logs) | **GET** /workspace/{workspace_id}/logs | Get workspace logs
*WorkspacesApi* | [**list_workspaces**](docs/WorkspacesApi.md#list_workspaces) | **GET** /workspaces | List all workspaces
*WorkspacesApi* | [**start_workspace**](docs/WorkspacesApi.md#start_workspace) | **POST** /workspace/{workspace_id}/start | Start a workspace
*WorkspacesApi* | [**stop_workspace**](docs/WorkspacesApi.md#stop_workspace) | **POST** /workspace/{workspace_id}/stop | Stop a workspace


## Documentation For Models

 - [BaseNode](docs/BaseNode.md)
 - [CloudNode](docs/CloudNode.md)
 - [Cluster](docs/Cluster.md)
 - [ClusterAddNodeRequest](docs/ClusterAddNodeRequest.md)
 - [ClusterAdoptRequest](docs/ClusterAdoptRequest.md)
 - [ClusterCreateRequest](docs/ClusterCreateRequest.md)
 - [ClusterCreateRequestLocalStorage](docs/ClusterCreateRequestLocalStorage.md)
 - [ClusterCreateResponse](docs/ClusterCreateResponse.md)
 - [ClusterDeleteResponse](docs/ClusterDeleteResponse.md)
 - [ClusterDeployResponse](docs/ClusterDeployResponse.md)
 - [ClusterEventPayload](docs/ClusterEventPayload.md)
 - [ClusterEventPayloadInvolvedObject](docs/ClusterEventPayloadInvolvedObject.md)
 - [ClusterKubeconfigResponse](docs/ClusterKubeconfigResponse.md)
 - [ClusterLocalStorage](docs/ClusterLocalStorage.md)
 - [ClusterNodeRemoveResponse](docs/ClusterNodeRemoveResponse.md)
 - [ClusterNodeToAdd](docs/ClusterNodeToAdd.md)
 - [ClusterNodesResponse](docs/ClusterNodesResponse.md)
 - [ClusterResourcesListResponse](docs/ClusterResourcesListResponse.md)
 - [ClusterResourcesListResponseResourcesInner](docs/ClusterResourcesListResponseResourcesInner.md)
 - [ClusterResponse](docs/ClusterResponse.md)
 - [ClusterServicesResponse](docs/ClusterServicesResponse.md)
 - [ClusterTemplate](docs/ClusterTemplate.md)
 - [ClusterTemplateListResponse](docs/ClusterTemplateListResponse.md)
 - [ClustersListResponse](docs/ClustersListResponse.md)
 - [ColoniesListResponse](docs/ColoniesListResponse.md)
 - [Colony](docs/Colony.md)
 - [ColonyCreateRequest](docs/ColonyCreateRequest.md)
 - [ColonyCreateResponse](docs/ColonyCreateResponse.md)
 - [ColonyDeleteResponse](docs/ColonyDeleteResponse.md)
 - [ColonyKubeconfigResponse](docs/ColonyKubeconfigResponse.md)
 - [ColonyResponse](docs/ColonyResponse.md)
 - [Credentials](docs/Credentials.md)
 - [CredentialsListResponse](docs/CredentialsListResponse.md)
 - [DashboardUrlResponse](docs/DashboardUrlResponse.md)
 - [Error](docs/Error.md)
 - [ErrorDetail](docs/ErrorDetail.md)
 - [GpuTypeInfo](docs/GpuTypeInfo.md)
 - [Kubeconfig](docs/Kubeconfig.md)
 - [NodeDeleteResponse](docs/NodeDeleteResponse.md)
 - [NodeHardware](docs/NodeHardware.md)
 - [NodeImportResponse](docs/NodeImportResponse.md)
 - [NodeImportSshRequest](docs/NodeImportSshRequest.md)
 - [NodePatchRequest](docs/NodePatchRequest.md)
 - [NodePatchResponse](docs/NodePatchResponse.md)
 - [NodeResponse](docs/NodeResponse.md)
 - [NodeSelfRegisterRequest](docs/NodeSelfRegisterRequest.md)
 - [NodeSelfRegisterResponse](docs/NodeSelfRegisterResponse.md)
 - [NodeSoftware](docs/NodeSoftware.md)
 - [NodeSystem](docs/NodeSystem.md)
 - [NodesListResponse](docs/NodesListResponse.md)
 - [Offer](docs/Offer.md)
 - [OfferMetadataResponse](docs/OfferMetadataResponse.md)
 - [OffersListResponse](docs/OffersListResponse.md)
 - [PerformancePrediction](docs/PerformancePrediction.md)
 - [PerformancePredictionRequest](docs/PerformancePredictionRequest.md)
 - [PerformancePredictionResponse](docs/PerformancePredictionResponse.md)
 - [SelfManagedNode](docs/SelfManagedNode.md)
 - [SelfRegisterToken](docs/SelfRegisterToken.md)
 - [SelfRegisterTokenResponse](docs/SelfRegisterTokenResponse.md)
 - [Service](docs/Service.md)
 - [ServiceCreateResponse](docs/ServiceCreateResponse.md)
 - [ServiceDeleteResponse](docs/ServiceDeleteResponse.md)
 - [ServiceDeployment](docs/ServiceDeployment.md)
 - [ServiceDeploymentCreateRequest](docs/ServiceDeploymentCreateRequest.md)
 - [ServiceResponse](docs/ServiceResponse.md)
 - [ServiceTemplate](docs/ServiceTemplate.md)
 - [ServiceTemplateListResponse](docs/ServiceTemplateListResponse.md)
 - [ServicesListResponse](docs/ServicesListResponse.md)
 - [SshKey](docs/SshKey.md)
 - [SshKeyCreateRequest](docs/SshKeyCreateRequest.md)
 - [SshKeyCreateResponse](docs/SshKeyCreateResponse.md)
 - [SshKeysListResponse](docs/SshKeysListResponse.md)
 - [SshKeysListResponseSshKeysInner](docs/SshKeysListResponseSshKeysInner.md)
 - [VramPredictionMetadataResponse](docs/VramPredictionMetadataResponse.md)
 - [VramPredictionRequest](docs/VramPredictionRequest.md)
 - [VramPredictionResponse](docs/VramPredictionResponse.md)
 - [Workspace](docs/Workspace.md)
 - [WorkspaceAccessInformation](docs/WorkspaceAccessInformation.md)
 - [WorkspaceCreateRequest](docs/WorkspaceCreateRequest.md)
 - [WorkspaceCreateResponse](docs/WorkspaceCreateResponse.md)
 - [WorkspaceDeleteResponse](docs/WorkspaceDeleteResponse.md)
 - [WorkspaceDeployment](docs/WorkspaceDeployment.md)
 - [WorkspaceLogPayload](docs/WorkspaceLogPayload.md)
 - [WorkspaceResponse](docs/WorkspaceResponse.md)
 - [WorkspaceStartResponse](docs/WorkspaceStartResponse.md)
 - [WorkspaceStopResponse](docs/WorkspaceStopResponse.md)
 - [WorkspaceTemplate](docs/WorkspaceTemplate.md)
 - [WorkspaceTemplateListResponse](docs/WorkspaceTemplateListResponse.md)
 - [WorkspacesListResponse](docs/WorkspacesListResponse.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="OAuth2"></a>
### OAuth2

- **Type**: OAuth
- **Flow**: accessCode
- **Authorization URL**: https://exalsius.eu.auth0.com/authorize?audience=http://api.exalsius.ai
- **Scopes**: 
 - **openid**: Request an ID token (mandatory for OIDC)
 - **gpuradar**: Scope used for GPU radar operations
 - **nodeagent**: Scope used for node agent operations


## Author

support@exalsius.ai


