curl --request GET \
--url https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes \
--header 'Authorization: Bearer <token>'import requests
url = "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"attachments": [
{
"volume_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"device": "vdb",
"boot_index": 1,
"delete_on_termination": false,
"mount_path": "/data",
"fstype": "ext4",
"name": "web-1-data",
"volume_type": "ssd",
"size_gb": 100,
"status": "in_use",
"bootable": false,
"mount": {
"state": "unknown",
"code": "unsafe_serial",
"message": "/dev/disk/by-id/virtio-9f2c has a gpt partition table but no mountable filesystem, so this agent will not format it; formatting would destroy what is there",
"since": "2023-11-07T05:31:56Z",
"reported_at": "2023-11-07T05:31:56Z"
}
}
]
}{
"error": {
"code": "INVALID_INPUT",
"message": "Invalid request parameters",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "ACCESS_DENIED",
"message": "You don't have permission to perform this action",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}Listar los volúmenes adjuntos de la instancia
Devuelve los enlaces de volumen de la instancia ordenados por índice de arranque (primero el disco de arranque), cada uno resuelto con el nombre/tipo/tamaño/estado actual del volumen.
curl --request GET \
--url https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes \
--header 'Authorization: Bearer <token>'import requests
url = "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://compute.{region}.basaltic.sh/v1/instances/{instance_id}/volumes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"attachments": [
{
"volume_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"device": "vdb",
"boot_index": 1,
"delete_on_termination": false,
"mount_path": "/data",
"fstype": "ext4",
"name": "web-1-data",
"volume_type": "ssd",
"size_gb": 100,
"status": "in_use",
"bootable": false,
"mount": {
"state": "unknown",
"code": "unsafe_serial",
"message": "/dev/disk/by-id/virtio-9f2c has a gpt partition table but no mountable filesystem, so this agent will not format it; formatting would destroy what is there",
"since": "2023-11-07T05:31:56Z",
"reported_at": "2023-11-07T05:31:56Z"
}
}
]
}{
"error": {
"code": "INVALID_INPUT",
"message": "Invalid request parameters",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "ACCESS_DENIED",
"message": "You don't have permission to perform this action",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}compute:GetInstance. Consulte permisos de computación para obtener la lista completa, lo que cubre cada una y un ejemplo de directiva.Autorizaciones
Un token bearer de OAuth 2.0, enviado como Authorization: Bearer <token>. Esta es la forma recomendada de autenticación.
Obtén el token intercambiando el par de claves de acceso de una cuenta de servicio en POST /v1/oauth/token con grant_type=client_credentials. Es el flujo estándar de credenciales de cliente; las bibliotecas compatibles con OAuth pueden obtener y renovar el token por ti.
curl -s -u "$KEY_ID:$SECRET" -d grant_type=client_credentials \
https://iam.basaltic.sh/v1/oauth/token
Los tokens duran una hora por defecto. El mismo par de claves de acceso también sirve como credencial AWS SigV4 para el endpoint de objetos compatible con S3, que solo acepta ese método de autenticación.
Parámetros de ruta
ID de instancia
Parámetros de consulta
Nombre exacto, que distinga entre mayúsculas y minúsculas. Los valores vacíos no coinciden con recursos con nombre. Las listas de NIC de instancia coinciden con los nombres de interfaz dentro de las vinculaciones de instancia; pueden coincidir varias interfaces con el mismo nombre. Las IP flotantes no tienen identidad de nombre y devuelven una lista vacía para este filtro.
CRN exacto del recurso, intersecado con todos los demás filtros antes de la paginación. Un CRN extranjero o no coincidente devuelve una página vacía; los CRN mal formados o vacíos devuelven 400. Las listas de archivos adjuntos anidados filtran el recurso representado, no el enlace.
Respuesta
Lista de volúmenes adjuntos
Show child attributes
Show child attributes

