exalsius API
Project description
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 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 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
Requirements.
Python 3.9+
Installation & Usage
pip install
If the python package is hosted on a repository, you can install directly using:
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:
import exalsius_api_client
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install to install the package for all users)
Then import the package:
import exalsius_api_client
Tests
Execute pytest to run the tests.
Getting Started
Please follow the installation procedure and then run the following:
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 | POST /cluster/{cluster_id}/nodes | Add nodes to a cluster |
| ClustersApi | adopt_cluster | POST /clusters/adopt | Adopt a cluster |
| ClustersApi | create_cluster | POST /clusters | Create a cluster |
| ClustersApi | delete_cluster | DELETE /cluster/{cluster_id} | Delete (tear-down) a cluster |
| ClustersApi | delete_node_from_cluster | DELETE /cluster/{cluster_id}/nodes/{node_id} | Delete a node from a cluster |
| ClustersApi | deploy_cluster | POST /cluster/{cluster_id}/deploy | Deploy a new cluster |
| ClustersApi | describe_cluster | GET /cluster/{cluster_id} | Get details of a single cluster |
| ClustersApi | get_cluster_kubeconfig | GET /cluster/{cluster_id}/kubeconfig | Get the kubeconfig for a cluster |
| ClustersApi | get_cluster_logs | GET /cluster/{cluster_id}/logs | Get cluster logs |
| ClustersApi | get_cluster_resources | GET /cluster/{cluster_id}/resources | List available / occupied resources in the cluster |
| ClustersApi | get_nodes | GET /cluster/{cluster_id}/nodes | Get nodes of a cluster |
| ClustersApi | list_clusters | GET /clusters | List all clusters |
| ColoniesApi | create_colony | POST /colonies | Create a colony |
| ColoniesApi | delete_colony | DELETE /colony/{colony_id} | Delete (tear-down) a colony |
| ColoniesApi | describe_colony | GET /colony/{colony_id} | Get details of a single colony |
| ColoniesApi | get_colony_kubeconfig | GET /colony/{colony_id}/kubeconfig | Get the kubeconfig for a colony |
| ColoniesApi | list_colonies | GET /colonies | List all colonies |
| ManagementApi | add_ssh_key | POST /management/ssh-keys | Add an SSH key |
| ManagementApi | delete_ssh_key | DELETE /management/ssh-key/{ssh_key_id} | Delete an SSH key |
| ManagementApi | generate_self_register_token | POST /management/self-register-token | Generate a self-register token |
| ManagementApi | get_dashboard_url | GET /management/dashboard-url | Get dashboard URL |
| ManagementApi | get_self_register_token | GET /management/self-register-token | Get the active self-register token |
| ManagementApi | list_cluster_templates | GET /management/cluster-templates | List all cluster templates |
| ManagementApi | list_credentials | GET /management/credentials | List all cloud provider credentials |
| ManagementApi | list_service_templates | GET /management/service-templates | List all available service templates |
| ManagementApi | list_ssh_keys | GET /management/ssh-keys | List all SSH keys |
| ManagementApi | list_workspace_templates | GET /management/workspace-templates | List all workspace templates |
| NodesApi | delete_node | DELETE /node/{node_id} | Delete a node from the pool |
| NodesApi | 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 | POST /node/import/offer/{offer_id} | Import a node from an offer |
| NodesApi | import_ssh | POST /node/import/ssh | Import a self-managed node via SSH |
| NodesApi | list_nodes | GET /nodes | List all imported nodes in the node pool |
| NodesApi | patch_node | PATCH /node/{node_id} | Patch a node |
| NodesApi | self_register_node | POST /node/self-register | Self-register a node using a registration token |
| OffersApi | get_offers | GET /offers | List and filter current GPU on-demand and spot market offers |
| OffersApi | get_offers_filter_metadata | GET /offers/metadata | List available offer filters and metric ranges |
| PerformancePredictionApi | get_performance_prediction | POST /performance-prediction | Get runtime performance predictions for a GPU-accelerated workload configuration |
| ServicesApi | create_service_deployment | POST /services | Create a service deployment |
| ServicesApi | delete_service_deployment | DELETE /service/{service_deployment_id} | Delete a service deployment |
| ServicesApi | describe_service_deployment | GET /service/{service_deployment_id} | Get details of a single service deployment |
| ServicesApi | list_services_deployments | GET /services | List all service deployments |
| VramPredictionApi | get_vram_prediction | POST /vram-prediction | Get the VRAM prediction for LLM fine-tuning |
| VramPredictionApi | get_vram_prediction_metadata | GET /vram-prediction/metadata | List available models and the range of parameters for VRAM prediction endpoint |
| WorkspacesApi | create_workspace | POST /workspaces | Create a workspace |
| WorkspacesApi | delete_workspace | DELETE /workspace/{workspace_id} | Delete a workspace |
| WorkspacesApi | describe_workspace | GET /workspace/{workspace_id} | Get details of a single workspace |
| WorkspacesApi | get_workspace_logs | GET /workspace/{workspace_id}/logs | Get workspace logs |
| WorkspacesApi | list_workspaces | GET /workspaces | List all workspaces |
| WorkspacesApi | start_workspace | POST /workspace/{workspace_id}/start | Start a workspace |
| WorkspacesApi | stop_workspace | POST /workspace/{workspace_id}/stop | Stop a workspace |
Documentation For Models
- BaseNode
- CloudNode
- Cluster
- ClusterAddNodeRequest
- ClusterAdoptRequest
- ClusterCreateRequest
- ClusterCreateRequestLocalStorage
- ClusterCreateResponse
- ClusterDeleteResponse
- ClusterDeployResponse
- ClusterEventPayload
- ClusterEventPayloadInvolvedObject
- ClusterKubeconfigResponse
- ClusterLocalStorage
- ClusterNodeRemoveResponse
- ClusterNodeToAdd
- ClusterNodesResponse
- ClusterResourcesListResponse
- ClusterResourcesListResponseResourcesInner
- ClusterResponse
- ClusterServicesResponse
- ClusterTemplate
- ClusterTemplateListResponse
- ClustersListResponse
- ColoniesListResponse
- Colony
- ColonyCreateRequest
- ColonyCreateResponse
- ColonyDeleteResponse
- ColonyKubeconfigResponse
- ColonyResponse
- Credentials
- CredentialsListResponse
- DashboardUrlResponse
- Error
- ErrorDetail
- GpuTypeInfo
- Kubeconfig
- NodeDeleteResponse
- NodeHardware
- NodeImportResponse
- NodeImportSshRequest
- NodePatchRequest
- NodePatchResponse
- NodeResponse
- NodeSelfRegisterRequest
- NodeSelfRegisterResponse
- NodeSoftware
- NodeSystem
- NodesListResponse
- Offer
- OfferMetadataResponse
- OffersListResponse
- PerformancePrediction
- PerformancePredictionRequest
- PerformancePredictionResponse
- SelfManagedNode
- SelfRegisterToken
- SelfRegisterTokenResponse
- Service
- ServiceCreateResponse
- ServiceDeleteResponse
- ServiceDeployment
- ServiceDeploymentCreateRequest
- ServiceResponse
- ServiceTemplate
- ServiceTemplateListResponse
- ServicesListResponse
- SshKey
- SshKeyCreateRequest
- SshKeyCreateResponse
- SshKeysListResponse
- SshKeysListResponseSshKeysInner
- VramPredictionMetadataResponse
- VramPredictionRequest
- VramPredictionResponse
- Workspace
- WorkspaceAccessInformation
- WorkspaceCreateRequest
- WorkspaceCreateResponse
- WorkspaceDeleteResponse
- WorkspaceDeployment
- WorkspaceLogPayload
- WorkspaceResponse
- WorkspaceStartResponse
- WorkspaceStopResponse
- WorkspaceTemplate
- WorkspaceTemplateListResponse
- WorkspacesListResponse
Documentation For Authorization
Authentication schemes defined for the API:
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exalsius_api_client-1.45.3.tar.gz.
File metadata
- Download URL: exalsius_api_client-1.45.3.tar.gz
- Upload date:
- Size: 115.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb6ba31b763a4df09403b21d0bf91a7276fed5d8381009379f2a25badbda0db
|
|
| MD5 |
3cc888a2694fbb1d5b9ad2c7da611d1e
|
|
| BLAKE2b-256 |
7458fdff1ae92a3e13ba502c4ab8bcf4c00d76db07ed7fda996e556301713023
|
Provenance
The following attestation bundles were made for exalsius_api_client-1.45.3.tar.gz:
Publisher:
publish-pypi.yml on exalsius/exalsius-api-spec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
exalsius_api_client-1.45.3.tar.gz -
Subject digest:
fdb6ba31b763a4df09403b21d0bf91a7276fed5d8381009379f2a25badbda0db - Sigstore transparency entry: 1254015408
- Sigstore integration time:
-
Permalink:
exalsius/exalsius-api-spec@2874304c0a08045ecb9586e47cff4cf8698ea71d -
Branch / Tag:
refs/tags/v1.45.3 - Owner: https://github.com/exalsius
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2874304c0a08045ecb9586e47cff4cf8698ea71d -
Trigger Event:
release
-
Statement type:
File details
Details for the file exalsius_api_client-1.45.3-py3-none-any.whl.
File metadata
- Download URL: exalsius_api_client-1.45.3-py3-none-any.whl
- Upload date:
- Size: 282.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a145937103468de75361c48d1722d6285550e75b0f662cde75967e3b6d8f7706
|
|
| MD5 |
0107d1186a0c62e1d9d480a93a0fcf85
|
|
| BLAKE2b-256 |
756a08fa32dfc0bec4d982b8d81dc6b6d927887d5421da6efacdd961ab642819
|
Provenance
The following attestation bundles were made for exalsius_api_client-1.45.3-py3-none-any.whl:
Publisher:
publish-pypi.yml on exalsius/exalsius-api-spec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
exalsius_api_client-1.45.3-py3-none-any.whl -
Subject digest:
a145937103468de75361c48d1722d6285550e75b0f662cde75967e3b6d8f7706 - Sigstore transparency entry: 1254015622
- Sigstore integration time:
-
Permalink:
exalsius/exalsius-api-spec@2874304c0a08045ecb9586e47cff4cf8698ea71d -
Branch / Tag:
refs/tags/v1.45.3 - Owner: https://github.com/exalsius
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2874304c0a08045ecb9586e47cff4cf8698ea71d -
Trigger Event:
release
-
Statement type: