### POST /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/start Source: https://docs.sharonai.cloud/api_cookbook?q= Starts a stopped compute instance. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/start ### Description Starts an existing compute instance. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/start ### Parameters #### Path Parameters - **project** (string) - Required - The project name. - **workspace** (string) - Required - The workspace name. - **instance** (string) - Required - The compute instance name. ``` -------------------------------- ### Quickstart Compute Instance Lifecycle Source: https://docs.sharonai.cloud/api_cookbook?q= Demonstrates the full flow of creating, publishing, and fetching connection details for a compute instance using curl. ```bash export API_KEY="ra2.your-api-key" export BASE_URL="https://console.compute.sharonai.cloud" export PROJECT_NAME="defaultproject" export WORKSPACE_NAME="my-workspace" export INSTANCE_NAME="my-instance" export COMPUTE_PROFILE_NAME="od-ssd-l40s-vm-1" cat > payload.json < res.json()) .then((data) => console.log(data)) .catch((err) => console.error("Error:", err)); ``` -------------------------------- ### GET /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME} Source: https://docs.sharonai.cloud/api_cookbook?q= Fetches variables and network details for a provisioned compute instance. ```APIDOC ## GET /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME} ### Description Use this API to fetch variables and network details for a provisioned compute instance. This endpoint provides access to values such as username, password, host, public IP, and private IP. ### Method GET ### Endpoint /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME} ### Parameters #### Path Parameters - **PROJECT_NAME** (string) - Required - The name of the project. - **WORKSPACE_NAME** (string) - Required - The name of the workspace. - **INSTANCE_NAME** (string) - Required - The name of the compute instance. ### Response #### Success Response (200) - **Hostname** (object) - Contains the hostname value and metadata. - **Password** (object) - Contains the password value and metadata. - **Private IP** (object) - Contains the private IP address value and metadata. - **Public IP** (object) - Contains the public IP address value and metadata. #### Response Example { "Hostname": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "test-vm" }, "Password": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "" }, "Private IP": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "10.0.0.25" }, "Public IP": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "203.0.113.10" } } ``` -------------------------------- ### Example Response Fragment Source: https://docs.sharonai.cloud/api_cookbook?q= Partial JSON structure showing how connection values like IP addresses and hostnames are returned. ```json { ... "Hostname": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "test-vm" }, "Password": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "" }, "Private IP": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "10.0.0.25" }, "Public IP": { "DisplayMetadata": { "label": "", "valueType": "text", "weight": null }, "sensitive": false, "value": "203.0.113.10" } ... } ``` -------------------------------- ### ComputeProfileList response example Source: https://docs.sharonai.cloud/api_cookbook?q= Example JSON response structure for a successful compute profile list request. ```json { "apiVersion": "paas.envmgmt.io/v1", "kind": "ComputeProfileList", "metadata": { "count": 1, "limit": 10 }, "items": [ { "apiVersion": "paas.envmgmt.io/v1", "kind": "ComputeProfile", "metadata": { "name": "od-ssd-l40s-vm-8", "description": "High-performance Ubuntu GPU VM with 8× NVIDIA L40S, 720 GB RAM, and 112 vCPUs, available on Ubuntu 22.04 or 24.04 with optional GPU-ready images for fast AI and ML workloads." } } ] } ``` -------------------------------- ### Manage Bare Metal Instance Power State Source: https://docs.sharonai.cloud/api_cookbook/baremetal Perform power management actions such as stop, start, or reboot on a published instance. ```bash curl -sS -X POST "${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/action/stop" \ -H "accept: application/json" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" ``` ```bash curl -sS -X POST "${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/action/start" \ -H "accept: application/json" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" ``` ```bash curl -sS -X POST "${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/action/reboot" \ -H "accept: application/json" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" ``` -------------------------------- ### POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish Source: https://docs.sharonai.cloud/api_cookbook?q= Triggers the provisioning process for an existing compute instance. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish ### Description Publishes a compute instance to trigger provisioning. Once called, the instance begins provisioning and connection details will be available upon completion. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish ### Parameters #### Path Parameters - **PROJECT_NAME** (string) - Required - The name of the project. - **WORKSPACE_NAME** (string) - Required - The name of the workspace. - **INSTANCE_NAME** (string) - Required - The name of the compute instance to publish. ### Response #### Success Response (200) - **status** (string) - Indicates the publish request was accepted and provisioning has started. ``` -------------------------------- ### Create Bare Metal Compute Instance Source: https://docs.sharonai.cloud/api_cookbook/baremetal Submit the instance configuration to the API to initiate creation. ```bash curl -sS -X POST "${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" \ -d @payload-baremetal.json ``` -------------------------------- ### POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish Source: https://docs.sharonai.cloud/api_cookbook Publishes an existing compute instance. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish ### Description Publishes an existing compute instance to make it accessible. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish ### Parameters #### Path Parameters - **PROJECT_NAME** (string) - Required - The name of the project. - **WORKSPACE_NAME** (string) - Required - The name of the workspace. - **INSTANCE_NAME** (string) - Required - The name of the instance. ``` -------------------------------- ### Publish Bare Metal Compute Instance Source: https://docs.sharonai.cloud/api_cookbook/baremetal Publish the created instance to make it active. ```bash curl -sS -X POST "${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/publish" \ -H "accept: application/json" \ -H "X-API-KEY: $API_KEY" ``` -------------------------------- ### POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances Source: https://docs.sharonai.cloud/api_cookbook?q= Creates a new compute instance within a specified project and workspace. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances ### Description Creates a new compute instance using a provided JSON payload containing metadata and compute profile specifications. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances ### Parameters #### Path Parameters - **PROJECT_NAME** (string) - Required - The name of the project. - **WORKSPACE_NAME** (string) - Required - The name of the workspace. ### Response #### Success Response (200/201) - **metadata** (object) - Includes instance name, workspace, and project details. ``` -------------------------------- ### GET /apis/paas.envmgmt.io/v1/projects/{project-name}/computeprofiles Source: https://docs.sharonai.cloud/api_cookbook?q= Retrieves a list of available compute profiles for the specified project. The returned profile names are used when creating compute instances. ```APIDOC ## GET /apis/paas.envmgmt.io/v1/projects/{project-name}/computeprofiles ### Description List available compute profiles to determine which computeProfile.name can be used in the compute instance payload. ### Method GET ### Endpoint /apis/paas.envmgmt.io/v1/projects/{project-name}/computeprofiles ### Parameters #### Path Parameters - **project-name** (string) - Required - The name of the project. ### Response #### Success Response (200) - **apiVersion** (string) - The API version. - **kind** (string) - The resource kind, which is ComputeProfileList. - **metadata** (object) - Metadata about the list. - **items** (array) - A list of available compute profiles. #### Response Example { "apiVersion": "paas.envmgmt.io/v1", "kind": "ComputeProfileList", "metadata": { "count": 1, "limit": 10 }, "items": [ { "apiVersion": "paas.envmgmt.io/v1", "kind": "ComputeProfile", "metadata": { "name": "od-ssd-l40s-vm-8", "description": "High-performance Ubuntu GPU VM with 8× NVIDIA L40S, 720 GB RAM, and 112 vCPUs, available on Ubuntu 22.04 or 24.04 with optional GPU-ready images for fast AI and ML workloads." } } ] } ``` -------------------------------- ### POST /apis/paas.envmgmt.io/v1/projects/{project-name}/workspaces/{workspace-name}/computeinstances Source: https://docs.sharonai.cloud/api_cookbook?q= Creates a new compute instance within a specified project and workspace. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{project-name}/workspaces/{workspace-name}/computeinstances ### Description Creates a new compute instance. Requires an API key provided in the X-API-KEY header. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{project-name}/workspaces/{workspace-name}/computeinstances ### Parameters #### Path Parameters - **project-name** (string) - Required - The name of the project. - **workspace-name** (string) - Required - The name of the workspace. #### Request Body - **apiVersion** (string) - Required - The API version (e.g., "paas.envmgmt.io/v1"). - **kind** (string) - Required - The resource kind (e.g., "ComputeInstance"). - **metadata** (object) - Required - Metadata including name, workspace, and project. - **spec** (object) - Required - Specification including computeProfile and variables. ### Request Example { "apiVersion": "paas.envmgmt.io/v1", "kind": "ComputeInstance", "metadata": { "name": "my-instance", "workspace": "my-workspace", "project": "defaultproject" }, "spec": { "computeProfile": { "name": "od-ssd-l40s-vm-1", "systemCatalog": true }, "variables": [ { "name": "Assign Public IP to Guest", "value": "True" }, { "name": "Guest Disk Size", "value": "32" } ] } } ``` -------------------------------- ### Destroy Compute Instance via API Source: https://docs.sharonai.cloud/api_cookbook?q= Examples for deleting a compute instance using cURL, Python, and JavaScript. Ensure the correct environment variables or placeholders are set for the project, workspace, and instance names. ```bash curl -X 'POST' \ "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances/${INSTANCE_NAME:-my-instance}/destroy" \ -H 'accept: application/json' \ -H "X-API-KEY: $API_KEY" ``` ```python import os import requests BASE_URL = os.environ.get("BASE_URL", "https://console.compute.sharonai.cloud") PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") API_KEY = os.environ.get("API_KEY", "your-api-key-from-portal") url = f"{BASE_URL}/apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/destroy" headers = { "accept": "application/json", "X-API-KEY": API_KEY, } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript const BASE_URL = process.env.BASE_URL || "https://console.compute.sharonai.cloud"; const PROJECT_NAME = process.env.PROJECT_NAME || "defaultproject"; const WORKSPACE_NAME = process.env.WORKSPACE_NAME || "my-workspace"; const INSTANCE_NAME = process.env.INSTANCE_NAME || "my-instance"; const API_KEY = process.env.API_KEY || "your-api-key-from-portal"; const url = `${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/destroy`; fetch(url, { method: "POST", headers: { "accept": "application/json", "X-API-KEY": API_KEY, }, }) .then((res) => res.json()) .then((data) => console.log(data)) .catch((err) => console.error("Error:", err)); ``` -------------------------------- ### Create a Compute Instance with JavaScript Source: https://docs.sharonai.cloud/api_cookbook?q= Reads a local payload.json file, injects environment-specific metadata, and sends a POST request to the compute instances endpoint. ```javascript import fs from "fs"; const INSTANCE_NAME = process.env.INSTANCE_NAME || "my-instance"; const WORKSPACE_NAME = process.env.WORKSPACE_NAME || "my-workspace"; const PROJECT_NAME = process.env.PROJECT_NAME || "defaultproject"; const COMPUTE_PROFILE_NAME = process.env.COMPUTE_PROFILE_NAME || "od-ssd-l40s-vm-1"; const payload = JSON.parse(fs.readFileSync("payload.json", "utf8")); // Override placeholders with runtime values payload.metadata.name = INSTANCE_NAME; payload.metadata.workspace = WORKSPACE_NAME; payload.metadata.project = PROJECT_NAME; payload.spec.computeProfile.name = COMPUTE_PROFILE_NAME; const url = `${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances`; const headers = { "X-API-KEY": API_KEY, "Content-Type": "application/json" }; fetch(url, { method: "POST", headers, body: JSON.stringify(payload) }) .then((response) => response.json()) .then((data) => console.log(data)) .catch((error) => console.error("Error:", error)); ``` -------------------------------- ### Execute Compute Instance Request Source: https://docs.sharonai.cloud/api_cookbook?q= Client-side implementations for sending the compute instance creation request. ```bash # Render payload.json with environment variables (requires envsubst) envsubst < payload.json > payload.rendered.json curl -X POST "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" \ -d @payload.rendered.json ``` ```python import json import os import requests # Replace with your actual values or set via environment variables INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") COMPUTE_PROFILE_NAME = os.environ.get("COMPUTE_PROFILE_NAME", "od-ssd-l40s-vm-1") url = f"{BASE_URL}/apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances" headers = { "X-API-KEY": API_KEY, "Content-Type": "application/json" } with open("payload.json", "r", encoding="utf-8") as f: payload = json.load(f) # Override placeholders as needed payload["metadata"]["name"] = INSTANCE_NAME payload["metadata"]["workspace"] = WORKSPACE_NAME payload["metadata"]["project"] = PROJECT_NAME payload["spec"]["computeProfile"]["name"] = COMPUTE_PROFILE_NAME response = requests.post(url, headers=headers, json=payload) print(response.json()) ``` -------------------------------- ### POST /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/reboot Source: https://docs.sharonai.cloud/api_cookbook?q= Triggers a reboot action for a specific compute instance within a project and workspace. ```APIDOC ## POST /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/reboot ### Description Triggers a reboot action for a specified compute instance. The request is accepted if the instance is in a valid state for rebooting. ### Method POST ### Endpoint /apis/paas.envmgmt.io/v1/projects/{project}/workspaces/{workspace}/computeinstances/{instance}/action/reboot ### Parameters #### Path Parameters - **project** (string) - Required - The name of the project. - **workspace** (string) - Required - The name of the workspace. - **instance** (string) - Required - The name of the compute instance. ### Response #### Success Response (200) - The requested action is accepted and the instance state transition is initiated. ``` -------------------------------- ### Publish a Compute Instance Source: https://docs.sharonai.cloud/api_cookbook?q= Triggers the provisioning process for an existing compute instance. Requires the instance name to be correctly specified in the URL path. ```bash curl -X 'POST' \ "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances/${INSTANCE_NAME:-my-instance}/publish" \ -H 'accept: application/json' \ -H "X-API-KEY: $API_KEY" ``` ```python import os import requests BASE_URL = os.environ.get("BASE_URL", "https://console.compute.sharonai.cloud") PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") API_KEY = os.environ.get("API_KEY", "your-api-key-from-portal") url = f"{BASE_URL}/apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}/publish" headers = { "accept": "application/json", "X-API-KEY": API_KEY, } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript const BASE_URL = process.env.BASE_URL || "https://console.compute.sharonai.cloud"; const PROJECT_NAME = process.env.PROJECT_NAME || "defaultproject"; const WORKSPACE_NAME = process.env.WORKSPACE_NAME || "my-workspace"; const INSTANCE_NAME = process.env.INSTANCE_NAME || "my-instance"; const API_KEY = process.env.API_KEY || "your-api-key-from-portal"; const url = `${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}/publish`; fetch(url, { method: "POST", headers: { "accept": "application/json", "X-API-KEY": API_KEY, }, }) .then((res) => res.json()) .then((data) => console.log(data)) .catch((err) => console.error("Error:", err)); ``` -------------------------------- ### Create Compute Instance via cURL Source: https://docs.sharonai.cloud/api_cookbook Uses envsubst to render the payload file and sends a POST request using curl. ```bash # Render payload.json with environment variables (requires envsubst) envsubst < payload.json > payload.rendered.json curl -X POST "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" \ -d @payload.rendered.json ``` -------------------------------- ### Define Bare Metal Compute Instance Payload Source: https://docs.sharonai.cloud/api_cookbook/baremetal Create a JSON configuration file defining the compute instance specifications. ```bash cat > payload-baremetal.json < payload.rendered.json curl -X POST "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances" \ -H "X-API-KEY: $API_KEY" \ -H "Content-Type: application/json" \ -d @payload.rendered.json ``` ```python import json import os import requests # Replace with your actual values or set via environment variables INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") COMPUTE_PROFILE_NAME = os.environ.get("COMPUTE_PROFILE_NAME", "od-ssd-l40s-vm-1") url = f"{BASE_URL}/apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances" headers = { "X-API-KEY": API_KEY, "Content-Type": "application/json" } with open("payload.json", "r", encoding="utf-8") as f: payload = json.load(f) # Override placeholders as needed payload["metadata"]["name"] = INSTANCE_NAME payload["metadata"]["workspace"] = WORKSPACE_NAME payload["metadata"]["project"] = PROJECT_NAME payload["spec"]["computeProfile"]["name"] = COMPUTE_PROFILE_NAME response = requests.post(url, headers=headers, json=payload) print(response.json()) ``` ```javascript import fs from "fs"; const INSTANCE_NAME = process.env.INSTANCE_NAME || "my-instance"; const WORKSPACE_NAME = process.env.WORKSPACE_NAME || "my-workspace"; const PROJECT_NAME = process.env.PROJECT_NAME || "defaultproject"; const COMPUTE_PROFILE_NAME = process.env.COMPUTE_PROFILE_NAME || "od-ssd-l40s-vm-1"; const payload = JSON.parse(fs.readFileSync("payload.json", "utf8")); // Override placeholders with runtime values payload.metadata.name = INSTANCE_NAME; payload.metadata.workspace = WORKSPACE_NAME; payload.metadata.project = PROJECT_NAME; payload.spec.computeProfile.name = COMPUTE_PROFILE_NAME; const url = `${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances`; const headers = { "X-API-KEY": API_KEY, "Content-Type": "application/json" }; fetch(url, { method: "POST", headers, body: JSON.stringify(payload) }) .then((response) => response.json()) .then((data) => console.log(data)) .catch((error) => console.error("Error:", error)); ``` -------------------------------- ### Connect to Pod via SSH Source: https://docs.sharonai.cloud/compute/pods/config_pods?q= Use this command format to establish an SSH connection to a deployed pod using the private key and connection details provided in the pod details view. ```bash ssh -i .key ubuntu@ -p ``` -------------------------------- ### Fetch Instance Details via API Source: https://docs.sharonai.cloud/api_cookbook?q= Retrieve connection variables and network details for a compute instance using cURL, Python, or JavaScript. ```bash curl -X 'GET' \ "${BASE_URL:-https://console.compute.sharonai.cloud}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME:-defaultproject}/workspaces/${WORKSPACE_NAME:-my-workspace}/computeinstances/${INSTANCE_NAME:-my-instance}" \ -H 'accept: application/json' \ -H "X-API-KEY: $API_KEY" ``` ```python import os import requests BASE_URL = os.environ.get("BASE_URL", "https://console.compute.sharonai.cloud") PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") API_KEY = os.environ.get("API_KEY", "your-api-key-from-portal") url = f"{BASE_URL}/apis/paas.envmgmt.io/v1/projects/{PROJECT_NAME}/workspaces/{WORKSPACE_NAME}/computeinstances/{INSTANCE_NAME}" headers = { "accept": "application/json", "X-API-KEY": API_KEY, } response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const BASE_URL = process.env.BASE_URL || "https://console.compute.sharonai.cloud"; const PROJECT_NAME = process.env.PROJECT_NAME || "defaultproject"; const WORKSPACE_NAME = process.env.WORKSPACE_NAME || "my-workspace"; const INSTANCE_NAME = process.env.INSTANCE_NAME || "my-instance"; const API_KEY = process.env.API_KEY || "your-api-key-from-portal"; const url = `${BASE_URL}/apis/paas.envmgmt.io/v1/projects/${PROJECT_NAME}/workspaces/${WORKSPACE_NAME}/computeinstances/${INSTANCE_NAME}`; fetch(url, { method: "GET", headers: { "accept": "application/json", "X-API-KEY": API_KEY, }, }) .then((res) => res.json()) .then((data) => console.log(data)) .catch((err) => console.error("Error:", err)); ``` -------------------------------- ### Configure API environment variables in Python Source: https://docs.sharonai.cloud/api_cookbook?q= Retrieve configuration values from environment variables with fallback defaults for local development. ```python import os # Replace with the key you got from the portal, or use an env var: API_KEY = os.environ.get("API_KEY", "your-api-key-from-portal") # Set base URL (optional, defaults to production) BASE_URL = os.environ.get("BASE_URL", "https://console.compute.sharonai.cloud") # Set your project and workspace names PROJECT_NAME = os.environ.get("PROJECT_NAME", "defaultproject") WORKSPACE_NAME = os.environ.get("WORKSPACE_NAME", "my-workspace") INSTANCE_NAME = os.environ.get("INSTANCE_NAME", "my-instance") COMPUTE_PROFILE_NAME = os.environ.get("COMPUTE_PROFILE_NAME", "od-ssd-l40s-vm-1") ```